Ultralight  1.0.0
A fast, lightweight, HTML UI engine for native apps.
ultralight::GPUDriver Class Referenceabstract

GPUDriver interface, dispatches GPU calls to the native driver. More...

#include <GPUDriver.h>

Public Member Functions

virtual void BeginSynchronize ()=0
 Called before any commands are dispatched during a frame.
 
virtual void EndSynchronize ()=0
 Called after any commands are dispatched during a frame.
 
virtual uint32_t NextTextureId ()=0
 Get the next available texture ID.
 
virtual void CreateTexture (uint32_t texture_id, Ref< Bitmap > bitmap)=0
 Create a texture with a certain ID and optional bitmap. More...
 
virtual void UpdateTexture (uint32_t texture_id, Ref< Bitmap > bitmap)=0
 Update an existing non-RTT texture with new bitmap data.
 
virtual void BindTexture (uint8_t texture_unit, uint32_t texture_id)=0
 Bind a texture to a certain texture unit.
 
virtual void DestroyTexture (uint32_t texture_id)=0
 Destroy a texture.
 
virtual uint32_t NextRenderBufferId ()=0
 Generate the next available render buffer ID.
 
virtual void CreateRenderBuffer (uint32_t render_buffer_id, const RenderBuffer &buffer)=0
 Create a render buffer with certain ID and buffer description.
 
virtual void BindRenderBuffer (uint32_t render_buffer_id)=0
 Bind a render buffer.
 
virtual void ClearRenderBuffer (uint32_t render_buffer_id)=0
 Clear a render buffer (flush pixels)
 
virtual void DestroyRenderBuffer (uint32_t render_buffer_id)=0
 Destroy a render buffer.
 
virtual uint32_t NextGeometryId ()=0
 Generate the next available geometry ID.
 
virtual void CreateGeometry (uint32_t geometry_id, const VertexBuffer &vertices, const IndexBuffer &indices)=0
 Create geometry with certain ID and vertex/index data.
 
virtual void UpdateGeometry (uint32_t geometry_id, const VertexBuffer &vertices, const IndexBuffer &indices)=0
 Update existing geometry with new vertex/index data.
 
virtual void DrawGeometry (uint32_t geometry_id, uint32_t indices_count, uint32_t indices_offset, const GPUState &state)=0
 Draw geometry using the specific index count/offset and GPUState.
 
virtual void DestroyGeometry (uint32_t geometry_id)=0
 Destroy geometry.
 
virtual void UpdateCommandList (const CommandList &list)=0
 Update command list (you should copy the commands to your own structure).
 
virtual bool HasCommandsPending ()=0
 Check if any commands need drawing.
 
virtual void DrawCommandList ()=0
 Iterate through stored command list and dispatch to ClearRenderBuffer or DrawGeometry, respectively. More...
 

Detailed Description

GPUDriver interface, dispatches GPU calls to the native driver.

By default, Ultralight uses an offscreen, OpenGL GPUDriver that draws each View to an offscreen Bitmap (

See also
View::bitmap). You can override this to provide your own GPUDriver and integrate directly with your own 3D engine.

This is intended to be implemented by users and defined before creating the Renderer.

See also
Platform::set_gpu_driver

Definition at line 166 of file GPUDriver.h.

Member Function Documentation

◆ CreateTexture()

virtual void ultralight::GPUDriver::CreateTexture ( uint32_t  texture_id,
Ref< Bitmap bitmap 
)
pure virtual

Create a texture with a certain ID and optional bitmap.

If the Bitmap is empty (Bitmap::IsEmpty), then a RTT Texture should be created instead.

◆ DrawCommandList()

virtual void ultralight::GPUDriver::DrawCommandList ( )
pure virtual

Iterate through stored command list and dispatch to ClearRenderBuffer or DrawGeometry, respectively.

Command list should be cleared at end of call.


The documentation for this class was generated from the following file: