|
Axmol 3.0.0-89d6d9a
|
Store encoded commands for the GPU to execute. More...
#include <GraphicsContextGL.h>
Inherits GraphicsContext.
Public Member Functions | |
| RenderTarget * | getScreenRenderTarget () const override |
| Set the Screen Render Target object. | |
| void | setDepthStencilState (DepthStencilState *depthStencilState) override |
| Set depthStencil status once. | |
| void | setGraphicsPipeline (GraphicsPipeline *graphicsPipeline) override |
| Sets the current render pipeline state object once. | |
| Public Member Functions inherited from GraphicsContext | |
| virtual bool | updateSurface (SurfaceHandle surface, uint32_t width, uint32_t height) |
| Updates surface when the window resized or surface recretad. | |
| 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. | |
| 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. | |
| uint64_t | getObjectID () const noexcept |
| Returns the process-local diagnostic identifier assigned at construction. | |
| virtual | ~Object () |
| Destructor. | |
Setters & Getters | |
| bool | beginFrame () override |
| Indicate the begining of a frame. | |
| void | beginRenderPass (RenderTarget *rt, const RenderPassDesc &descriptor) override |
| Begin a render pass, initial color, depth and stencil attachment. | |
| void | updateDepthStencilState (const DepthStencilDesc &descriptor) override |
| Update depthStencil status, improvment: for metal backend cache it. | |
| void | updatePipelineState (const RenderTarget *rt, const PipelineDesc &descriptor, PrimitiveType primitiveType) override |
| Update render pipeline status. | |
| void | setViewport (int x, int y, unsigned int w, unsigned int h) override |
| Fixed-function state. | |
| void | setCullMode (CullMode mode) override |
| Fixed-function state. | |
| void | setWinding (Winding winding) override |
| Fixed-function state. | |
| void | setVertexBuffer (Buffer *buffer) override |
| Set a global buffer for all vertex shaders at the given bind point index 0. | |
| void | setIndexBuffer (Buffer *buffer) override |
| Set indexes when drawing primitives with index list @ buffer A buffer object that the device will read indexes from. | |
| void | setInstanceBuffer (Buffer *buffer) override |
| Set matrix tranform when drawing instances of the same model @ buffer A buffer object that the device will read matrices from. | |
| void | drawArrays (size_t start, size_t count, bool wireframe=false) override |
| Draw primitives without an index list. | |
| void | drawElements (IndexFormat indexType, size_t count, size_t offset, bool wireframe=false) override |
| Draw primitives with an index list. | |
| void | drawElementsInstanced (IndexFormat indexType, size_t count, size_t offset, int instanceCount, bool wireframe=false) override |
| Draw primitives with an index list instanced. | |
| void | endRenderPass () override |
| Do some resources release. | |
| void | endFrame () override |
| Present a drawable and commit a command buffer so it can be executed as soon as possible. | |
| void | submitCurrentFrameCommands (bool waitForCompletion) override |
| Submit currently encoded frame commands without presenting the default surface. | |
| void | setScissorRect (bool enabled, float x, float y, float width, float height) override |
| Fixed-function state. | |
| void | readPixels (RenderTarget *rt, std::function< void(const PixelBufferDesc &)> callback) override |
| Read pixels from the specified render target. | |
| bool | copyTexture (RenderTarget *src, Texture *dst) override |
| Copies the rendered contents of a render target into a texture resource. | |
| bool | copyTexture (Texture *src, Texture *dst) override |
| Copies the contents of one texture resource into another texture resource. | |
| bool | dispatch (const ComputeDispatchDesc &desc) override |
| Dispatches a compute pipeline on the graphics queue. | |
Additional Inherited Members |
Store encoded commands for the GPU to execute.
A command buffer stores encoded commands until the buffer is committed for execution by the GPU
|
inlineoverridevirtual |
|
overridevirtual |
Set depthStencil status once.
| depthStencilState | Specifies the depth and stencil status |
Implements GraphicsContext.
|
overridevirtual |
Sets the current render pipeline state object once.
| graphicsPipeline | An object that contains the graphics functions and configuration state used in a render pass. |
Implements GraphicsContext.
|
overridevirtual |
Begin a render pass, initial color, depth and stencil attachment.
| descriptor | Specifies a group of render targets that hold the results of a render pass. |
Implements GraphicsContext.
|
overridevirtual |
Update depthStencil status, improvment: for metal backend cache it.
| depthStencilState | Specifies the depth and stencil status |
Implements GraphicsContext.
|
overridevirtual |
Update render pipeline status.
| depthStencilState | Specifies the depth and stencil status |
Implements GraphicsContext.
|
overridevirtual |
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. |
Implements GraphicsContext.
|
overridevirtual |
Fixed-function state.
| mode | Controls if primitives are culled when front facing, back facing, or not culled at all. |
Implements GraphicsContext.
|
overridevirtual |
Fixed-function state.
| winding | The winding order of front-facing primitives. |
Implements GraphicsContext.
|
overridevirtual |
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. |
Implements GraphicsContext.
|
overridevirtual |
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)
Implements GraphicsContext.
|
overridevirtual |
Draw primitives without an index list.
| start | For each instance, the first index to draw |
| count | For each instance, the number of indexes to draw |
Implements GraphicsContext.
|
overridevirtual |
Draw primitives with an index list.
| 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. |
Implements GraphicsContext.
|
overridevirtual |
Draw primitives with an index list instanced.
| 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. |
Implements GraphicsContext.
|
overridevirtual |
Submit currently encoded frame commands without presenting the default surface.
External runtimes such as OpenXR call this before releasing acquired swapchain images.
Reimplemented from GraphicsContext.
|
overridevirtual |
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 |
Implements GraphicsContext.
|
overridevirtual |
Read pixels from the specified render target.
| rt | The render target to read pixels from. |
| callback | A callback invoked with the resulting pixel buffer description. |
Implements GraphicsContext.
|
overridevirtual |
Copies the rendered contents of a render target into a texture resource.
Unlike texture-to-texture copies, this operation copies from the current render target output. The underlying implementation may use a framebuffer copy, resolve, or other backend-specific operation depending on the graphics API.
| src | Source render target. |
| dst | Destination texture to receive the rendered contents. |
Implements GraphicsContext.
Copies the contents of one texture resource into another texture resource.
This operation performs a GPU-side texture copy without involving the CPU. The source and destination textures must be compatible for copying according to the underlying graphics backend requirements.
| src | Source texture to copy from. |
| dst | Destination texture to copy into. |
Implements GraphicsContext.
|
overridevirtual |
Dispatches a compute pipeline on the graphics queue.
The pipeline and program state must reference the same compute program. All resources declared by that program must be bound through the program state before dispatch. The dispatch is submitted outside an active render pass; the RHI performs the required synchronization with subsequent compute and graphics accesses.
| desc | Compute pipeline, resource bindings, and workgroup counts. |
Reimplemented from GraphicsContext.