Platform specific native graphics functions.
Namespace: | dmGraphics |
Include: | #include <dmsdk/graphics/graphics_native.h> |
TYPES | |
---|---|
HContext | Context handle |
HTexture | Texture handle |
HRenderTarget | Rendertarget handle |
HVertexProgram | Vertex program handle |
HFragmentProgram | Fragment program handle |
HProgram | Program handle |
HVertexBuffer | Vertex buffer handle |
HIndexBuffer | Index buffer handle |
HVertexDeclaration | Vertex declaration handle |
HVertexStreamDeclaration | Vertex stream declaration handle |
ENUMS | |
---|---|
HandleResult | |
RenderTargetAttachment | |
TextureFormat | |
CompareFunc | |
FaceWinding | |
StencilOp | |
BufferUsage | |
BufferAccess | |
IndexBufferFormat | |
PrimitiveType | Primitive type |
Type | Data type |
BlendFactor | Blend factor |
dmGraphics::HVertexStreamDeclaration NewVertexStreamDeclaration(dmGraphics::HContext context)
Create new vertex stream declaration. A stream declaration contains a list of vertex streams that should be used to create a vertex declaration from.
PARAMETERS
dmGraphics::HContext |
context |
the context |
RETURNS
dmGraphics::HVertexStreamDeclaration |
the vertex declaration |
void AddVertexStream(dmGraphics::HContext context, const char* name, uint32_t size, dmGraphics::Type type, bool normalize)
Adds a stream to a stream declaration
PARAMETERS
dmGraphics::HContext |
context |
the context |
const char* |
name |
the name of the stream |
uint32_t |
size |
the size of the stream, i.e number of components |
dmGraphics::Type |
type |
the data type of the stream |
bool |
normalize |
true if the stream should be normalized in the 0..1 range |
void AddVertexStream(dmGraphics::HContext context, uint64_t name_hash, uint32_t size, dmGraphics::Type type, bool normalize)
Adds a stream to a stream declaration
PARAMETERS
dmGraphics::HContext |
context |
the context |
uint64_t |
name_hash |
the name hash of the stream |
uint32_t |
size |
the size of the stream, i.e number of components |
dmGraphics::Type |
type |
the data type of the stream |
bool |
normalize |
true if the stream should be normalized in the 0..1 range |
void DeleteVertexStreamDeclaration(dmGraphics::HVertexStreamDeclaration stream_declaration)
Delete vertex stream declaration
PARAMETERS
dmGraphics::HVertexStreamDeclaration |
stream_declaration |
the vertex stream declaration |
dmGraphics::HVertexDeclaration NewVertexDeclaration(dmGraphics::HContext context, dmGraphics::HVertexStreamDeclaration stream_declaration)
Create new vertex declaration from a vertex stream declaration
PARAMETERS
dmGraphics::HContext |
context |
the context |
dmGraphics::HVertexStreamDeclaration |
stream_declaration |
the vertex stream declaration |
RETURNS
dmGraphics::HVertexDeclaration |
the vertex declaration |
dmGraphics::HVertexDeclaration NewVertexDeclaration(dmGraphics::HContext context, dmGraphics::HVertexStreamDeclaration stream_declaration, uint32_t stride)
Create new vertex declaration from a vertex stream declaration and an explicit stride value, where the stride is the number of bytes between each consecutive vertex in a vertex buffer
PARAMETERS
dmGraphics::HContext |
context |
the context |
dmGraphics::HVertexStreamDeclaration |
stream_declaration |
the vertex stream declaration |
uint32_t |
stride |
the stride between the start of each vertex (in bytes) |
RETURNS
dmGraphics::HVertexDeclaration |
the vertex declaration |
void DeleteVertexDeclaration(dmGraphics::HVertexDeclaration vertex_declaration)
Delete vertex declaration
PARAMETERS
dmGraphics::HVertexDeclaration |
vertex_declaration |
the vertex declaration |
dmGraphics::HVertexBuffer NewVertexBuffer(dmGraphics::HContext context, uint32_t size, void* data, dmGraphics::BufferUsage buffer_usage)
Create new vertex buffer with initial data
PARAMETERS
dmGraphics::HContext |
context |
the context |
uint32_t |
size |
the size of the buffer (in bytes). May be 0 |
void* |
data |
the data |
dmGraphics::BufferUsage |
buffer_usage |
the usage |
RETURNS
dmGraphics::HVertexBuffer |
the vertex buffer |
void DeleteVertexBuffer(dmGraphics::HVertexBuffer buffer)
Delete vertex buffer
PARAMETERS
dmGraphics::HVertexBuffer |
buffer |
the buffer |
void SetVertexBufferData(dmGraphics::HVertexBuffer buffer, uint32_t size, void* data, dmGraphics::BufferUsage buffer_usage)
Set vertex buffer data
PARAMETERS
dmGraphics::HVertexBuffer |
buffer |
the buffer |
uint32_t |
size |
the size of the buffer (in bytes). May be 0 |
void* |
data |
the data |
dmGraphics::BufferUsage |
buffer_usage |
the usage |
void SetVertexBufferSubData(dmGraphics::HVertexBuffer buffer, uint32_t offset, uint32_t size, void* data)
Set subset of vertex buffer data
PARAMETERS
dmGraphics::HVertexBuffer |
buffer |
the buffer |
uint32_t |
offset |
the offset into the desination buffer (in bytes) |
uint32_t |
size |
the size of the buffer (in bytes). May be 0 |
void* |
data |
the data |
uint32_t GetMaxElementsVertices(dmGraphics::HContext context)
Get the max number of vertices allowed by the system in a vertex buffer
PARAMETERS
dmGraphics::HContext |
context |
the context |
RETURNS
uint32_t |
the count |
dmGraphics::HIndexBuffer NewIndexBuffer(dmGraphics::HContext context, uint32_t size, void* data, dmGraphics::BufferUsage buffer_usage)
Create new index buffer with initial data
PARAMETERS
dmGraphics::HContext |
context |
the context |
uint32_t |
size |
the size of the buffer (in bytes). May be 0 |
void* |
data |
the data |
dmGraphics::BufferUsage |
buffer_usage |
the usage |
RETURNS
dmGraphics::HIndexBuffer |
the index buffer |
void DeleteIndexBuffer(dmGraphics::HIndexBuffer buffer)
Delete the index buffer
PARAMETERS
dmGraphics::HIndexBuffer |
buffer |
the index buffer |
void SetIndexBufferData(dmGraphics::HIndexBuffer buffer, uint32_t size, void* data, dmGraphics::BufferUsage buffer_usage)
Set index buffer data
PARAMETERS
dmGraphics::HIndexBuffer |
buffer |
the buffer |
uint32_t |
size |
the size of the buffer (in bytes). May be 0 |
void* |
data |
the data |
dmGraphics::BufferUsage |
buffer_usage |
the usage |
void SetIndexBufferSubData(dmGraphics::HVertexBuffer buffer, uint32_t offset, uint32_t size, void* data)
Set subset of index buffer data
PARAMETERS
dmGraphics::HVertexBuffer |
buffer |
the buffer |
uint32_t |
offset |
the offset into the desination buffer (in bytes) |
uint32_t |
size |
the size of the buffer (in bytes). May be 0 |
void* |
data |
the data |
void IsIndexBufferFormatSupported(dmGraphics::HContext context, dmGraphics::IndexBufferFormat format, bool result)
Check if the index format is supported
PARAMETERS
dmGraphics::HContext |
context |
the context |
dmGraphics::IndexBufferFormat |
format |
the format |
bool |
result |
true if the format is supoprted |
uint32_t GetMaxElementsIndices(dmGraphics::HContext context)
Get the max number of indices allowed by the system in an index buffer
PARAMETERS
dmGraphics::HContext |
context |
the context |
RETURNS
uint32_t |
the count |
bool IsExtensionSupported(dmGraphics::HContext context, const char* extension)
check if an extension is supported
PARAMETERS
dmGraphics::HContext |
context |
the context |
const char* |
extension |
the extension. |
RETURNS
bool |
true if the extension was supported |
bool IsTextureFormatSupported(dmGraphics::HContext context, TextureFormat format)
check if a specific texture format is supported
PARAMETERS
dmGraphics::HContext |
context |
the context |
TextureFormat |
format |
the texture format. |
RETURNS
bool |
true if the texture format was supported |
uint32_t GetNumSupportedExtensions(dmGraphics::HContext context)
PARAMETERS
dmGraphics::HContext |
context |
the context |
RETURNS
uint32_t |
the number of supported extensions |
const char* GetSupportedExtension(dmGraphics::HContext context, uint32_t index)
get the supported extension
PARAMETERS
dmGraphics::HContext |
context |
the context |
uint32_t |
index |
the index of the extension |
RETURNS
const char* |
the extension. 0 if index was out of bounds |
id dmGraphics::GetNativeiOSUIWindow()
Get iOS UIWindow native handle (id). Any other platform return zero.
PARAMETERS
RETURNS
id |
native handle |
id dmGraphics::GetNativeiOSUIView()
Get iOS UIView native handle (id). Any other platform return zero.
PARAMETERS
RETURNS
id |
native handle |
id dmGraphics::GetNativeiOSEAGLContext()
Get iOS EAGLContext native handle (id). Any other platform return zero.
PARAMETERS
RETURNS
id |
native handle |
id dmGraphics::GetNativeOSXNSWindow()
Get OSX NSWindow native handle (id). Any other platform return zero.
PARAMETERS
RETURNS
id |
native handle |
id dmGraphics::GetNativeOSXNSView()
Get OSX NSView native handle (id). Any other platform return zero.
PARAMETERS
RETURNS
id |
native handle |
id dmGraphics::GetNativeOSXNSOpenGLContext()
Get OSX NSOpenGLContext native handle (id). Any other platform return zero.
PARAMETERS
RETURNS
id |
native handle |
HWND dmGraphics::GetNativeWindowsHWND()
Get Win32 windows native handle (HWND). Any other platform return zero.
PARAMETERS
RETURNS
HWND |
native handle |
HGLRC dmGraphics::GetNativeWindowsHGLRC()
Get Win32 gl rendercontext native handle (HGLRC). Any other platform return zero.
PARAMETERS
RETURNS
HGLRC |
native handle |
EGLContext dmGraphics::GetNativeAndroidEGLContext()
Get Android EGLContext native handle (EGLContext). Any other platform return zero.
PARAMETERS
RETURNS
EGLContext |
native handle |
EGLSurface dmGraphics::GetNativeAndroidEGLSurface()
Get Android EGLSurface native handle (EGLSurface). Any other platform return zero.
PARAMETERS
RETURNS
EGLSurface |
native handle |
JavaVM* dmGraphics::GetNativeAndroidJavaVM()
Get Android JavaVM ptr. Any other platform return zero.
PARAMETERS
RETURNS
JavaVM* |
native handle |
jobject dmGraphics::GetNativeAndroidActivity()
Get Android native jobject. Any other platform return zero.
PARAMETERS
RETURNS
jobject |
native handle |
struct android_app* dmGraphics::GetNativeAndroidApp()
Get Android app object. Any other platform return zero.
PARAMETERS
RETURNS
struct android_app* |
native handle |
Window dmGraphics::GetNativeX11Window()
Get Linux X11Window windows native handle (Window). Any other platform return zero.
PARAMETERS
RETURNS
Window |
native handle |
GLXContext dmGraphics::GetNativeX11GLXContext()
Get Linux X11GLXContext native handle (GLXContext). Any other platform return zero.
PARAMETERS
RETURNS
GLXContext |
native handle |
Context handle
Texture handle
Rendertarget handle
Vertex program handle
Fragment program handle
Program handle
Vertex buffer handle
Index buffer handle
Vertex declaration handle
Vertex stream declaration handle
HANDLE_RESULT_OK |
|
HANDLE_RESULT_NOT_AVAILABLE |
|
HANDLE_RESULT_ERROR |
ATTACHMENT_COLOR |
|
ATTACHMENT_DEPTH |
|
ATTACHMENT_STENCIL |
|
MAX_ATTACHMENT_COUNT |
TEXTURE_FORMAT_LUMINANCE |
|
TEXTURE_FORMAT_LUMINANCE_ALPHA |
|
TEXTURE_FORMAT_RGB |
|
TEXTURE_FORMAT_RGBA |
|
TEXTURE_FORMAT_RGB_16BPP |
|
TEXTURE_FORMAT_RGBA_16BPP |
|
TEXTURE_FORMAT_DEPTH |
|
TEXTURE_FORMAT_STENCIL |
|
TEXTURE_FORMAT_RGB_PVRTC_2BPPV1 |
|
TEXTURE_FORMAT_RGB_PVRTC_4BPPV1 |
|
TEXTURE_FORMAT_RGBA_PVRTC_2BPPV1 |
|
TEXTURE_FORMAT_RGBA_PVRTC_4BPPV1 |
|
TEXTURE_FORMAT_RGB_ETC1 |
|
TEXTURE_FORMAT_R_ETC2 |
|
TEXTURE_FORMAT_RG_ETC2 |
|
TEXTURE_FORMAT_RGBA_ETC2 |
|
TEXTURE_FORMAT_RGBA_ASTC_4x4 |
|
TEXTURE_FORMAT_RGB_BC1 |
|
TEXTURE_FORMAT_RGBA_BC3 |
|
TEXTURE_FORMAT_R_BC4 |
|
TEXTURE_FORMAT_RG_BC5 |
|
TEXTURE_FORMAT_RGBA_BC7 |
|
TEXTURE_FORMAT_RGB16F |
|
TEXTURE_FORMAT_RGB32F |
|
TEXTURE_FORMAT_RGBA16F |
|
TEXTURE_FORMAT_RGBA32F |
|
TEXTURE_FORMAT_R16F |
|
TEXTURE_FORMAT_RG16F |
|
TEXTURE_FORMAT_R32F |
|
TEXTURE_FORMAT_RG32F |
|
TEXTURE_FORMAT_COUNT |
COMPARE_FUNC_NEVER |
|
COMPARE_FUNC_LESS |
|
COMPARE_FUNC_LEQUAL |
|
COMPARE_FUNC_GREATER |
|
COMPARE_FUNC_GEQUAL |
|
COMPARE_FUNC_EQUAL |
|
COMPARE_FUNC_NOTEQUAL |
|
COMPARE_FUNC_ALWAYS |
FACE_WINDING_CCW |
|
FACE_WINDING_CW |
STENCIL_OP_KEEP |
|
STENCIL_OP_ZERO |
|
STENCIL_OP_REPLACE |
|
STENCIL_OP_INCR |
|
STENCIL_OP_INCR_WRAP |
|
STENCIL_OP_DECR |
|
STENCIL_OP_DECR_WRAP |
|
STENCIL_OP_INVERT |
BUFFER_USAGE_STREAM_DRAW |
|
BUFFER_USAGE_DYNAMIC_DRAW |
|
BUFFER_USAGE_STATIC_DRAW |
|
BUFFER_ACCESS_READ_ONLY |
|
BUFFER_ACCESS_WRITE_ONLY |
|
BUFFER_ACCESS_READ_WRITE |
INDEXBUFFER_FORMAT_16 |
|
INDEXBUFFER_FORMAT_32 |
Primitive type
PRIMITIVE_LINES |
|
PRIMITIVE_TRIANGLES |
|
PRIMITIVE_TRIANGLE_STRIP |
Data type
TYPE_BYTE |
|
TYPE_UNSIGNED_BYTE |
|
TYPE_SHORT |
|
TYPE_UNSIGNED_SHORT |
|
TYPE_INT |
|
TYPE_UNSIGNED_INT |
|
TYPE_FLOAT |
|
TYPE_FLOAT_VEC4 |
|
TYPE_FLOAT_MAT4 |
|
TYPE_SAMPLER_2D |
|
TYPE_SAMPLER_CUBE |
|
TYPE_SAMPLER_2D_ARRAY |
|
TYPE_FLOAT_VEC2 |
|
TYPE_FLOAT_VEC3 |
|
TYPE_FLOAT_MAT2 |
|
TYPE_FLOAT_MAT3 |
Blend factor
BLEND_FACTOR_ZERO |
|
BLEND_FACTOR_ONE |
|
BLEND_FACTOR_SRC_COLOR |
|
BLEND_FACTOR_ONE_MINUS_SRC_COLOR |
|
BLEND_FACTOR_DST_COLOR |
|
BLEND_FACTOR_ONE_MINUS_DST_COLOR |
|
BLEND_FACTOR_SRC_ALPHA |
|
BLEND_FACTOR_ONE_MINUS_SRC_ALPHA |
|
BLEND_FACTOR_DST_ALPHA |
|
BLEND_FACTOR_ONE_MINUS_DST_ALPHA |
|
BLEND_FACTOR_SRC_ALPHA_SATURATE |
|
BLEND_FACTOR_CONSTANT_COLOR |
|
BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR |
|
BLEND_FACTOR_CONSTANT_ALPHA |
|
BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA |