Server for anything visible. Server for anything visible. The visual server is the API backend for everything visible. The whole scene system mounts on it to display. The visual server is completely opaque, the internals are entirely implementation specific and cannot be accessed. Sets images to be rendered in the window margin. Sets margin size, where black bars (or images, if [method black_bars_set_images] was used) are rendered. Creates a canvas and returns the assigned [RID]. Adds a circle command to the [CanvasItem]'s draw commands. If ignore is [code]true[/code], the VisualServer does not perform clipping. Adds a line command to the [CanvasItem]'s draw commands. Adds a [MultiMesh] to the [CanvasItem]'s draw commands. Only affects its aabb at the moment. Adds a nine patch image to the [CanvasItem]'s draw commands. See [NinePatchRect] for more explanation. Adds a particle system to the [CanvasItem]'s draw commands. Adds a polygon to the [CanvasItem]'s draw commands. Adds a polyline, which is a line from multiple points with a width, to the [CanvasItem]'s draw commands. Adds a primitive to the [CanvasItem]'s draw commands. Adds a rectangle to the [CanvasItem]'s draw commands. Adds a [Transform2D] command to the [CanvasItem]'s draw commands. This sets the extra_matrix uniform when executed. This affects the later commands of the canvas item. Adds a textured rect to the [CanvasItem]'s draw commands. Adds a texture rect with region setting to the [CanvasItem]'s draw commands. Clears the [CanvasItem] and removes all commands in it. Creates a new [CanvasItem] and returns its [RID]. Sets clipping for the [CanvasItem]. Sets the [CanvasItem] to copy a rect to the backbuffer. Defines a custom drawing rectangle for the [CanvasItem]. Sets [CanvasItem] to be drawn behind its parent. Sets the index for the [CanvasItem]. The light mask. See [LightOccluder2D] for more information on light masks. Sets a new material to the [CanvasItem]. Sets the color that modulates the [CanvasItem] and its children. Sets the parent for the [CanvasItem]. Sets the color that modulates the [CanvasItem] without children. Sets if [CanvasItem]'s children should be sorted by y-position. Sets the [CanvasItem]'s [Transform2D]. Sets if the [CanvasItem] uses its parent's material. Sets if the canvas item (including its children) is visible. If this is enabled, the Z index of the parent will be added to the children's Z index. Sets the [CanvasItem]'s Z index, i.e. its draw order (lower indexes are drawn first). Attaches the canvas light to the canvas. Removes it from its previous canvas. Creates a canvas light. Attaches a light occluder to the canvas. Removes it from its previous canvas. Creates a light occluder. Enables or disables light occluder. The light mask. See [LightOccluder2D] for more information on light masks. Sets a light occluder's polygon. Sets a light occluder's [Transform2D]. Sets the color for a light. Enables or disables a canvas light. Sets a canvas light's energy. Sets a canvas light's height. The light mask. See [LightOccluder2D] for more information on light masks. The binary mask used to determine which layers this canvas light's shadows affects. See [LightOccluder2D] for more information on light masks. The layer range that gets rendered with this light. The mode of the light, see [code]CANVAS_LIGHT_MODE_*[/code] constants. Sets the width of the shadow buffer, size gets scaled to the next power of two for this. Sets the color of the canvas light's shadow. Enables or disables the canvas light's shadow. Sets the canvas light's shadow's filter, see [code]CANVAS_LIGHT_SHADOW_FILTER_*[/code] constants. Sets the length of the shadow's gradient. Smoothens the shadow. The lower, the smoother. Sets the canvas light's [Transform2D]. Creates a new light occluder polygon. Sets an occluder polygons cull mode. See [code]CANVAS_OCCLUDER_POLYGON_CULL_MODE_*[/code] constants. Sets the shape of the occluder polygon. Sets the shape of the occluder polygon as lines. A copy of the canvas item will be drawn with a local offset of the mirroring [Vector2]. Modulates all colors in the given canvas. Removes buffers and clears testcubes. Synchronizes threads. Tries to free an object in the VisualServer. Returns a certain information, see [code]RENDER_INFO_*[/code] for options. Returns the id of the test cube. Creates one if none exists. Returns the id of the test texture. Creates one if none exists. Returns the id of a white texture. Creates one if none exists. Returns [code]true[/code] if changes have been made to the VisualServer's data. [method draw] is usually called if this happens. Returns [code]true[/code] if the OS supports a certain feature. Features might be s3tc, etc, etc2 and pvrtc, Initializes the visual server. Returns an array of object IDs intersecting with the provided 3D ray. Only visual 3D nodes are considered, such as [MeshInstance] or [DirectionalLight]. Use [method @GDScript.instance_from_id] to obtain the actual nodes. A scenario RID must be provided, which is available in the [World] you want to query. [b]Warning:[/b] This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. Sets whether GI probes capture light information from this light. Returns a mesh of a sphere with the given amount of horizontal and vertical subdivisions. Returns an empty material. Returns the value of a certain material's parameter. Returns the shader of a certain material's shader. Returns an empty RID if the material doesn't have a shader. Sets a material's line width. Sets an object's next material. Sets a material's parameter. Sets a material's render priority. Sets a shader material's shader. Adds a surface generated from the Arrays to a mesh. See [code]PRIMITIVE_TYPE_*[/code] constants for types. Removes all surfaces from a mesh. Creates a new mesh. Returns a mesh's blend shape count. Returns a mesh's blend shape mode. Returns a mesh's custom aabb. Returns a mesh's number of surfaces. Removes a mesh's surface. Sets a mesh's blend shape count. Sets a mesh's blend shape mode. Sets a mesh's custom aabb. Returns a mesh's surface's aabb. Returns a mesh's surface's vertex buffer. Returns a mesh's surface's amount of indices. Returns a mesh's surface's amount of vertices. Returns a mesh's surface's buffer arrays. Returns a mesh's surface's arrays for blend shapes. Returns the format of a mesh's surface. Returns a mesh's surface's index buffer. Returns a mesh's surface's material. Returns the primitive type of a mesh's surface. Returns the aabb of a mesh's surface's skeleton. Sets a mesh's surface's material. Creates a new multimesh on the VisualServer and returns an [RID] handle. Once finished with your RID, you will want to free the RID using the VisualServer's [method free_rid] static method. Schedules a callback to the corresponding named [code]method[/code] on [code]where[/code] after a frame has been drawn. The callback method must use only 1 argument which will be called with [code]userdata[/code]. Sets a boot image. The color defines the background color. If [code]scale[/code] is [code]true[/code], the image will be scaled to fit the screen size. If [code]use_filter[/code] is [code]true[/code], the image will be scaled with linear interpolation. If [code]use_filter[/code] is [code]false[/code], the image will be scaled with nearest-neighbor interpolation. Creates an empty shader. Returns a shader's code. Returns a default texture from a shader searched by name. Returns the parameters of a shader. Sets a shader's code. Sets a shader's default texture. Overwrites the texture given by name. Creates an empty sky. Sets a sky's texture. Binds the texture to a texture slot. Creates an empty texture. Creates a texture, allocates the space for an image, and fills in the image. Returns a list of all the textures and their information. Returns a copy of a texture's image unless it's a CubeMap, in which case it returns the [RID] of the image at one of the cubes sides. Returns the flags of a texture. Returns the format of the texture's image. Returns the texture's height. Returns the texture's path. Returns the opengl id of the texture's image. Returns the texture's width. Sets the texture's image data. If it's a CubeMap, it sets the image data at a cube side. Sets the texture's flags. See [enum TextureFlags] for options. Sets the texture's path. If [code]true[/code], sets internal processes to shrink all image data to half the size. If [code]true[/code], the image will be stored in the texture's images array if overwritten. Sets a viewport's camera. Sets a viewport's canvas. Copies viewport to a region of the screen specified by [code]rect[/code]. If Viewport.[member Viewport.render_direct_to_screen] is [code]true[/code], then viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to. For example, you can set the root viewport to not render at all with the following code: [codeblock] func _ready(): get_viewport().set_attach_to_screen_rect(Rect2()) $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600)) [/codeblock] Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For a further optimization see, [method viewport_set_render_direct_to_screen]. Creates an empty viewport. Detaches the viewport from the screen. Returns a viewport's render information. For options, see the [code]VIEWPORT_RENDER_INFO*[/code] constants. Returns the viewport's last rendered frame. Detaches a viewport from a canvas and vice versa. If [code]true[/code], sets the viewport active, else sets it inactive. Sets the stacking order for a viewport's canvas. [code]layer[/code] is the actual canvas layer, while [code]sublayer[/code] specifies the stacking order of the canvas among those in the same layer. Sets the transformation of a viewport's canvas. Sets the clear mode of a viewport. See [enum ViewportClearMode] for options. Sets the debug draw mode of a viewport. See [enum ViewportDebugDraw] for options. If [code]true[/code], a viewport's 3D rendering is disabled. If [code]true[/code], rendering of a viewport's environment is disabled. Sets the viewport's global transformation matrix. If [code]true[/code], the viewport renders to hdr. If [code]true[/code], the viewport's canvas is not rendered. Sets the anti-aliasing mode. See [enum ViewportMSAA] for options. Sets the viewport's parent to another viewport. If [code]true[/code], render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the [code]SCREEN_TEXTURE[/code]. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size. Sets a viewport's scenario. The scenario contains information about the [enum ScenarioDebugMode], environment information, reflection atlas etc. Sets the shadow atlas quadrant's subdivision. Sets the size of the shadow atlas's images (used for omni and spot lights). The value will be rounded up to the nearest power of 2. Sets the viewport's width and height. If [code]true[/code], the viewport renders its background as transparent. Sets when the viewport should be updated. See [enum ViewportUpdateMode] constants for options. Sets the viewport's 2D/3D mode. See [enum ViewportUsage] constants for options. If [code]true[/code], the viewport uses augmented or virtual reality technologies. See [ARVRInterface]. If [code]true[/code], the viewport's rendering is flipped vertically. Marks an error that shows that the index array is empty. The minimum Z-layer for canvas items. The maximum Z-layer for canvas items. The minimum renderpriority of all materials. The maximum renderpriority of all materials. Marks the left side of a cubemap. Marks the right side of a cubemap. Marks the bottom side of a cubemap. Marks the top side of a cubemap. Marks the front side of a cubemap. Marks the back side of a cubemap. Generates mipmaps, which are smaller versions of the same texture to use when zoomed out, keeping the aspect ratio. Repeats the texture (instead of clamp to edge). Uses a magnifying filter, to enable smooth zooming in of the texture. Uses anisotropic mipmap filtering. Generates smaller versions of the same texture with different aspect ratios. This results in better-looking textures when viewed from oblique angles. Converts the texture to the sRGB color space. Repeats the texture with alternate sections mirrored. Texture is a video surface. Default flags. [constant TEXTURE_FLAG_MIPMAPS], [constant TEXTURE_FLAG_REPEAT] and [constant TEXTURE_FLAG_FILTER] are enabled. Shader is a 3D shader. Shader is a 2D shader. Shader is a particle shader. Represents the size of the [enum ShaderMode] enum. Array is a vertex array. Array is a normal array. Array is a tangent array. Array is a color array. Array is an UV coordinates array. Array is an UV coordinates array for the second UV coordinates. Array contains bone information. Array is weight information. Array is index array. Represents the size of the [enum ArrayType] enum. Flag used to mark a vertex array. Flag used to mark a normal array. Flag used to mark a tangent array. Flag used to mark a color array. Flag used to mark an UV coordinates array. Flag used to mark an UV coordinates array for the second UV coordinates. Flag used to mark a bone information array. Flag used to mark a weights array. Flag used to mark an index array. Flag used to mark a compressed (half float) vertex array. Flag used to mark a compressed (half float) normal array. Flag used to mark a compressed (half float) tangent array. Flag used to mark a compressed (half float) color array. Flag used to mark a compressed (half float) UV coordinates array. Flag used to mark a compressed (half float) UV coordinates array for the second UV coordinates. Flag used to mark a compressed (half float) weight array. Flag used to mark that the array contains 2D vertices. Flag used to mark that the array uses 16-bit bones instead of 8-bit. Used to set flags [constant ARRAY_COMPRESS_VERTEX], [constant ARRAY_COMPRESS_NORMAL], [constant ARRAY_COMPRESS_TANGENT], [constant ARRAY_COMPRESS_COLOR], [constant ARRAY_COMPRESS_TEX_UV], [constant ARRAY_COMPRESS_TEX_UV2] and [constant ARRAY_COMPRESS_WEIGHTS] quickly. Primitive to draw consists of points. Primitive to draw consists of lines. Primitive to draw consists of a line strip from start to end. Primitive to draw consists of a line loop (a line strip with a line between the last and the first vertex). Primitive to draw consists of triangles. Primitive to draw consists of a triangle strip (the last 3 vertices are always combined to make a triangle). Primitive to draw consists of a triangle strip (the last 2 vertices are always combined with the first to make a triangle). Represents the size of the [enum PrimitiveType] enum. Is a directional (sun) light. Is an omni light. Is a spot light. The light's energy. The light's influence on specularity. The light's range. The light's attenuation. The spotlight's angle. The spotlight's attenuation. Scales the shadow color. Represents the size of the [enum LightParam] enum. The viewport is always cleared before drawing. The viewport is never cleared before drawing. The viewport is cleared once, then the clear mode is set to [constant VIEWPORT_CLEAR_NEVER]. Multisample antialiasing is disabled. Multisample antialiasing is set to 2×. Multisample antialiasing is set to 4×. Multisample antialiasing is set to 8×. Multisample antialiasing is set to 16×. Multisample antialiasing is set to 2× on external texture. Special mode for GLES2 Android VR (Oculus Quest and Go). Multisample antialiasing is set to 4× on external texture. Special mode for GLES2 Android VR (Oculus Quest and Go). The Viewport does not render 3D but samples. The Viewport does not render 3D and does not sample. The Viewport renders 3D with effects. The Viewport renders 3D but without effects. Represents the size of the [enum ViewportRenderInfo] enum. Debug draw is disabled. Default setting. Debug draw sets objects to unshaded. Overwrites clear color to [code](0,0,0,0)[/code]. Debug draw draws objects in wireframe. The instance does not have a type. The instance is a mesh. The instance is a multimesh. The instance is an immediate geometry. The instance is a particle emitter. The instance is a light. Represents the size of the [enum InstanceType] enum. A combination of the flags of geometry instances (mesh, multimesh, immediate and particles). Represents the size of the [enum InstanceFlags] enum. The nine patch gets stretched where needed. The nine patch gets filled with tiles where needed. The nine patch gets filled with tiles where needed and stretches them a bit if needed. Adds light color additive to the canvas. Adds light color subtractive to the canvas. The light adds color depending on transparency. The light adds color depending on mask. Culling of the canvas occluder is disabled. Culling of the canvas occluder is clockwise. Culling of the canvas occluder is counterclockwise. The amount of objects in the frame. The amount of vertices in the frame. The amount of modified materials in the frame. The amount of shader rebinds in the frame. The amount of surface changes in the frame. The amount of draw calls in frame. Unimplemented in the GLES2 and GLES3 rendering backends, always returns 0. The amount of video memory used, i.e. texture and vertex memory combined. The amount of texture memory used. The amount of vertex memory used. Represents the size of the [enum EnvironmentBG] enum.