⚠️ This documentation corresponds to the latest development branch of axmol. It might diverge from the official releases.
|
Axmol Engine 3.0.0-dff292a
|
Store encoded commands for the GPU to execute. More...
#include <RenderContext.h>
Inherits Object.
Inherited by RenderContextImpl, , and RenderContextImpl.
Public Member Functions | |
| virtual RenderTarget * | getScreenRenderTarget () const =0 |
| Set the Screen Render Target object. | |
| virtual bool | updateSurface (void *surface, uint32_t width, uint32_t height) |
| Updates surface when the window resized or surface recretad. | |
| virtual void | setDepthStencilState (DepthStencilState *depthStencilState)=0 |
| Set depthStencil status once. | |
| virtual void | setRenderPipeline (RenderPipeline *renderPipeline)=0 |
| Sets the current render pipeline state object once. | |
| Public Member Functions inherited from Object | |
| void | retain () |
| Retains the ownership. | |
| void | release () |
| Releases the ownership immediately. | |
| Object * | autorelease () |
| Releases the ownership sometime soon automatically. | |
| unsigned int | getReferenceCount () const |
| Returns the Object's current reference count. | |
| virtual | ~Object () |
| Destructor. | |
Setters & Getters | |
| virtual bool | beginFrame ()=0 |
| Indicate the begining of a frame. | |
| virtual void | beginRenderPass (RenderTarget *renderTarget, const RenderPassDesc &desc)=0 |
| Begin a render pass, initial color, depth and stencil attachment. | |
| virtual void | updateDepthStencilState (const DepthStencilDesc &desc)=0 |
| Update depthStencil status, improvment: for metal backend cache it. | |
| virtual void | updatePipelineState (const RenderTarget *rt, const PipelineDesc &desc, PrimitiveGroup primitiveGroup)=0 |
| Update render pipeline status Building a programmable pipeline involves an expensive evaluation of GPU state. | |
| virtual void | setViewport (int x, int y, unsigned int w, unsigned int h)=0 |
| Fixed-function state. | |
| virtual void | setCullMode (CullMode mode)=0 |
| Fixed-function state. | |
| virtual void | setWinding (Winding winding)=0 |
| Fixed-function state. | |
| virtual void | setVertexBuffer (Buffer *buffer)=0 |
| Set a global buffer for all vertex shaders at the given bind point index 0. | |
| virtual void | setIndexBuffer (Buffer *buffer)=0 |
| Set indexes when drawing primitives with index list @ buffer A buffer object that the device will read indexes from. | |
| virtual void | setInstanceBuffer (Buffer *buffer)=0 |
| Set matrix tranform when drawing instances of the same model @ buffer A buffer object that the device will read matrices from. | |
| virtual void | drawArrays (PrimitiveType primitiveType, std::size_t start, std::size_t count, bool wireframe=false)=0 |
| Draw primitives without an index list. | |
| virtual void | drawElements (PrimitiveType primitiveType, IndexFormat indexType, std::size_t count, std::size_t offset, bool wireframe=false)=0 |
| Draw primitives with an index list. | |
| virtual void | drawElementsInstanced (PrimitiveType primitiveType, IndexFormat indexType, std::size_t count, std::size_t offset, int instanceCount, bool wireframe=false)=0 |
| Draw primitives with an index list instanced. | |
| virtual void | endRenderPass ()=0 |
| Do some resources release. | |
| virtual void | endFrame ()=0 |
| Present a drawable and commit a command buffer so it can be executed as soon as possible. | |
| virtual void | setScissorRect (bool isEnabled, float x, float y, float width, float height)=0 |
| Fixed-function state. | |
| virtual void | readPixels (RenderTarget *rt, bool preserveAxisHint, std::function< void(const PixelBufferDesc &)> callback)=0 |
| Read pixels from the specified render target. | |
| virtual void | setFrameBufferOnly (bool frameBufferOnly) |
| This property controls whether or not the drawables' metal textures may only be used for framebuffer attachments (YES) or whether they may also be used for texture sampling and pixel read/write operations (NO). | |
| virtual void | setStencilReferenceValue (uint32_t value) |
| Update both front and back stencil reference value. | |
| virtual uint64_t | getCompletedFenceValue () const |
| Returns the last completed fence value for GPU synchronization. | |
Additional Inherited Members | |
| Public Attributes inherited from Object | |
| unsigned int | _ID |
| object id, ScriptSupport need public _ID | |
| int | _luaID |
| Lua reference id. | |
Store encoded commands for the GPU to execute.
A Render Context stores encoded commands until the buffer is committed for execution by the GPU
|
pure virtual |
Set the Screen Render Target object.
| rt |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
virtual |
Updates surface when the window resized or surface recretad.
| surface | |
| width | |
| height |
Reimplemented in RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Set depthStencil status once.
| depthStencilState | Specifies the depth and stencil status |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Sets the current render pipeline state object once.
| renderPipeline | An object that contains the graphics functions and configuration state used in a render pass. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Begin a render pass, initial color, depth and stencil attachment.
| desc | Specifies a group of render targets that hold the results of a render pass. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Update depthStencil status, improvment: for metal backend cache it.
| depthStencilState | Specifies the depth and stencil status |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Update render pipeline status Building a programmable pipeline involves an expensive evaluation of GPU state.
So a new render pipeline object will be created only if it hasn't been created before.
| rt | Specifies the render target. |
| pipelineDesc | Specifies the pipeline desc. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Fixed-function state.
| x | The x coordinate of the upper-left corner of the viewport. |
| y | The y coordinate of the upper-left corner of the viewport. |
| w | The width of the viewport, in pixels. |
| h | The height of the viewport, in pixels. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Fixed-function state.
| mode | Controls if primitives are culled when front facing, back facing, or not culled at all. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Fixed-function state.
| winding | The winding order of front-facing primitives. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Set a global buffer for all vertex shaders at the given bind point index 0.
| buffer | The vertex buffer to be setted in the buffer argument table. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Set indexes when drawing primitives with index list @ buffer A buffer object that the device will read indexes from.
@ see drawElements(PrimitiveType primitiveType, IndexFormat indexType, unsigned int count, unsigned int offset)
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Draw primitives without an index list.
| primitiveType | The type of primitives that elements are assembled into. |
| start | For each instance, the first index to draw |
| count | For each instance, the number of indexes to draw |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Draw primitives with an index list.
| primitiveType | The type of primitives that elements are assembled into. |
| indexType | The type if indexes, either 16 bit integer or 32 bit integer. |
| count | The number of indexes to read from the index buffer for each instance. |
| offset | Byte offset within indexBuffer to start reading indexes from. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Draw primitives with an index list instanced.
| primitiveType | The type of primitives that elements are assembled into. |
| indexType | The type if indexes, either 16 bit integer or 32 bit integer. |
| count | The number of indexes to read from the index buffer for each instance. |
| offset | Byte offset within indexBuffer to start reading indexes from. |
| instance | Count of instances to draw at once. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Fixed-function state.
| x,y | Specifies the lower left corner of the scissor box |
| wdith | Specifies the width of the scissor box |
| height | Specifies the height of the scissor box |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
pure virtual |
Read pixels from the specified render target.
| rt | The render target to read pixels from. |
| preserveAxisHint | A hint indicating whether to preserve the original axis orientation (e.g., avoid vertical flip). Note: support may vary across drivers/backends. |
| callback | A callback invoked with the resulting pixel buffer description. |
Implemented in RenderContextImpl, RenderContextImpl, and RenderContextImpl.
|
virtual |
This property controls whether or not the drawables' metal textures may only be used for framebuffer attachments (YES) or whether they may also be used for texture sampling and pixel read/write operations (NO).
| frameBufferOnly | A value of YES allows CAMetalLayer to allocate the MTLTexture objects in ways that are optimized for display purposes that makes them unsuitable for sampling. The recommended value for most applications is YES. |
|
virtual |
Update both front and back stencil reference value.
| value | Specifies stencil reference value. |
|
virtual |
Returns the last completed fence value for GPU synchronization.
Only modern graphics APIs such as D3D12 and Vulkan provide explicit fence value tracking. Legacy APIs (e.g., OpenGL, D3D11 without timeline semaphores) do not expose this, so the default implementation returns UINT64_MAX as a sentinel.