Engine class

class Engine

Inheritance
Implementers
Annotations
  • @JS()

Constructors

Engine()
Engine.args(dynamic canvasOrContext, [bool antialias, EngineOptions options, bool adaptToDeviceRatio])

Properties

activeView EngineView
getter/setter pair
alphaState AlphaState
no setterinherited
bindBuffer ↔ dynamic
getter/setter pairinherited
canvasTabIndex num
getter/setter pair
cullBackFaces bool
getter/setter pairinherited
currentViewport IViewportLike
no setterinherited
customAnimationFrameRequester ICustomAnimationFrameRequester
getter/setter pair
depthCullingState DepthCullingState
no setterinherited
description String
no setterinherited
disableManifestCheck bool
getter/setter pair
disablePerformanceMonitorInBackground bool
getter/setter pair
disableUniformBuffers bool
getter/setter pairinherited
disableVertexArrayObjects bool
getter/setter pairinherited
doNotHandleContextLost bool
getter/setter pairinherited
emptyCubeTexture InternalTexture
no setterinherited
emptyTexture InternalTexture
no setterinherited
emptyTexture2DArray InternalTexture
no setterinherited
emptyTexture3D InternalTexture
no setterinherited
enableOfflineSupport bool
getter/setter pair
enableUnpackFlipYCached bool
getter/setter pairinherited
forcePOTTextures bool
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
HasMajorPerformanceCaveat bool
no setterinherited
hostInformation HostInformation
getter/setter pairinherited
inputElement HtmlElement
getter/setter pair
Instances List<Engine>
no setter
isFullscreen bool
getter/setter pairinherited
isInVRExclusivePointerMode bool
getter/setter pair
isPointerLock bool
getter/setter pair
isStencilEnable bool
no setterinherited
IsSupported bool
no setterinherited
LastCreatedEngine Engine
no setter
LastCreatedScene Scene
no setter
loadingScreen ILoadingScreen
getter/setter pair
loadingUIBackgroundColor String
no getter
loadingUIText String
no getter
needPOTTextures bool
no setterinherited
NpmPackage String
no setteroverride
onAfterShaderCompilationObservable Observable<Engine>
getter/setter pair
onBeforeShaderCompilationObservable Observable<Engine>
getter/setter pair
onBeforeTextureInitObservable Observable<Texture>
getter/setter pairinherited
onBeginFrameObservable Observable<Engine>
getter/setter pair
onCanvasBlurObservable Observable<Engine>
getter/setter pair
onCanvasFocusObservable Observable<Engine>
getter/setter pair
onCanvasPointerOutObservable Observable<PointerEvent>
getter/setter pair
onContextLostObservable Observable<ThinEngine>
getter/setter pairinherited
onContextRestoredObservable Observable<ThinEngine>
getter/setter pairinherited
onEndFrameObservable Observable<Engine>
getter/setter pair
onNewSceneAddedObservable Observable<Scene>
getter/setter pair
onResizeObservable Observable<Engine>
getter/setter pair
onVRDisplayChangedObservable Observable<IDisplayChangedEventArgs>
getter/setter pair
onVRRequestPresentComplete Observable<bool>
getter/setter pair
onVRRequestPresentStart Observable<Engine>
getter/setter pair
performanceMonitor PerformanceMonitor
no setter
postProcesses List<PostProcess>
getter/setter pair
premultipliedAlpha bool
no setterinherited
preventCacheWipeBetweenFrames bool
getter/setter pairinherited
renderEvenInBackground bool
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scenes List<Scene>
getter/setter pair
ShadersRepository String
getter/setter pairinherited
stencilState StencilState
no setterinherited
supportsUniformBuffers bool
no setterinherited
textureFormatInUse String
getter/setter pair
texturesSupported List<String>
getter/setter pair
useReverseDepthBuffer bool
getter/setter pairinherited
validateShaderPrograms bool
getter/setter pairinherited
Version String
no setteroverride
views List<EngineView>
getter/setter pair
vrPresentationAttributes IVRPresentationAttributes
getter/setter pair
webGLVersion num
no setterinherited

Methods

applyStates() → void
inherited
areAllEffectsReady() bool
inherited
beginFrame() → void
override
beginOcclusionQuery(num algorithmType, Query query) Engine
beginTransformFeedback(bool usePoints) → void
bindArrayBuffer(DataBuffer buffer) → void
inherited
bindAttachments(List<num> attachments) → void
inherited
bindBuffers(dynamic vertexBuffers, DataBuffer indexBuffer, Effect effect) → void
inherited
bindBuffersDirectly(DataBuffer vertexBuffer, DataBuffer indexBuffer, List<num> vertexDeclaration, num vertexStrideSize, Effect effect) → void
inherited
bindFramebuffer(InternalTexture texture, [num faceIndex, num requiredWidth, num requiredHeight, bool forceFullscreenViewport, num lodLevel, num layer]) → void
inherited
bindInstancesBuffer(DataBuffer instancesBuffer, List<InstancingAttributeInfo> attributesInfo, [bool computeStride]) → void
inherited
bindMultiviewFramebuffer(InternalTexture multiviewTexture) → void
bindSamplers(Effect effect) → void
inherited
bindTransformFeedback(TransformFeedback value) → void
bindTransformFeedbackBuffer(DataBuffer value) → void
bindUniformBlock(IPipelineContext pipelineContext, String blockName, num index) → void
inherited
bindUniformBuffer(DataBuffer buffer) → void
inherited
bindUniformBufferBase(DataBuffer buffer, num location) → void
inherited
bindVertexArrayObject(VertexArrayObject vertexArrayObject, DataBuffer indexBuffer) → void
inherited
buildTextureLayout(List<bool> textureStatus) List<num>
inherited
cacheStencilState() → void
clear(IColor4Like color, bool backBuffer, bool depth, [bool stencil]) → void
inherited
clearInternalTexturesCache() → void
inherited
createCubeTexture(String rootUrl, Scene scene, List<String> files, dynamic noMipmap, void onLoad(dynamic data), void onError(String message, dynamic exception), dynamic format, dynamic forcedExtension, bool createPolynomials, num lodScale, num lodOffset, InternalTexture fallback, dynamic loaderOptions) InternalTexture
inherited
createDepthStencilTexture(RenderTargetTextureSize size, DepthTextureCreationOptions options) InternalTexture
inherited
createDynamicTexture(num width, num height, bool generateMipMaps, num samplingMode) InternalTexture
inherited
createDynamicUniformBuffer(Float32List elements) DataBuffer
inherited
createDynamicVertexBuffer(ByteBuffer data) DataBuffer
inherited
createEffect(dynamic baseName, dynamic attributesNamesOrOptions, dynamic uniformsNamesOrEngine, [List<String> samplers, String defines, IEffectFallbacks fallbacks, void onCompiled(Effect effect), void onError(Effect effect, String errors), dynamic indexParameters]) Effect
inherited
createEffectForParticles(String fragmentName, List<String> uniformsNames, List<String> samplers, String defines, [EffectFallbacks fallbacks, void onCompiled(Effect effect), void onError(Effect effect, String errors), IParticleSystem particleSystem]) Effect
createIndexBuffer(Int32List indices, [bool updatable]) DataBuffer
inherited
createInstancesBuffer(num capacity) DataBuffer
createMultipleRenderTarget(dynamic size, IMultiRenderTargetOptions options) List<InternalTexture>
inherited
createMultiviewRenderTargetTexture(num width, num height) InternalTexture
createPipelineContext() IPipelineContext
inherited
createPrefilteredCubeTexture(String rootUrl, Scene scene, num lodScale, num lodOffset, [void onLoad(InternalTexture internalTexture), void onError(String message, dynamic exception), num format, dynamic forcedExtension, bool createPolynomials]) InternalTexture
inherited
createQuery() Query
createRawCubeTexture(List<List> data, num size, num format, num type, bool generateMipMaps, bool invertY, num samplingMode, String compression) InternalTexture
inherited
createRawShaderProgram(IPipelineContext pipelineContext, String vertexCode, String fragmentCode, [RenderingContext context, List<String> transformFeedbackVaryings]) Program
inherited
createRawTexture(List data, num width, num height, num format, bool generateMipMaps, bool invertY, num samplingMode, String compression, num type) InternalTexture
inherited
createRawTexture2DArray(List data, num width, num height, num depth, num format, bool generateMipMaps, bool invertY, num samplingMode, String compression, num textureType) InternalTexture
inherited
createRawTexture3D(List data, num width, num height, num depth, num format, bool generateMipMaps, bool invertY, num samplingMode, String compression, num textureType) InternalTexture
inherited
createRenderTargetCubeTexture(num size, [RenderTargetCreationOptions options]) InternalTexture
inherited
createRenderTargetTexture(RenderTargetTextureSize size, dynamic options) InternalTexture
inherited
createShaderProgram(IPipelineContext pipelineContext, String vertexCode, String fragmentCode, String defines, [RenderingContext context, List<String> transformFeedbackVaryings]) Program
override
createTexture(String url, bool noMipmap, bool invertY, ISceneLike scene, [num samplingMode, void onLoad(), void onError(String message, dynamic exception), dynamic buffer, InternalTexture fallback, num format, String forcedExtension, String mimeType, dynamic loaderOptions]) InternalTexture
inherited
createTransformFeedback() TransformFeedback
createUniformBuffer(Float32List elements) DataBuffer
inherited
createVertexBuffer(ByteBuffer data) DataBuffer
inherited
deleteInstancesBuffer(Buffer buffer) → void
deleteQuery(Query query) Engine
deleteTransformFeedback(TransformFeedback value) → void
disableAttributeByIndex(num attributeLocation) → void
inherited
disableInstanceAttribute(num attributeLocation) → void
inherited
disableInstanceAttributeByName(String name) → void
inherited
disableScissor() → void
disableVR() → void
displayLoadingUI() → void
dispose() → void
override
draw(bool useTriangles, num indexStart, num indexCount, [num instancesCount]) → void
inherited
drawArraysType(num fillMode, num verticesStart, num verticesCount, [num instancesCount]) → void
inherited
drawElementsType(num fillMode, num indexStart, num indexCount, [num instancesCount]) → void
inherited
drawPointClouds(num verticesStart, num verticesCount, [num instancesCount]) → void
inherited
drawUnIndexed(bool useTriangles, num verticesStart, num verticesCount, [num instancesCount]) → void
inherited
enableEffect(Effect effect) → void
inherited
enableScissor(num x, num y, num width, num height) → void
enableVR(WebVROptions options) → void
endFrame() → void
override
endOcclusionQuery(num algorithmType) Engine
endTransformFeedback() → void
enterFullscreen(bool requestPointerLock) → void
enterPointerlock() → void
exitFullscreen() → void
exitPointerlock() → void
flushFramebuffer() → void
inherited
generateMipMapsForCubemap(InternalTexture texture, [bool unbind]) → void
getAlphaEquation() num
inherited
getAlphaMode() num
inherited
getAspectRatio(IViewportOwnerLike viewportOwner, [bool useScreen]) num
getAttributes(IPipelineContext pipelineContext, List<String> attributesNames) List<num>
inherited
getCaps() EngineCapabilities
inherited
getClassName() String
inherited
getColorWrite() bool
inherited
getDeltaTime() num
getDepthFunction() num
getDepthWrite() bool
getError() num
inherited
getFps() num
getFragmentShaderSource(Program program) String
getHardwareScalingLevel() num
inherited
getHostDocument() Document
inherited
getHostWindow() Window
inherited
getInputElement() HtmlElement
getInputElementClientRect() Rectangle<num>
getLoadedTexturesCache() List<InternalTexture>
inherited
getLockstepMaxSteps() num
getQueryResult(Query query) num
getRenderHeight([bool useScreen]) num
inherited
getRenderingCanvas() CanvasElement
inherited
getRenderingCanvasClientRect() Rectangle<num>
getRenderWidth([bool useScreen]) num
inherited
getScreenAspectRatio() num
getStencilBuffer() bool
getStencilFunction() num
getStencilFunctionMask() num
getStencilFunctionReference() num
getStencilMask() num
getStencilOperationDepthFail() num
getStencilOperationFail() num
getStencilOperationPass() num
getTimeStep() num
getUniforms(IPipelineContext pipelineContext, List<String> uniformsNames) List<UniformLocation>
inherited
getVertexShaderSource(Program program) String
getVRDevice() → dynamic
getZOffset() num
hideLoadingUI() → void
initWebVR() Observable<IDisplayChangedEventArgs>
initWebVRAsync() Promise<IDisplayChangedEventArgs>
isDeterministicLockStep() bool
isQueryResultAvailable(Query query) bool
isVRDevicePresent() bool
isVRPresenting() bool
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
readPixels(num x, num y, num width, num height, [bool hasAlpha]) Uint8List
inherited
recordVertexArrayObject(dynamic vertexBuffers, DataBuffer indexBuffer, Effect effect) VertexArrayObject
inherited
registerView(CanvasElement canvas, [Camera camera]) EngineView
releaseEffects() → void
inherited
releaseVertexArrayObject(VertexArrayObject vao) → void
inherited
resetTextureCache() → void
inherited
resize() → void
override
restoreDefaultFramebuffer() → void
inherited
restoreSingleAttachment() → void
inherited
restoreStencilState() → void
runRenderLoop(void renderFunction()) → void
inherited
scissorClear(num x, num y, num width, num height, IColor4Like clearColor) → void
setAlphaConstants(num r, num g, num b, num a) → void
inherited
setAlphaEquation(num equation) → void
inherited
setAlphaMode(num mode, [bool noDepthWriteChange]) → void
inherited
setArray(UniformLocation uniform, dynamic array) bool
inherited
setArray2(UniformLocation uniform, dynamic array) bool
inherited
setArray3(UniformLocation uniform, dynamic array) bool
inherited
setArray4(UniformLocation uniform, dynamic array) bool
inherited
setColorWrite(bool enable) → void
inherited
setCompressedTextureExclusions(List<String> skippedFiles) → void
setDepthBuffer(bool enable) → void
setDepthFunction(num depthFunc) → void
setDepthFunctionToGreater() → void
setDepthFunctionToGreaterOrEqual() → void
setDepthFunctionToLess() → void
setDepthFunctionToLessOrEqual() → void
setDepthStencilTexture(num channel, UniformLocation uniform, RenderTargetTexture texture) → void
setDepthWrite(bool enable) → void
setDirectViewport(num x, num y, num width, num height) IViewportLike
setDitheringState(bool value) → void
setFloat(UniformLocation uniform, num value) bool
inherited
setFloat2(UniformLocation uniform, num x, num y) bool
inherited
setFloat3(UniformLocation uniform, num x, num y, num z) bool
inherited
setFloat4(UniformLocation uniform, num x, num y, num z, num w) bool
inherited
setHardwareScalingLevel(num level) → void
inherited
setInt(UniformLocation uniform, num value) bool
inherited
setIntArray(UniformLocation uniform, Int32List array) bool
inherited
setIntArray2(UniformLocation uniform, Int32List array) bool
inherited
setIntArray3(UniformLocation uniform, Int32List array) bool
inherited
setIntArray4(UniformLocation uniform, Int32List array) bool
inherited
setMatrices(UniformLocation uniform, Float32List matrices) bool
inherited
setMatrix2x2(UniformLocation uniform, Float32List matrix) bool
inherited
setMatrix3x3(UniformLocation uniform, Float32List matrix) bool
inherited
setRasterizerState(bool value) → void
setSize(num width, num height) bool
override
setState(bool culling, [num zOffset, bool force, bool reverseSide]) → void
setStencilBuffer(bool enable) → void
setStencilFunction(num stencilFunc) → void
setStencilFunctionMask(num mask) → void
setStencilFunctionReference(num reference) → void
setStencilMask(num mask) → void
setStencilOperationDepthFail(num operation) → void
setStencilOperationFail(num operation) → void
setStencilOperationPass(num operation) → void
setTexture(num channel, UniformLocation uniform, ThinTexture texture) → void
inherited
setTextureArray(num channel, UniformLocation uniform, List<ThinTexture> textures) → void
inherited
setTextureFormatToUse(List<String> formatsAvailable) String
setTextureFromPostProcess(num channel, PostProcess postProcess) → void
setTextureFromPostProcessOutput(num channel, PostProcess postProcess) → void
setTranformFeedbackVaryings(Program program, List<String> value) → void
setViewport(IViewportLike viewport, [num requiredWidth, num requiredHeight]) → void
inherited
setZOffset(num value) → void
stopRenderLoop([void renderFunction()]) → void
inherited
switchFullscreen(bool requestPointerLock) → void
toString() String
A string representation of this object.
inherited
unbindAllAttributes() → void
inherited
unbindAllTextures() → void
inherited
unBindFramebuffer(InternalTexture texture, [bool disableGenerateMipMaps, void onBeforeUnbind()]) → void
inherited
unbindInstanceAttributes() → void
inherited
unBindMultiColorAttachmentFramebuffer(List<InternalTexture> textures, bool disableGenerateMipMaps, [void onBeforeUnbind()]) → void
inherited
unRegisterView(CanvasElement canvas) Engine
updateAndBindInstancesBuffer(DataBuffer instancesBuffer, Float32List data, dynamic offsetLocations) → void
inherited
updateArrayBuffer(Float32List data) → void
inherited
updateDynamicIndexBuffer(DataBuffer indexBuffer, Int32List indices, [num offset]) → void
inherited
updateDynamicTexture(InternalTexture texture, dynamic source, [bool invertY, bool premulAlpha, num format, bool forceBindTexture]) → void
inherited
updateDynamicVertexBuffer(DataBuffer vertexBuffer, ByteBuffer data, [num byteOffset, num byteLength]) → void
inherited
updateMultipleRenderTargetTextureSampleCount(List<InternalTexture> textures, num samples) num
inherited
updateRawCubeTexture(InternalTexture texture, List<List> data, num format, num type, bool invertY) → void
inherited
updateRawTexture(InternalTexture texture, List data, num format, bool invertY) → void
inherited
updateRawTexture2DArray(InternalTexture texture, List data, num format, bool invertY) → void
inherited
updateRawTexture3D(InternalTexture texture, List data, num format, bool invertY) → void
inherited
updateRenderTargetTextureSampleCount(InternalTexture texture, num samples) num
updateTextureComparisonFunction(InternalTexture texture, num comparisonFunction) → void
updateTextureData(InternalTexture texture, List imageData, num xOffset, num yOffset, num width, num height, [num faceIndex, num lod]) → void
inherited
updateTextureSamplingMode(num samplingMode, InternalTexture texture, [bool generateMipMaps]) → void
inherited
updateTextureWrappingMode(InternalTexture texture, num wrapU, [num wrapV, num wrapR]) → void
inherited
updateUniformBuffer(DataBuffer uniformBuffer, Float32List elements, [num offset, num count]) → void
inherited
updateVideoTexture(InternalTexture texture, VideoElement video, bool invertY) → void
inherited
wipeCaches([bool bruteForce]) → void
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

ALPHA_ADD num
no setter
ALPHA_COMBINE num
no setter
ALPHA_DISABLE num
no setter
ALPHA_INTERPOLATE num
no setter
ALPHA_MAXIMIZED num
no setter
ALPHA_MULTIPLY num
no setter
ALPHA_ONEONE num
no setter
ALPHA_PREMULTIPLIED num
no setter
ALPHA_PREMULTIPLIED_PORTERDUFF num
no setter
ALPHA_SCREENMODE num
no setter
ALPHA_SUBTRACT num
no setter
ALWAYS num
no setter
audioEngine IAudioEngine
getter/setter pair
AudioEngineFactory IAudioEngine Function(HtmlElement hostElement)
getter/setter pair
DECR num
no setter
DECR_WRAP num
no setter
DELAYLOADSTATE_LOADED num
no setter
DELAYLOADSTATE_LOADING num
no setter
DELAYLOADSTATE_NONE num
no setter
DELAYLOADSTATE_NOTLOADED num
no setter
EQUAL num
no setter
GEQUAL num
no setter
GREATER num
no setter
INCR num
no setter
INCR_WRAP num
no setter
INVERT num
no setter
KEEP num
no setter
LEQUAL num
no setter
LESS num
no setter
NEVER num
no setter
NOTEQUAL num
no setter
OfflineProviderFactory IOfflineProvider Function(String urlToScene, dynamic callbackManifestChecked(bool checked), bool disableManifestCheck)
getter/setter pair
REPLACE num
no setter
SCALEMODE_CEILING num
no setter
SCALEMODE_FLOOR num
no setter
SCALEMODE_NEAREST num
no setter
TEXTURE_BILINEAR_SAMPLINGMODE num
no setter
TEXTURE_CLAMP_ADDRESSMODE num
no setter
TEXTURE_CUBIC_MODE num
no setter
TEXTURE_EQUIRECTANGULAR_MODE num
no setter
TEXTURE_EXPLICIT_MODE num
no setter
TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE num
no setter
TEXTURE_FIXED_EQUIRECTANGULAR_MODE num
no setter
TEXTURE_INVCUBIC_MODE num
no setter
TEXTURE_LINEAR_LINEAR num
no setter
TEXTURE_LINEAR_LINEAR_MIPLINEAR num
no setter
TEXTURE_LINEAR_LINEAR_MIPNEAREST num
no setter
TEXTURE_LINEAR_NEAREST num
no setter
TEXTURE_LINEAR_NEAREST_MIPLINEAR num
no setter
TEXTURE_LINEAR_NEAREST_MIPNEAREST num
no setter
TEXTURE_MIRROR_ADDRESSMODE num
no setter
TEXTURE_NEAREST_LINEAR num
no setter
TEXTURE_NEAREST_LINEAR_MIPLINEAR num
no setter
TEXTURE_NEAREST_LINEAR_MIPNEAREST num
no setter
TEXTURE_NEAREST_NEAREST num
no setter
TEXTURE_NEAREST_NEAREST_MIPLINEAR num
no setter
TEXTURE_NEAREST_NEAREST_MIPNEAREST num
no setter
TEXTURE_NEAREST_SAMPLINGMODE num
no setter
TEXTURE_PLANAR_MODE num
no setter
TEXTURE_PROJECTION_MODE num
no setter
TEXTURE_SKYBOX_MODE num
no setter
TEXTURE_SPHERICAL_MODE num
no setter
TEXTURE_TRILINEAR_SAMPLINGMODE num
no setter
TEXTURE_WRAP_ADDRESSMODE num
no setter
TEXTUREFORMAT_ALPHA num
no setter
TEXTUREFORMAT_LUMINANCE num
no setter
TEXTUREFORMAT_LUMINANCE_ALPHA num
no setter
TEXTUREFORMAT_R num
no setter
TEXTUREFORMAT_R_INTEGER num
no setter
TEXTUREFORMAT_RED num
no setter
TEXTUREFORMAT_RED_INTEGER num
no setter
TEXTUREFORMAT_RG num
no setter
TEXTUREFORMAT_RG_INTEGER num
no setter
TEXTUREFORMAT_RGB num
no setter
TEXTUREFORMAT_RGB_INTEGER num
no setter
TEXTUREFORMAT_RGBA num
no setter
TEXTUREFORMAT_RGBA_INTEGER num
no setter
TEXTURETYPE_BYTE num
no setter
TEXTURETYPE_FLOAT num
no setter
TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV num
no setter
TEXTURETYPE_HALF_FLOAT num
no setter
TEXTURETYPE_INT num
no setter
TEXTURETYPE_SHORT num
no setter
TEXTURETYPE_UNSIGNED_BYTE num
no setter
TEXTURETYPE_UNSIGNED_INT num
no setter
TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV num
no setter
TEXTURETYPE_UNSIGNED_INT_24_8 num
no setter
TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV num
no setter
TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV num
no setter
TEXTURETYPE_UNSIGNED_INTEGER num
no setter
TEXTURETYPE_UNSIGNED_SHORT num
no setter
TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 num
no setter
TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 num
no setter
TEXTURETYPE_UNSIGNED_SHORT_5_6_5 num
no setter

Static Methods

DefaultLoadingScreenFactory(CanvasElement canvas) ILoadingScreen
MarkAllMaterialsAsDirty(num flag, [bool predicate(Material mat)]) → void