|
Kemena3D
|
Pure-virtual graphics driver interface. More...
#include <kdriver.h>

Public Member Functions | |
| virtual | ~kDriver ()=default |
| virtual bool | init (kWindow *window)=0 |
| Initialises the graphics context for the given window. | |
| virtual void | destroy ()=0 |
| Destroys the graphics context and releases all driver resources. | |
| virtual void * | getNativeContext ()=0 |
| Returns the native context handle (e.g. SDL_GLContext for OpenGL). | |
| virtual kString | getApiVersion ()=0 |
| Returns a human-readable API version kString. | |
| virtual kString | getShaderVersion ()=0 |
| Returns the shading language version kString. | |
| virtual void | setClearColor (float r, float g, float b, float a)=0 |
| Sets the colour used by the next clear() call. | |
| virtual void | clear (bool color, bool depth, bool stencil)=0 |
| Clears the selected buffers of the currently-bound framebuffer. | |
| virtual void | setViewport (int x, int y, int width, int height)=0 |
| Sets the rendering viewport. | |
| virtual void | setDepthTest (bool enable)=0 |
| Enables or disables the depth test. | |
| virtual void | setDepthWrite (bool enable)=0 |
| Enables or disables writes to the depth buffer. | |
| virtual void | setBlend (bool enable)=0 |
| Enables or disables colour blending. | |
| virtual void | setBlendFunc (kBlendFactor src, kBlendFactor dst)=0 |
| Sets the blend equation source and destination factors. | |
| virtual void | setCullFace (bool enable)=0 |
| Enables or disables face culling. | |
| virtual void | setCullMode (kCullMode mode)=0 |
| Selects which polygon faces are culled when culling is enabled. | |
| virtual void | setFrontFace (kFrontFace face)=0 |
| Sets the winding order that defines the front face. | |
| virtual void | setMultisample (bool enable)=0 |
| Enables or disables multisampling (MSAA). | |
| virtual void | setSRGBEncoding (bool enable)=0 |
| Enables or disables sRGB framebuffer encoding. | |
| virtual void | setSampleAlphaToCoverage (bool enable)=0 |
| Enables or disables alpha-to-coverage (useful for MSAA foliage). | |
| virtual uint32_t | compileShaderProgram (const char *vertSrc, const char *fragSrc)=0 |
| Compiles and links a vertex + fragment shader pair from GLSL source. | |
| virtual uint32_t | compileShaderProgramSpirv (const std::vector< uint8_t > &vertSpirv, const kString &vertEntry, const std::vector< uint8_t > &fragSpirv, const kString &fragEntry)=0 |
| Compiles and links a vertex + fragment shader pair from SPIR-V binary. | |
| virtual void | deleteShaderProgram (uint32_t id)=0 |
| Destroys a previously-compiled shader program. | |
| virtual void | bindShaderProgram (uint32_t id)=0 |
| Binds a shader program for subsequent draw calls. | |
| virtual void | unbindShaderProgram ()=0 |
| Unbinds the current shader program. | |
| virtual void | setUniformBool (uint32_t progId, const kString &name, bool v)=0 |
| Sets a boolean uniform on the given program. | |
| virtual void | setUniformInt (uint32_t progId, const kString &name, int v)=0 |
| Sets an integer uniform on the given program. | |
| virtual void | setUniformUint (uint32_t progId, const kString &name, uint32_t v)=0 |
| Sets an unsigned-integer uniform on the given program. | |
| virtual void | setUniformFloat (uint32_t progId, const kString &name, float v)=0 |
| Sets a float uniform on the given program. | |
| virtual void | setUniformVec2 (uint32_t progId, const kString &name, const kVec2 &v)=0 |
| Sets a kVec2 uniform on the given program. | |
| virtual void | setUniformVec3 (uint32_t progId, const kString &name, const kVec3 &v)=0 |
| Sets a kVec3 uniform on the given program. | |
| virtual void | setUniformVec4 (uint32_t progId, const kString &name, const kVec4 &v)=0 |
| Sets a kVec4 uniform on the given program. | |
| virtual void | setUniformMat4 (uint32_t progId, const kString &name, const kMat4 &v)=0 |
| Sets a kMat4 uniform on the given program. | |
| virtual void | setUniformMat4Array (uint32_t progId, const kString &name, const std::vector< kMat4 > &v)=0 |
| Sets a kMat4 array uniform on the given program. | |
| virtual uint32_t | createVertexArray ()=0 |
| Creates and returns a new vertex array object (VAO). | |
| virtual void | deleteVertexArray (uint32_t id)=0 |
| Destroys the given VAO. | |
| virtual void | bindVertexArray (uint32_t id)=0 |
| Binds the given VAO as the active vertex array. | |
| virtual void | unbindVertexArray ()=0 |
| Unbinds the current vertex array. | |
| virtual uint32_t | createBuffer ()=0 |
| Creates and returns a new GPU buffer object. | |
| virtual void | deleteBuffer (uint32_t id)=0 |
| Destroys the given buffer. | |
| virtual void | uploadIndexBuffer (uint32_t bufferId, const void *data, size_t size)=0 |
| Uploads data to an index (element) buffer. | |
| virtual void | uploadVertexBuffer (uint32_t bufferId, const void *data, size_t size)=0 |
| Uploads data to a vertex buffer. | |
| virtual void | setVertexAttribFloat (int location, int components, int stride, size_t offset)=0 |
| Defines a float vertex attribute on the currently-bound VAO. | |
| virtual void | setVertexAttribInt (int location, int components, int stride, size_t offset)=0 |
| Defines an integer vertex attribute on the currently-bound VAO. | |
| virtual void | drawIndexed (uint32_t vaoId, int indexCount)=0 |
| Draws indexed triangles from the given VAO. | |
| virtual void | drawArrays (uint32_t vaoId, kPrimitiveType type, int vertexCount)=0 |
| Draws non-indexed primitives from the given VAO. | |
| virtual void | bindTexture2D (int unit, uint32_t id)=0 |
| Binds a 2D texture to the given texture unit. | |
| virtual void | bindTexture2DArray (int unit, uint32_t id)=0 |
| Binds a GL_TEXTURE_2D_ARRAY to a texture unit (e.g. CSM maps). | |
| virtual void | bindTextureCube (int unit, uint32_t id)=0 |
| Binds a cube-map texture to the given texture unit. | |
| virtual void | unbindTexture2D (int unit)=0 |
| Unbinds any 2D texture from the given unit. | |
| virtual void | unbindTexture2DArray (int unit)=0 |
| Unbinds any GL_TEXTURE_2D_ARRAY from a texture unit. | |
| virtual void | unbindTextureCube (int unit)=0 |
| Unbinds any cube-map texture from the given unit. | |
| virtual void | generateMipmaps2D (uint32_t id)=0 |
| Generates a full mipmap chain for the given 2D texture. | |
| virtual void | readTexture2DRGB (uint32_t id, int mipLevel, float *pixels)=0 |
| Reads one mip level of a 2D texture as 3-float-per-pixel RGB data. | |
| virtual void | readPixelsRGBA (int x, int y, uint8_t &r, uint8_t &g, uint8_t &b, uint8_t &a)=0 |
| Reads a single pixel from the currently-bound framebuffer. | |
| virtual uint32_t | createFramebuffer ()=0 |
| Creates and returns a new framebuffer object (FBO). | |
| virtual void | deleteFramebuffer (uint32_t id)=0 |
| Destroys the given FBO. | |
| virtual void | bindFramebuffer (uint32_t id)=0 |
| Binds an FBO as both read and draw framebuffer. | |
| virtual void | bindReadFramebuffer (uint32_t id)=0 |
| Binds an FBO as the read framebuffer only. | |
| virtual void | bindDrawFramebuffer (uint32_t id)=0 |
| Binds an FBO as the draw framebuffer only. | |
| virtual void | unbindFramebuffer ()=0 |
| Binds the default (window) framebuffer. | |
| virtual bool | isFramebufferComplete ()=0 |
| Checks whether the currently-bound FBO is complete. | |
| virtual void | blitFramebufferColor (int srcX0, int srcY0, int srcX1, int srcY1, int dstX0, int dstY0, int dstX1, int dstY1)=0 |
| Copies a colour region from the read FBO to the draw FBO. | |
| virtual void | setFramebufferDrawBuffer ()=0 |
| Sets the draw buffer of the current FBO to COLOR_ATTACHMENT0. | |
| virtual uint32_t | createRenderbuffer ()=0 |
| Creates and returns a new renderbuffer object (RBO). | |
| virtual void | deleteRenderbuffer (uint32_t id)=0 |
| Destroys the given RBO. | |
| virtual void | setupRenderbuffer (uint32_t rboId, int width, int height)=0 |
| Allocates single-sample depth+stencil storage for an RBO. | |
| virtual void | setupRenderbufferMSAA (uint32_t rboId, int samples, int width, int height)=0 |
| Allocates multi-sample depth+stencil storage for an RBO. | |
| virtual void | attachRenderbufferDepthStencil (uint32_t fboId, uint32_t rboId)=0 |
| Attaches an RBO to the depth+stencil attachment of an FBO. | |
| virtual uint32_t | createFBOColorTexture (int width, int height)=0 |
| Creates a single-sample colour texture suitable for FBO attachment. | |
| virtual uint32_t | createFBOColorTextureMSAA (int samples, int width, int height)=0 |
| Creates a multi-sample colour texture suitable for MSAA FBO attachment. | |
| virtual uint32_t | createFBODepthTexture (int width, int height)=0 |
| Creates a depth texture suitable for shadow-map FBO attachment. | |
| virtual uint32_t | createFBODepthTextureArray (int width, int height, int layers)=0 |
| Creates a layered depth texture (GL_TEXTURE_2D_ARRAY) for cascaded shadow maps — one layer per cascade. | |
| virtual void | deleteFBOTexture (uint32_t id)=0 |
| Destroys a texture created by createFBOColorTexture / createFBODepthTexture. | |
| virtual void | attachFBOColorTexture (uint32_t fboId, uint32_t texId)=0 |
| Attaches a colour texture to the colour attachment of an FBO. | |
| virtual void | attachFBOColorTextureMSAA (uint32_t fboId, uint32_t texId)=0 |
| Attaches a multi-sample colour texture to an MSAA FBO. | |
| virtual void | attachFBODepthTexture (uint32_t fboId, uint32_t texId)=0 |
| Attaches a depth texture to the depth attachment of an FBO. | |
| virtual void | attachFBODepthTextureLayer (uint32_t fboId, uint32_t texId, int layer)=0 |
| Attaches one layer of a depth texture array to an FBO's depth attachment (for rendering a single shadow cascade). | |
| virtual void | resizeFBOColorTexture (uint32_t texId, int width, int height)=0 |
| Re-allocates a colour texture with a new size (for FBO resize). | |
| virtual void | resizeFBOColorTextureMSAA (uint32_t texId, int samples, int width, int height)=0 |
| Re-allocates an MSAA colour texture with a new size. | |
Static Public Member Functions | |
| static kDriver * | getCurrent () |
| Returns the currently active driver (set via setCurrent()). | |
| static void | setCurrent (kDriver *driver) |
| Sets the globally active driver. | |
Pure-virtual graphics driver interface.
Concrete implementations (e.g. kOpenGLDriver) must override every method. Obtain the currently-active driver via kDriver::getCurrent().
|
virtualdefault |
|
pure virtual |
Attaches a colour texture to the colour attachment of an FBO.
| fboId | FBO handle. |
| texId | Texture handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Attaches a multi-sample colour texture to an MSAA FBO.
| fboId | FBO handle. |
| texId | MSAA texture handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Attaches a depth texture to the depth attachment of an FBO.
Also sets draw/read buffers to GL_NONE, making the FBO suitable for shadow-map rendering.
| fboId | FBO handle. |
| texId | Depth texture handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Attaches one layer of a depth texture array to an FBO's depth attachment (for rendering a single shadow cascade).
| fboId | FBO handle. |
| texId | Depth texture-array handle. |
| layer | Array layer (cascade index) to render into. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Attaches an RBO to the depth+stencil attachment of an FBO.
| fboId | FBO handle. |
| rboId | RBO handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds an FBO as the draw framebuffer only.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds an FBO as both read and draw framebuffer.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds an FBO as the read framebuffer only.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds a shader program for subsequent draw calls.
| id | Program handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds a 2D texture to the given texture unit.
| unit | Texture unit index (0-based). |
| id | Texture handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds a GL_TEXTURE_2D_ARRAY to a texture unit (e.g. CSM maps).
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds a cube-map texture to the given texture unit.
| unit | Texture unit index. |
| id | Texture handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds the given VAO as the active vertex array.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Copies a colour region from the read FBO to the draw FBO.
| srcX0,srcY0 | Source region bottom-left. |
| srcX1,srcY1 | Source region top-right. |
| dstX0,dstY0 | Destination region bottom-left. |
| dstX1,dstY1 | Destination region top-right. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Clears the selected buffers of the currently-bound framebuffer.
| color | Clear the colour attachment. |
| depth | Clear the depth attachment. |
| stencil | Clear the stencil attachment. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Compiles and links a vertex + fragment shader pair from GLSL source.
| vertSrc | GLSL vertex shader source kString, or nullptr to skip. |
| fragSrc | GLSL fragment shader source kString, or nullptr to skip. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Compiles and links a vertex + fragment shader pair from SPIR-V binary.
Requires OpenGL 4.6 or the GL_ARB_gl_spirv extension.
| vertSpirv | SPIR-V binary for the vertex stage. |
| vertEntry | Entry-point name inside the vertex SPIR-V module. |
| fragSpirv | SPIR-V binary for the fragment stage. |
| fragEntry | Entry-point name inside the fragment SPIR-V module. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates and returns a new GPU buffer object.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates a single-sample colour texture suitable for FBO attachment.
| width | Texture width in pixels. |
| height | Texture height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates a multi-sample colour texture suitable for MSAA FBO attachment.
| samples | Sample count. |
| width | Texture width in pixels. |
| height | Texture height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates a depth texture suitable for shadow-map FBO attachment.
| width | Texture width in pixels. |
| height | Texture height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates a layered depth texture (GL_TEXTURE_2D_ARRAY) for cascaded shadow maps — one layer per cascade.
| width | Per-layer width in pixels. |
| height | Per-layer height in pixels. |
| layers | Number of array layers (cascades). |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates and returns a new framebuffer object (FBO).
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates and returns a new renderbuffer object (RBO).
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Creates and returns a new vertex array object (VAO).
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Destroys the given buffer.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Destroys a texture created by createFBOColorTexture / createFBODepthTexture.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Destroys the given FBO.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Destroys the given RBO.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Destroys a previously-compiled shader program.
| id | Program handle returned by compileShaderProgram(). |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Destroys the given VAO.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Destroys the graphics context and releases all driver resources.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Draws non-indexed primitives from the given VAO.
| vaoId | VAO handle. |
| type | Primitive topology. |
| vertexCount | Number of vertices to draw. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Draws indexed triangles from the given VAO.
| vaoId | VAO handle. |
| indexCount | Number of indices to draw. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Generates a full mipmap chain for the given 2D texture.
| id | Texture handle. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Returns a human-readable API version kString.
Implemented in kemena::kOpenGLDriver.
|
inlinestatic |
Returns the currently active driver (set via setCurrent()).
|
pure virtual |
Returns the native context handle (e.g. SDL_GLContext for OpenGL).
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Returns the shading language version kString.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Initialises the graphics context for the given window.
| window | Target window; must not be nullptr for GL backends. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Checks whether the currently-bound FBO is complete.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Reads a single pixel from the currently-bound framebuffer.
Uses the bottom-left origin convention (OpenGL standard). Primarily used for color-ID object picking.
| x | Pixel x coordinate from the left edge. |
| y | Pixel y coordinate from the bottom edge. |
| r | Output red channel [0, 255]. |
| g | Output green channel [0, 255]. |
| b | Output blue channel [0, 255]. |
| a | Output alpha channel [0, 255]. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Reads one mip level of a 2D texture as 3-float-per-pixel RGB data.
Primarily used for auto-exposure luminance sampling.
| id | Texture handle. |
| mipLevel | Mip level to read. |
| pixels | Destination buffer; must be large enough for the mip's texels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Re-allocates a colour texture with a new size (for FBO resize).
| texId | Texture handle. |
| width | New width in pixels. |
| height | New height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Re-allocates an MSAA colour texture with a new size.
| texId | Texture handle. |
| samples | Sample count. |
| width | New width in pixels. |
| height | New height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Enables or disables colour blending.
| enable | true to enable. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets the blend equation source and destination factors.
| src | Source factor. |
| dst | Destination factor. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets the colour used by the next clear() call.
| r | Red [0, 1]. |
| g | Green [0, 1]. |
| b | Blue [0, 1]. |
| a | Alpha [0, 1]. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Enables or disables face culling.
| enable | true to enable. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Selects which polygon faces are culled when culling is enabled.
| mode | Cull mode. |
Implemented in kemena::kOpenGLDriver.
|
inlinestatic |
Sets the globally active driver.
| driver | Driver to make current. |
|
pure virtual |
Enables or disables the depth test.
| enable | true to enable. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Enables or disables writes to the depth buffer.
| enable | true to allow writes. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets the draw buffer of the current FBO to COLOR_ATTACHMENT0.
Required after attaching colour textures to ensure correct rendering.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets the winding order that defines the front face.
| face | Front-face winding. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Enables or disables multisampling (MSAA).
| enable | true to enable. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Enables or disables alpha-to-coverage (useful for MSAA foliage).
| enable | true to enable. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Enables or disables sRGB framebuffer encoding.
| enable | true to write in sRGB; false for linear output. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets a boolean uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets a float uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets an integer uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets a kMat4 uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets a kMat4 array uniform on the given program.
| progId | Program handle. |
| name | Uniform array name. |
| v | Array of kMat4 values. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets an unsigned-integer uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets a kVec2 uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets a kVec3 uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets a kVec4 uniform on the given program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Allocates single-sample depth+stencil storage for an RBO.
| rboId | Target RBO handle. |
| width | Storage width in pixels. |
| height | Storage height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Allocates multi-sample depth+stencil storage for an RBO.
| rboId | Target RBO handle. |
| samples | MSAA sample count. |
| width | Storage width in pixels. |
| height | Storage height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Defines a float vertex attribute on the currently-bound VAO.
Also enables the attribute array at location.
| location | Shader attribute location. |
| components | Number of float components (1–4). |
| stride | Byte distance between consecutive elements. |
| offset | Byte offset of the first element within the buffer. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Defines an integer vertex attribute on the currently-bound VAO.
Uses the integer variant (glVertexAttribIPointer). Also enables the attribute array at location.
| location | Shader attribute location. |
| components | Number of integer components (1–4). |
| stride | Byte distance between consecutive elements. |
| offset | Byte offset of the first element within the buffer. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Sets the rendering viewport.
| x | Left edge in pixels. |
| y | Bottom edge in pixels (OpenGL convention). |
| width | Viewport width in pixels. |
| height | Viewport height in pixels. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Binds the default (window) framebuffer.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Unbinds the current shader program.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Unbinds any 2D texture from the given unit.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Unbinds any GL_TEXTURE_2D_ARRAY from a texture unit.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Unbinds any cube-map texture from the given unit.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Unbinds the current vertex array.
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Uploads data to an index (element) buffer.
| bufferId | Target buffer handle. |
| data | Pointer to index data. |
| size | Size of the data in bytes. |
Implemented in kemena::kOpenGLDriver.
|
pure virtual |
Uploads data to a vertex buffer.
| bufferId | Target buffer handle. |
| data | Pointer to vertex data. |
| size | Size of the data in bytes. |
Implemented in kemena::kOpenGLDriver.