Urho 1.0.0.0 Urho.UrhoObject Graphics subsystem. Manages the application window, rendering state and GPU resources. Graphics implements the low-level functionality: Creating the window and the rendering context. Setting the screen mode. Keeping track of GPU resources. Keeping track of rendering context state (current rendertarget, vertex and index buffers, textures, shaders and renderstates) Loading shaders. Performing primitive rendering operations. Handling disconnected GPUs. The screen resolution, fullscreen or windowed mode, vertical sync and hardware multisampling level are all set at once by calling When setting the initial screen mode, Graphics does a few checks: For Direct3D9, shader model 3.0 support is checked. For OpenGL, version 3.2 support is checked for first and used if available. As a fallback, version 2.0 with EXT_framebuffer_object, EXT_packed_depth_stencil and EXT_texture_filter_anisotropic extensions is checked for. The ARB_instanced_arrays extension is also checked for but not required; it will enable hardware instancing support when present. Are hardware shadow maps supported? Both AMD & NVIDIA style shadow maps can be used. If neither are available, no shadows will be rendered. Are light pre-pass and deferred rendering modes supported? These require sufficient multiple rendertarget support, and R32F texture format support. The actual rendering of 3D views is driven by the  class.

Dealing with GPU Disconnetion

On Direct3D9 and Android OpenGL ES 2.0 it is possible to lose the rendering context (and therefore GPU resources) due to the application window being minimized or sent to the background.  

Additionally, to work around possible GPU driver bugs the desktop OpenGL context will be voluntarily destroyed and recreated when changing screen mode or toggling between fullscreen and windowed. Therefore, on all graphics APIs one must be prepared for losing GPU resources.

Textures that have been loaded from a file, as well as vertex & index buffers that have shadowing enabled will restore their contents automatically, the rest have to be restored manually. On Direct3D9 non-dynamic (managed) textures and buffers will never be lost, as the runtime automatically backs them up to system memory.

Constructor 1.0.0.0 To be added. To be added. Constructor 1.0.0.0 Pointer to the raw unmanaged Urho object. Constructs a new instance of Urho.Graphics, given a raw pointer to an unmanaged object This creates a new managed wrapper for the type using the raw pointer to an unmanaged object. Objects that are created in this fashion get registered with the UrhoSharp runtime. This is intended to be used by the UrhoSharp runtime, and is not intended to be used by users. Constructor 1.0.0.0 To be added. To be added. To be added. Constructor 1.0.0.0 Pass UrhoObjectFlag.Empty. Empty constructor, chain to this constructor when you provide your own constructor that sets the handle field. This constructor should be invoked by your code if you provide your own constructor that sets the handle field. This essentially circumvents the default path that creates a new object and sets the handle and does not call RegisterObject on the target, you must do this on your own constructor. You would typically chain to this constructor from your own, and then set the handle to the unmanaged object from your code, and then register your object. Method 1.0.0.0 System.Void To be added. Add a GPU object to keep track of. Called by GPUObject. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific alpha texture format. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether anisotropic texture filtering is supported. To be added. To be added. Property 1.0.0.0 System.String Return graphics API name. To be added. To be added. Method 1.0.0.0 System.Void To be added. Begin dumping shader variation names to an XML file for precaching. To be added. Method 1.0.0.0 System.Boolean Begin frame rendering. Return true if device available and can render. To be added. To be added. Property 1.0.0.0 Urho.BlendMode Return blending mode. Or Set blending mode. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether window is borderless. To be added. To be added. Method 1.0.0.0 System.Void To be added. Clean up a render surface from all FBOs. To be added. Method 1.0.0.0 System.Void Clean up too large scratch buffers. To be added. Method 1.0.0.0 System.Void To be added. Clean up shader programs when a shader variation is released or destroyed. To be added. Method 1.0.0.0 System.Void To be added. To be added. To be added. To be added. Clear any or all of rendertarget, depth buffer and stencil buffer. To be added. Method 1.0.0.0 System.Void To be added. Clear remembered shader parameter source group. To be added. Method 1.0.0.0 System.Void Clear remembered shader parameter sources. To be added. Method 1.0.0.0 System.Void Clear remembered transform shader parameter sources. To be added. Method 1.0.0.0 System.Void Close the window. To be added. Property 1.0.0.0 System.Boolean Return whether color write is enabled. Or Set color write on/off. To be added. To be added. Property 1.0.0.0 Urho.CullMode Return hardware culling mode. Or Set hardware culling mode. To be added. To be added. Property 1.0.0.0 Urho.TextureFilterMode Return default texture filtering mode. Or Set default texture filtering mode. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether deferred rendering is supported. To be added. To be added. Property 1.0.0.0 System.Single Return depth constant bias. To be added. To be added. Property 1.0.0.0 System.Single Return depth slope scaled bias. To be added. To be added. Property 1.0.0.0 Urho.RenderSurface Return depth-stencil surface. Or Set depth-stencil surface. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific hardware depth-stencil texture format. To be added. To be added. Property 1.0.0.0 Urho.CompareMode Return depth compare mode. Or Set depth compare. To be added. To be added. Property 1.0.0.0 Urho.Urho2D.Texture2D Return readable depth-stencil texture. Not created automatically on OpenGL. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether depth write is enabled. Or Set depth write on/off. To be added. To be added. Property 1.0.0.0 Urho.IntVector2 Return the desktop resolution. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether device is lost, and can not yet render. To be added. To be added. Method 1.0.0.0 System.Void To be added. To be added. To be added. Draw non-indexed geometry. To be added. Method 1.0.0.0 System.Void To be added. To be added. To be added. To be added. To be added. Draw indexed geometry. To be added. Method 1.0.0.0 System.Void To be added. To be added. To be added. To be added. To be added. To be added. Draw indexed, instanced geometry. To be added. Property 1.0.0.0 System.UInt32 Return dummy color texture format for shadow maps. 0 if not needed, may be nonzero on OS X to work around an Intel driver issue. To be added. To be added. Method 1.0.0.0 System.Void End dumping shader variations names. To be added. Method 1.0.0.0 System.Void End frame rendering and swap buffers. To be added. Property 1.0.0.0 System.IntPtr Return OS-specific external window handle. Null if not in use. Or Set external window handle. Only effective before setting the initial screen mode. On Windows it is necessary to set up OpenGL pixel format manually for the window. To be added. To be added. Property 1.0.0.0 Urho.FillMode Return polygon fill mode. Or Set polygon fill mode. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific single channel 16-bit float texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific single channel 32-bit float texture format. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether the GPU command buffer is flushed each frame. Not yet implemented on OpenGL. Or Set whether to flush the GPU command buffer to prevent multiple frames being queued and uneven frame timesteps. Not yet implemented on OpenGL. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether OpenGL 2 use is forced. Or Set forced use of OpenGL 2 even if OpenGL 3 is available. Must be called before setting the screen mode for the first time. Default false. To be added. To be added. Method 1.0.0.0 System.Void To be added. Free a CPU-side scratch buffer. To be added. Property 1.0.0.0 System.Boolean Return whether window is fullscreen. To be added. To be added. Method 1.0.0.0 System.UInt32 To be added. Return the API-specific texture format from a textual description, for example "rgb". To be added. To be added. Method 1.0.0.0 System.UInt32 To be added. Return hardware format for a compressed image format, or 0 if unsupported. To be added. To be added. Method 1.0.0.0 Urho.ConstantBuffer To be added. To be added. Reserve a constant buffer. To be added. To be added. Method 1.0.0.0 Urho.RenderSurface To be added. Return rendertarget by index. To be added. To be added. Method 1.0.0.0 Urho.ShaderVariation To be added. To be added. To be added. Return a shader variation by name and defines. To be added. To be added. Method 1.0.0.0 Urho.Texture To be added. Return texture by texture unit index. To be added. To be added. Method 1.0.0.0 Urho.TextureUnit To be added. Return texture unit index by name. To be added. To be added. Method 1.0.0.0 System.String To be added. Return texture unit name by index. To be added. To be added. Method 1.0.0.0 Urho.VertexBuffer To be added. Return current vertex buffer by index. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether is using an OpenGL 3 context. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether shadow map depth compare is done in hardware. Always true on OpenGL. To be added. To be added. Method 1.0.0.0 System.Boolean To be added. Check whether a shader parameter exists on the currently set shaders. To be added. To be added. Method 1.0.0.0 System.Boolean To be added. Check whether the current shader program uses a texture unit. To be added. To be added. Property 1.0.0.0 System.Int32 Return window height. To be added. To be added. Property 1.0.0.0 System.UInt32 Return 24-bit shadow map depth texture format, or 0 if not supported. To be added. To be added. Property 1.0.0.0 Urho.GraphicsImpl* Return graphics implementation, which holds the actual API-specific resources. To be added. To be added. Property 1.0.0.0 Urho.IndexBuffer Return index buffer. Or Set index buffer. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether rendering initialized. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether hardware instancing is supported. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether light pre-pass rendering is supported. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific linear depth texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific luminance alpha texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific luminance texture format. To be added. To be added. Method 1.0.0.0 System.Void Mark the FBO needing an update. To be added. Property 1.0.0.0 System.UInt32 Return maximum number of supported bones for skinning. To be added. To be added. Method 1.0.0.0 System.Void Maximize the Window. To be added. Method 1.0.0.0 System.Void Minimize the Window. To be added. Property 1.0.0.0 System.Int32 Return multisample mode (1 = no multisampling.) To be added. To be added. Method 1.0.0.0 System.Boolean To be added. To be added. Check whether a shader parameter group needs update. Does not actually check whether parameters exist in the shaders. To be added. To be added. Property 1.0.0.0 System.UInt32 Return number of batches drawn this frame. To be added. To be added. Property 1.0.0.0 System.UInt32 Return number of primitives drawn this frame. To be added. To be added. Property 1.0.0.0 System.String Return allowed screen orientations. Or Set allowed screen orientations as a space-separated list of "LandscapeLeft", "LandscapeRight", "Portrait" and "PortraitUpsideDown". Affects currently only iOS platform. To be added. To be added. Property 1.0.0.0 Urho.ShaderVariation Return pixel shader. To be added. To be added. Property 1.0.0.0 Urho.Vector2 Return UV offset required for pixel perfect rendering. To be added. To be added. Method 1.0.0.0 System.Void To be added. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific readable hardware depth format, or 0 if not supported. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether a readable hardware depth format is available. To be added. To be added. Method 1.0.0.0 System.Void To be added. To be added. Release/clear GPU objects and optionally close the window. To be added. Method 1.0.0.0 System.Void To be added. Remove a GPU object. Called by GPUObject. To be added. Property 1.0.0.0 Urho.IntVector2 Return rendertarget width and height. To be added. To be added. Method 1.0.0.0 System.IntPtr To be added. Reserve a CPU-side scratch buffer. To be added. To be added. Method 1.0.0.0 System.Void Reset depth-stencil surface. To be added. Method 1.0.0.0 System.Void To be added. Reset specific rendertarget. To be added. Method 1.0.0.0 System.Void Reset all rendertargets, depth-stencil surface and viewport. To be added. Property 1.0.0.0 System.Boolean Return whether window is resizable. To be added. To be added. Method 1.0.0.0 System.Boolean To be added. To be added. Resolve multisampled backbuffer to a texture rendertarget. The texture's size should match the viewport size. To be added. To be added. Method 1.0.0.0 System.Void Restore GPU objects and reinitialize state. Requires an open window. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RG 16-bit texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RGBA 16-bit texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RGBA 16-bit float texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RGBA 32-bit float texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RGBA texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RGB texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RG 16-bit float texture format. To be added. To be added. Property 1.0.0.0 System.UInt32 Return the API-specific RG 32-bit float texture format. To be added. To be added. Property 1.0.0.0 Urho.IntRect Return scissor rectangle coordinates. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether scissor test is enabled. To be added. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set depth bias. To be added. Method 1.0.0.0 System.Void To be added. Set depth-stencil surface. To be added. Method 1.0.0.0 System.Boolean To be added. To be added. Set screen resolution only. Return true if successful. To be added. To be added. Method 1.0.0.0 System.Boolean To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added. Set screen mode. Return true if successful. To be added. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set rendertarget. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set rendertarget. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set scissor test. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set shader float constant. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set shader color constant. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set shader 2D vector constant. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set shader 3D vector constant. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set shader 4D vector constant. To be added. Method 1.0.0.0 System.Void To be added. To be added. To be added. Set shader float constants. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set shaders. To be added. Method 1.0.0.0 System.Void To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added. Set stencil test. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set texture. To be added. Method 1.0.0.0 System.Void To be added. Bind texture unit 0 for update. Called by Texture. To be added. Method 1.0.0.0 System.Void Dirty texture parameters of all textures (when global settings change.) To be added. Method 1.0.0.0 System.Void To be added. Bind a UBO, avoiding redundant operation. To be added. Method 1.0.0.0 System.Void To be added. Bind a VBO, avoiding redundant operation. To be added. Method 1.0.0.0 System.Void To be added. Set vertex buffer. To be added. Method 1.0.0.0 System.Void To be added. Set viewport. To be added. Method 1.0.0.0 System.Void To be added. Set window icon. To be added. Method 1.0.0.0 System.Void To be added. Set window position. To be added. Method 1.0.0.0 System.Void To be added. To be added. Set window position. To be added. Property 1.0.0.0 Urho.ShaderProgram Return shader program. To be added. To be added. Property 1.0.0.0 System.UInt32 Return shadow map depth texture format, or 0 if not supported. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether the main window is using sRGB conversion on write. Or Set whether the main window uses sRGB conversion on write. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether sRGB conversion on texture sampling is supported. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether sRGB conversion on rendertarget writing is supported. To be added. To be added. Property 1.0.0.0 System.UInt32 Return stencil compare bitmask. To be added. To be added. Property 1.0.0.0 Urho.StencilOp Return stencil operation to do if stencil test fails. To be added. To be added. Property 1.0.0.0 Urho.StencilOp Return stencil operation to do if stencil test passes. To be added. To be added. Property 1.0.0.0 System.UInt32 Return stencil reference value. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether stencil test is enabled. To be added. To be added. Property 1.0.0.0 Urho.CompareMode Return stencil compare mode. To be added. To be added. Property 1.0.0.0 System.UInt32 Return stencil write bitmask. To be added. To be added. Property 1.0.0.0 Urho.StencilOp Return stencil operation to do if depth compare fails. To be added. To be added. Property 1.0.0.0 System.UInt32 Return texture anisotropy. Or Set texture anisotropy. To be added. To be added. Method 1.0.0.0 System.Boolean Toggle between full screen and windowed mode. Return true if successful. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether triple buffering is enabled. To be added. To be added. Property 1.0.0.0 Urho.StringHash Urho's type system type. StringHash representing the type for this C# type. This returns the Urho's type and is surfaced for low-level Urho code. Property 1.0.0.0 System.String Urho's low-level type name. Stringified low-level type name. Property 1.0.0.0 System.String Urho's low-level type name, accessible as a static method. Stringified low-level type name. Property 1.0.0.0 Urho.StringHash Urho's low-level type, accessible as a static method. This returns the Urho's type and is surface for the low-level Urho code. Property 1.0.0.0 System.Boolean Return whether a custom clipping plane is in use. To be added. To be added. Property 1.0.0.0 Urho.ShaderVariation Return vertex shader. To be added. To be added. Property 1.0.0.0 Urho.IntRect Return the viewport coordinates. To be added. To be added. Property 1.0.0.0 System.Boolean Return whether vertical sync is on. To be added. To be added. Property 1.0.0.0 System.Int32 Return window width. To be added. To be added. Method 1.0.0.0 System.Void Window was moved through user interaction. Called by Input subsystem. To be added. Property 1.0.0.0 Urho.IntVector2 Return window position. To be added. To be added. Method 1.0.0.0 System.Void Window was resized through user interaction. Called by Input subsystem. To be added. Property 1.0.0.0 System.String Return window title. Or Set window title. To be added. To be added.