Show More
Commit Description:
Dialog tweaks and update swear list....
Commit Description:
Dialog tweaks and update swear list.
Keep the list of swears to censor up to date, lol.
References:
File last commit:
Show/Diff file:
Action:
FNA/lib/FNA3D/src/FNA3D_Driver_template.txt
908 lines | 18.8 KiB | text/plain | TextLexer
908 lines | 18.8 KiB | text/plain | TextLexer
r690 | /* FNA3D - 3D Graphics Library for FNA | |||
* | ||||
* Copyright (c) 2020-2022 Ethan Lee | ||||
* | ||||
* This software is provided 'as-is', without any express or implied warranty. | ||||
* In no event will the authors be held liable for any damages arising from | ||||
* the use of this software. | ||||
* | ||||
* Permission is granted to anyone to use this software for any purpose, | ||||
* including commercial applications, and to alter it and redistribute it | ||||
* freely, subject to the following restrictions: | ||||
* | ||||
* 1. The origin of this software must not be misrepresented; you must not | ||||
* claim that you wrote the original software. If you use this software in a | ||||
* product, an acknowledgment in the product documentation would be | ||||
* appreciated but is not required. | ||||
* | ||||
* 2. Altered source versions must be plainly marked as such, and must not be | ||||
* misrepresented as being the original software. | ||||
* | ||||
* 3. This notice may not be removed or altered from any source distribution. | ||||
* | ||||
* Ethan "flibitijibibo" Lee <flibitijibibo@flibitijibibo.com> | ||||
* | ||||
*/ | ||||
#if FNA3D_DRIVER_TEMPLATE | ||||
#include "FNA3D_Driver.h" | ||||
#include <SDL.h> | ||||
/* Internal Structures */ | ||||
typedef struct TemplateTexture /* Cast FNA3D_Texture* to this! */ | ||||
{ | ||||
uint8_t filler; | ||||
} TemplateTexture; | ||||
typedef struct TemplateRenderbuffer /* Cast FNA3D_Renderbuffer* to this! */ | ||||
{ | ||||
uint8_t filler; | ||||
} TemplateRenderbuffer; | ||||
typedef struct TemplateBuffer /* Cast FNA3D_Buffer* to this! */ | ||||
{ | ||||
intptr_t size; | ||||
} TemplateBuffer; | ||||
typedef struct TemplateEffect /* Cast FNA3D_Effect* to this! */ | ||||
{ | ||||
MOJOSHADER_effect *effect; | ||||
} TemplateEffect; | ||||
typedef struct TemplateQuery /* Cast FNA3D_Query* to this! */ | ||||
{ | ||||
uint8_t filler; | ||||
} TemplateQuery; | ||||
typedef struct TemplateRenderer /* Cast FNA3D_Renderer* to this! */ | ||||
{ | ||||
uint8_t filler; | ||||
} TemplateRenderer; | ||||
/* XNA->Template Translation Arrays */ | ||||
static TEMPLATE_SURFACE_FORMAT_TYPE XNAToTMP_TextureFormat[] = | ||||
{ | ||||
0, /* SurfaceFormat.Color */ | ||||
0, /* SurfaceFormat.Bgr565 */ | ||||
0, /* SurfaceFormat.Bgra5551 */ | ||||
0, /* SurfaceFormat.Bgra4444 */ | ||||
0, /* SurfaceFormat.Dxt1 */ | ||||
0, /* SurfaceFormat.Dxt3 */ | ||||
0, /* SurfaceFormat.Dxt5 */ | ||||
0, /* SurfaceFormat.NormalizedByte2 */ | ||||
0, /* SurfaceFormat.NormalizedByte4 */ | ||||
0, /* SurfaceFormat.Rgba1010102 */ | ||||
0, /* SurfaceFormat.Rg32 */ | ||||
0, /* SurfaceFormat.Rgba64 */ | ||||
0, /* SurfaceFormat.Alpha8 */ | ||||
0, /* SurfaceFormat.Single */ | ||||
0, /* SurfaceFormat.Vector2 */ | ||||
0, /* SurfaceFormat.Vector4 */ | ||||
0, /* SurfaceFormat.HalfSingle */ | ||||
0, /* SurfaceFormat.HalfVector2 */ | ||||
0, /* SurfaceFormat.HalfVector4 */ | ||||
0, /* SurfaceFormat.HdrBlendable */ | ||||
0, /* SurfaceFormat.ColorBgraEXT */ | ||||
0, /* SurfaceFormat.ColorSrgbEXT */ | ||||
0, /* SurfaceFormat.Dxt5SrgbEXT */ | ||||
0, /* SurfaceFormat.Bc7EXT */ | ||||
0, /* SurfaceFormat.Bc7SrgbEXT */ | ||||
}; | ||||
static TEMPLATE_DEPTH_FORMAT_TYPE XNAToTMP_DepthFormat[] = | ||||
{ | ||||
0, /* DepthFormat.None */ | ||||
0, /* DepthFormat.Depth16 */ | ||||
0, /* DepthFormat.Depth24 */ | ||||
0 /* DepthFormat.Depth24Stencil8 */ | ||||
}; | ||||
static TEMPLATE_VERTEX_FORMAT_TYPE XNAToTMP_VertexAttribType[] = | ||||
{ | ||||
0, /* VertexElementFormat.Single */ | ||||
0, /* VertexElementFormat.Vector2 */ | ||||
0, /* VertexElementFormat.Vector3 */ | ||||
0, /* VertexElementFormat.Vector4 */ | ||||
0, /* VertexElementFormat.Color */ | ||||
0, /* VertexElementFormat.Byte4 */ | ||||
0, /* VertexElementFormat.Short2 */ | ||||
0, /* VertexElementFormat.Short4 */ | ||||
0, /* VertexElementFormat.NormalizedShort2 */ | ||||
0, /* VertexElementFormat.NormalizedShort4 */ | ||||
0, /* VertexElementFormat.HalfVector2 */ | ||||
0 /* VertexElementFormat.HalfVector4 */ | ||||
}; | ||||
static TEMPLATE_INDEX_TYPE XNAToTMP_IndexType[] = | ||||
{ | ||||
0, /* IndexElementSize.SixteenBits */ | ||||
0 /* IndexElementSize.ThirtyTwoBits */ | ||||
}; | ||||
static TEMPLATE_BLEND_MODE_TYPE XNAToTMP_BlendMode[] = | ||||
{ | ||||
0, /* Blend.One */ | ||||
0, /* Blend.Zero */ | ||||
0, /* Blend.SourceColor */ | ||||
0, /* Blend.InverseSourceColor */ | ||||
0, /* Blend.SourceAlpha */ | ||||
0, /* Blend.InverseSourceAlpha */ | ||||
0, /* Blend.DestinationColor */ | ||||
0, /* Blend.InverseDestinationColor */ | ||||
0, /* Blend.DestinationAlpha */ | ||||
0, /* Blend.InverseDestinationAlpha */ | ||||
0, /* Blend.BlendFactor */ | ||||
0, /* Blend.InverseBlendFactor */ | ||||
0 /* Blend.SourceAlphaSaturation */ | ||||
}; | ||||
static TEMPLATE_BLEND_OPERATION_TYPE XNAToTMP_BlendOperation[] = | ||||
{ | ||||
0, /* BlendFunction.Add */ | ||||
0, /* BlendFunction.Subtract */ | ||||
0, /* BlendFunction.ReverseSubtract */ | ||||
0, /* BlendFunction.Max */ | ||||
0 /* BlendFunction.Min */ | ||||
}; | ||||
static TEMPLATE_COMPARE_FUNCTION_TYPE XNAToTMP_CompareFunc[] = | ||||
{ | ||||
0, /* CompareFunction.Always */ | ||||
0, /* CompareFunction.Never */ | ||||
0, /* CompareFunction.Less */ | ||||
0, /* CompareFunction.LessEqual */ | ||||
0, /* CompareFunction.Equal */ | ||||
0, /* CompareFunction.GreaterEqual */ | ||||
0, /* CompareFunction.Greater */ | ||||
0 /* CompareFunction.NotEqual */ | ||||
}; | ||||
static TEMPLATE_STENCIL_OPERATION_TYPE XNAToTMP_StencilOp[] = | ||||
{ | ||||
0, /* StencilOperation.Keep */ | ||||
0, /* StencilOperation.Zero */ | ||||
0, /* StencilOperation.Replace */ | ||||
0, /* StencilOperation.Increment */ | ||||
0, /* StencilOperation.Decrement */ | ||||
0, /* StencilOperation.IncrementSaturation */ | ||||
0, /* StencilOperation.DecrementSaturation */ | ||||
0 /* StencilOperation.Invert */ | ||||
}; | ||||
static TEMPLATE_FILL_MODE_TYPE XNAToTMP_FillMode[] = | ||||
{ | ||||
0, /* FillMode.Solid */ | ||||
0, /* FillMode.WireFrame */ | ||||
}; | ||||
static float XNAToTMP_DepthBiasScale[] = | ||||
{ | ||||
0.0f, /* DepthFormat.None */ | ||||
(float) ((1 << 16) - 1), /* DepthFormat.Depth16 */ | ||||
(float) ((1 << 24) - 1), /* DepthFormat.Depth24 */ | ||||
(float) ((1 << 24) - 1) /* DepthFormat.Depth24Stencil8 */ | ||||
}; | ||||
static TEMPLATE_CULL_MODE_TYPE XNAToTMP_CullingEnabled[] = | ||||
{ | ||||
0, /* CullMode.None */ | ||||
0, /* CullMode.CullClockwiseFace */ | ||||
0 /* CullMode.CullCounterClockwiseFace */ | ||||
}; | ||||
static TEMPLATE_TEXTURE_ADDRESS_MODE_TYPE XNAToTMP_Wrap[] = | ||||
{ | ||||
0, /* TextureAddressMode.Wrap */ | ||||
0, /* TextureAddressMode.Clamp */ | ||||
0 /* TextureAddressMode.Mirror */ | ||||
}; | ||||
static TEMPLATE_TEXTURE_FILTER_TYPE XNAToTMP_MagFilter[] = | ||||
{ | ||||
0, /* TextureFilter.Linear */ | ||||
0, /* TextureFilter.Point */ | ||||
0, /* TextureFilter.Anisotropic */ | ||||
0, /* TextureFilter.LinearMipPoint */ | ||||
0, /* TextureFilter.PointMipLinear */ | ||||
0, /* TextureFilter.MinLinearMagPointMipLinear */ | ||||
0, /* TextureFilter.MinLinearMagPointMipPoint */ | ||||
0, /* TextureFilter.MinPointMagLinearMipLinear */ | ||||
0 /* TextureFilter.MinPointMagLinearMipPoint */ | ||||
}; | ||||
static TEMPLATE_TEXTURE_MIP_FILTER_TYPE XNAToTMP_MipFilter[] = | ||||
{ | ||||
0, /* TextureFilter.Linear */ | ||||
0, /* TextureFilter.Point */ | ||||
0, /* TextureFilter.Anisotropic */ | ||||
0, /* TextureFilter.LinearMipPoint */ | ||||
0, /* TextureFilter.PointMipLinear */ | ||||
0, /* TextureFilter.MinLinearMagPointMipLinear */ | ||||
0, /* TextureFilter.MinLinearMagPointMipPoint */ | ||||
0, /* TextureFilter.MinPointMagLinearMipLinear */ | ||||
0 /* TextureFilter.MinPointMagLinearMipPoint */ | ||||
}; | ||||
static TEMPLATE_TEXTURE_FILTER_TYPE XNAToTMP_MinFilter[] = | ||||
{ | ||||
0, /* TextureFilter.Linear */ | ||||
0, /* TextureFilter.Point */ | ||||
0, /* TextureFilter.Anisotropic */ | ||||
0, /* TextureFilter.LinearMipPoint */ | ||||
0, /* TextureFilter.PointMipLinear */ | ||||
0, /* TextureFilter.MinLinearMagPointMipLinear */ | ||||
0, /* TextureFilter.MinLinearMagPointMipPoint */ | ||||
0, /* TextureFilter.MinPointMagLinearMipLinear */ | ||||
0 /* TextureFilter.MinPointMagLinearMipPoint */ | ||||
}; | ||||
static TEMPLATE_PRIMITIVE_TYPE XNAToTMP_Primitive[] = | ||||
{ | ||||
0, /* PrimitiveType.TriangleList */ | ||||
0, /* PrimitiveType.TriangleStrip */ | ||||
0, /* PrimitiveType.LineList */ | ||||
0, /* PrimitiveType.LineStrip */ | ||||
0 /* PrimitiveType.PointListEXT */ | ||||
}; | ||||
/* Renderer Implementation */ | ||||
/* Quit */ | ||||
static void TEMPLATE_DestroyDevice(FNA3D_Device *device) | ||||
{ | ||||
TemplateRenderer* renderer = (TemplateRenderer*) device->driverData; | ||||
SDL_free(renderer); | ||||
SDL_free(device); | ||||
} | ||||
/* Presentation */ | ||||
static void TEMPLATE_SwapBuffers( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Rect *sourceRectangle, | ||||
FNA3D_Rect *destinationRectangle, | ||||
void* overrideWindowHandle | ||||
) { | ||||
} | ||||
/* Drawing */ | ||||
static void TEMPLATE_Clear( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_ClearOptions options, | ||||
FNA3D_Vec4 *color, | ||||
float depth, | ||||
int32_t stencil | ||||
) { | ||||
} | ||||
static void TEMPLATE_DrawIndexedPrimitives( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_PrimitiveType primitiveType, | ||||
int32_t baseVertex, | ||||
int32_t minVertexIndex, | ||||
int32_t numVertices, | ||||
int32_t startIndex, | ||||
int32_t primitiveCount, | ||||
FNA3D_Buffer *indices, | ||||
FNA3D_IndexElementSize indexElementSize | ||||
) { | ||||
} | ||||
static void TEMPLATE_DrawInstancedPrimitives( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_PrimitiveType primitiveType, | ||||
int32_t baseVertex, | ||||
int32_t minVertexIndex, | ||||
int32_t numVertices, | ||||
int32_t startIndex, | ||||
int32_t primitiveCount, | ||||
int32_t instanceCount, | ||||
FNA3D_Buffer *indices, | ||||
FNA3D_IndexElementSize indexElementSize | ||||
) { | ||||
} | ||||
static void TEMPLATE_DrawPrimitives( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_PrimitiveType primitiveType, | ||||
int32_t vertexStart, | ||||
int32_t primitiveCount | ||||
) { | ||||
} | ||||
/* Mutable Render States */ | ||||
static void TEMPLATE_SetViewport(FNA3D_Renderer *driverData, FNA3D_Viewport *viewport) | ||||
{ | ||||
} | ||||
static void TEMPLATE_SetScissorRect(FNA3D_Renderer *driverData, FNA3D_Rect *scissor) | ||||
{ | ||||
} | ||||
static void TEMPLATE_GetBlendFactor( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Color *blendFactor | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetBlendFactor( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Color *blendFactor | ||||
) { | ||||
} | ||||
static int32_t TEMPLATE_GetMultiSampleMask(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static void TEMPLATE_SetMultiSampleMask(FNA3D_Renderer *driverData, int32_t mask) | ||||
{ | ||||
} | ||||
static int32_t TEMPLATE_GetReferenceStencil(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static void TEMPLATE_SetReferenceStencil(FNA3D_Renderer *driverData, int32_t ref) | ||||
{ | ||||
} | ||||
/* Immutable Render States */ | ||||
static void TEMPLATE_SetBlendState( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_BlendState *blendState | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetDepthStencilState( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_DepthStencilState *depthStencilState | ||||
) { | ||||
} | ||||
static void TEMPLATE_ApplyRasterizerState( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_RasterizerState *rasterizerState | ||||
) { | ||||
} | ||||
static void TEMPLATE_VerifySampler( | ||||
FNA3D_Renderer *driverData, | ||||
int32_t index, | ||||
FNA3D_Texture *texture, | ||||
FNA3D_SamplerState *sampler | ||||
) { | ||||
} | ||||
static void TEMPLATE_VerifyVertexSampler( | ||||
FNA3D_Renderer *driverData, | ||||
int32_t index, | ||||
FNA3D_Texture *texture, | ||||
FNA3D_SamplerState *sampler | ||||
) { | ||||
} | ||||
/* Vertex State */ | ||||
static void TEMPLATE_ApplyVertexBufferBindings( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_VertexBufferBinding *bindings, | ||||
int32_t numBindings, | ||||
uint8_t bindingsUpdated, | ||||
int32_t baseVertex | ||||
) { | ||||
} | ||||
/* Render Targets */ | ||||
static void TEMPLATE_SetRenderTargets( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_RenderTargetBinding *renderTargets, | ||||
int32_t numRenderTargets, | ||||
FNA3D_Renderbuffer *depthStencilBuffer, | ||||
FNA3D_DepthFormat depthFormat, | ||||
uint8_t preserveTargetContents | ||||
) { | ||||
} | ||||
static void TEMPLATE_ResolveTarget( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_RenderTargetBinding *target | ||||
) { | ||||
} | ||||
/* Backbuffer Functions */ | ||||
static void TEMPLATE_ResetBackbuffer( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_PresentationParameters *presentationParameters | ||||
) { | ||||
} | ||||
static void TEMPLATE_ReadBackbuffer( | ||||
FNA3D_Renderer *driverData, | ||||
int32_t x, | ||||
int32_t y, | ||||
int32_t w, | ||||
int32_t h, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
static void TEMPLATE_GetBackbufferSize( | ||||
FNA3D_Renderer *driverData, | ||||
int32_t *w, | ||||
int32_t *h | ||||
) { | ||||
} | ||||
static FNA3D_SurfaceFormat TEMPLATE_GetBackbufferSurfaceFormat( | ||||
FNA3D_Renderer *driverData | ||||
) { | ||||
return FNA3D_SURFACEFORMAT_COLOR; | ||||
} | ||||
static FNA3D_DepthFormat TEMPLATE_GetBackbufferDepthFormat( | ||||
FNA3D_Renderer *driverData | ||||
) { | ||||
return FNA3D_DEPTHFORMAT_NONE; | ||||
} | ||||
static int32_t TEMPLATE_GetBackbufferMultiSampleCount( | ||||
FNA3D_Renderer *driverData | ||||
) { | ||||
return 0; | ||||
} | ||||
/* Textures */ | ||||
static FNA3D_Texture* TEMPLATE_CreateTexture2D( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_SurfaceFormat format, | ||||
int32_t width, | ||||
int32_t height, | ||||
int32_t levelCount, | ||||
uint8_t isRenderTarget | ||||
) { | ||||
return NULL; | ||||
} | ||||
static FNA3D_Texture* TEMPLATE_CreateTexture3D( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_SurfaceFormat format, | ||||
int32_t width, | ||||
int32_t height, | ||||
int32_t depth, | ||||
int32_t levelCount | ||||
) { | ||||
return NULL; | ||||
} | ||||
static FNA3D_Texture* TEMPLATE_CreateTextureCube( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_SurfaceFormat format, | ||||
int32_t size, | ||||
int32_t levelCount, | ||||
uint8_t isRenderTarget | ||||
) { | ||||
return NULL; | ||||
} | ||||
static void TEMPLATE_AddDisposeTexture( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *texture | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetTextureData2D( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *texture, | ||||
int32_t x, | ||||
int32_t y, | ||||
int32_t w, | ||||
int32_t h, | ||||
int32_t level, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetTextureData3D( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *texture, | ||||
int32_t x, | ||||
int32_t y, | ||||
int32_t z, | ||||
int32_t w, | ||||
int32_t h, | ||||
int32_t d, | ||||
int32_t level, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetTextureDataCube( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *texture, | ||||
int32_t x, | ||||
int32_t y, | ||||
int32_t w, | ||||
int32_t h, | ||||
FNA3D_CubeMapFace cubeMapFace, | ||||
int32_t level, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetTextureDataYUV( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *y, | ||||
FNA3D_Texture *u, | ||||
FNA3D_Texture *v, | ||||
int32_t yWidth, | ||||
int32_t yHeight, | ||||
int32_t uvWidth, | ||||
int32_t uvHeight, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
static void TEMPLATE_GetTextureData2D( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *texture, | ||||
int32_t x, | ||||
int32_t y, | ||||
int32_t w, | ||||
int32_t h, | ||||
int32_t level, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
static void TEMPLATE_GetTextureData3D( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *texture, | ||||
int32_t x, | ||||
int32_t y, | ||||
int32_t z, | ||||
int32_t w, | ||||
int32_t h, | ||||
int32_t d, | ||||
int32_t level, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
static void TEMPLATE_GetTextureDataCube( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Texture *texture, | ||||
int32_t x, | ||||
int32_t y, | ||||
int32_t w, | ||||
int32_t h, | ||||
FNA3D_CubeMapFace cubeMapFace, | ||||
int32_t level, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
/* Renderbuffers */ | ||||
static FNA3D_Renderbuffer* TEMPLATE_GenColorRenderbuffer( | ||||
FNA3D_Renderer *driverData, | ||||
int32_t width, | ||||
int32_t height, | ||||
FNA3D_SurfaceFormat format, | ||||
int32_t multiSampleCount, | ||||
FNA3D_Texture *texture | ||||
) { | ||||
return NULL; | ||||
} | ||||
static FNA3D_Renderbuffer* TEMPLATE_GenDepthStencilRenderbuffer( | ||||
FNA3D_Renderer *driverData, | ||||
int32_t width, | ||||
int32_t height, | ||||
FNA3D_DepthFormat format, | ||||
int32_t multiSampleCount | ||||
) { | ||||
return NULL; | ||||
} | ||||
static void TEMPLATE_AddDisposeRenderbuffer( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Renderbuffer *renderbuffer | ||||
) { | ||||
} | ||||
/* Vertex Buffers */ | ||||
static FNA3D_Buffer* TEMPLATE_GenVertexBuffer( | ||||
FNA3D_Renderer *driverData, | ||||
uint8_t dynamic, | ||||
FNA3D_BufferUsage usage, | ||||
int32_t sizeInBytes | ||||
) { | ||||
return NULL; | ||||
} | ||||
static void TEMPLATE_AddDisposeVertexBuffer( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Buffer *buffer | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetVertexBufferData( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Buffer *buffer, | ||||
int32_t offsetInBytes, | ||||
void* data, | ||||
int32_t elementCount, | ||||
int32_t elementSizeInBytes, | ||||
int32_t vertexStride, | ||||
FNA3D_SetDataOptions options | ||||
) { | ||||
} | ||||
static void TEMPLATE_GetVertexBufferData( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Buffer *buffer, | ||||
int32_t offsetInBytes, | ||||
void* data, | ||||
int32_t elementCount, | ||||
int32_t elementSizeInBytes, | ||||
int32_t vertexStride | ||||
) { | ||||
} | ||||
/* Index Buffers */ | ||||
static FNA3D_Buffer* TEMPLATE_GenIndexBuffer( | ||||
FNA3D_Renderer *driverData, | ||||
uint8_t dynamic, | ||||
FNA3D_BufferUsage usage, | ||||
int32_t sizeInBytes | ||||
) { | ||||
return NULL; | ||||
} | ||||
static void TEMPLATE_AddDisposeIndexBuffer( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Buffer *buffer | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetIndexBufferData( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Buffer *buffer, | ||||
int32_t offsetInBytes, | ||||
void* data, | ||||
int32_t dataLength, | ||||
FNA3D_SetDataOptions options | ||||
) { | ||||
} | ||||
static void TEMPLATE_GetIndexBufferData( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Buffer *buffer, | ||||
int32_t offsetInBytes, | ||||
void* data, | ||||
int32_t dataLength | ||||
) { | ||||
} | ||||
/* Effects */ | ||||
static void TEMPLATE_CreateEffect( | ||||
FNA3D_Renderer *driverData, | ||||
uint8_t *effectCode, | ||||
uint32_t effectCodeLength, | ||||
FNA3D_Effect **effect, | ||||
MOJOSHADER_effect **effectData | ||||
) { | ||||
*effect = NULL; | ||||
*effectData = NULL; | ||||
} | ||||
static void TEMPLATE_CloneEffect( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Effect *cloneSource, | ||||
FNA3D_Effect **effect, | ||||
MOJOSHADER_effect **effectData | ||||
) { | ||||
*effect = NULL; | ||||
*effectData = NULL; | ||||
} | ||||
static void TEMPLATE_AddDisposeEffect( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Effect *effect | ||||
) { | ||||
} | ||||
static void TEMPLATE_SetEffectTechnique( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Effect *effect, | ||||
MOJOSHADER_effectTechnique *technique | ||||
) { | ||||
} | ||||
static void TEMPLATE_ApplyEffect( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Effect *effect, | ||||
uint32_t pass, | ||||
MOJOSHADER_effectStateChanges *stateChanges | ||||
) { | ||||
} | ||||
static void TEMPLATE_BeginPassRestore( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Effect *effect, | ||||
MOJOSHADER_effectStateChanges *stateChanges | ||||
) { | ||||
} | ||||
static void TEMPLATE_EndPassRestore( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Effect *effect | ||||
) { | ||||
} | ||||
/* Queries */ | ||||
static FNA3D_Query* TEMPLATE_CreateQuery(FNA3D_Renderer *driverData) | ||||
{ | ||||
return NULL; | ||||
} | ||||
static void TEMPLATE_AddDisposeQuery( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Query *query | ||||
) { | ||||
} | ||||
static void TEMPLATE_QueryBegin(FNA3D_Renderer *driverData, FNA3D_Query *query) | ||||
{ | ||||
} | ||||
static void TEMPLATE_QueryEnd(FNA3D_Renderer *driverData, FNA3D_Query *query) | ||||
{ | ||||
} | ||||
static uint8_t TEMPLATE_QueryComplete( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Query *query | ||||
) { | ||||
return 1; | ||||
} | ||||
static int32_t TEMPLATE_QueryPixelCount( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_Query *query | ||||
) { | ||||
return 0; | ||||
} | ||||
/* Feature Queries */ | ||||
static uint8_t TEMPLATE_SupportsDXT1(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static uint8_t TEMPLATE_SupportsS3TC(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static uint8_t TEMPLATE_SupportsBC7(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static uint8_t TEMPLATE_SupportsHardwareInstancing(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static uint8_t TEMPLATE_SupportsNoOverwrite(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static uint8_t TEMPLATE_SupportsSRGBRenderTargets(FNA3D_Renderer *driverData) | ||||
{ | ||||
return 0; | ||||
} | ||||
static void TEMPLATE_GetMaxTextureSlots( | ||||
FNA3D_Renderer *driverData, | ||||
int32_t *textures, | ||||
int32_t *vertexTextures | ||||
) { | ||||
} | ||||
static int32_t TEMPLATE_GetMaxMultiSampleCount( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_SurfaceFormat format, | ||||
int32_t multiSampleCount | ||||
) { | ||||
return 0; | ||||
} | ||||
/* Debugging */ | ||||
static void TEMPLATE_SetStringMarker(FNA3D_Renderer *driverData, const char *text) | ||||
{ | ||||
} | ||||
/* External Interop */ | ||||
static void TEMPLATE_GetSysRenderer( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_SysRendererEXT *sysrenderer | ||||
) { | ||||
} | ||||
static FNA3D_Texture* TEMPLATE_CreateSysTexture( | ||||
FNA3D_Renderer *driverData, | ||||
FNA3D_SysTextureEXT *systexture | ||||
) { | ||||
return NULL; | ||||
} | ||||
/* Driver */ | ||||
static uint8_t TEMPLATE_PrepareWindowAttributes(uint32_t *flags) | ||||
{ | ||||
return 0; /* Set this to 1 when the driver is usable! */ | ||||
} | ||||
static void TEMPLATE_GetDrawableSize(void* window, int32_t *w, int32_t *h) | ||||
{ | ||||
} | ||||
static FNA3D_Device* TEMPLATE_CreateDevice( | ||||
FNA3D_PresentationParameters *presentationParameters, | ||||
uint8_t debugMode | ||||
) { | ||||
FNA3D_Device *result = (FNA3D_Device*) SDL_malloc(sizeof(FNA3D_Device)); | ||||
TemplateRenderer *renderer = (TemplateRenderer*) SDL_malloc( | ||||
sizeof(TemplateRenderer) | ||||
); | ||||
result->driverData = (FNA3D_Renderer*) renderer; | ||||
ASSIGN_DRIVER(TEMPLATE) | ||||
return result; | ||||
} | ||||
FNA3D_Driver TemplateDriver = { | ||||
"Template", | ||||
TEMPLATE_PrepareWindowAttributes, | ||||
TEMPLATE_GetDrawableSize, | ||||
TEMPLATE_CreateDevice | ||||
}; | ||||
#else | ||||
extern int this_tu_is_empty; | ||||
#endif /* FNA3D_DRIVER_TEMPLATE */ | ||||
/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ | ||||