mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-09 07:18:34 -04:00
Backends asides from SoftGPU can declare their lack of fog support
This commit is contained in:
parent
6dd9d26846
commit
b1905750be
@ -481,7 +481,7 @@ static void Game_Load(void) {
|
||||
|
||||
if (Gfx.Limitations & GFX_LIMIT_VERTEX_ONLY_FOG)
|
||||
EnvRenderer_SetMode(EnvRenderer_Minimal | ENV_LEGACY);
|
||||
if (Gfx.BackendType == CC_GFX_BACKEND_SOFTGPU)
|
||||
if (Gfx.Limitations & GFX_LIMIT_NO_FOG)
|
||||
EnvRenderer_SetMode(ENV_MINIMAL);
|
||||
|
||||
Server.BeginConnect();
|
||||
|
@ -93,6 +93,8 @@ CC_VAR extern struct _GfxData {
|
||||
#define GFX_LIMIT_VERTEX_ONLY_FOG 0x02
|
||||
/* Whether the graphics backend only supports a small maximum quad size */
|
||||
#define GFX_LIMIT_MAX_VERTEX_SIZE 0x04
|
||||
/* Whether the graphics backend doesn't support fog at all */
|
||||
#define GFX_LIMIT_NO_FOG 0x08
|
||||
|
||||
extern const cc_string Gfx_LowPerfMessage;
|
||||
|
||||
|
@ -32,10 +32,8 @@ static GL_SetupVBRangeFunc gfx_setupVBRangeFunc;
|
||||
|
||||
void Gfx_Create(void) {
|
||||
GLContext_Create();
|
||||
customMipmapsLevels = true;
|
||||
Gfx.BackendType = CC_GFX_BACKEND_GL1;
|
||||
|
||||
GL_InitCommon();
|
||||
|
||||
MakeIndices(gl_indices, GFX_MAX_INDICES, NULL);
|
||||
Gfx_RestoreState();
|
||||
GLContext_SetVSync(gfx_vsync);
|
||||
@ -137,27 +135,29 @@ void Gfx_SetDynamicVbData(GfxResourceID vb, void* vertices, int vCount) {
|
||||
#define VB_PTR ((cc_uint8*)dynamicListData)
|
||||
|
||||
static void GL_SetupVbColoured(void) {
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + 0));
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + 12));
|
||||
GLpointer ptr = (GLpointer)VB_PTR;
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, ptr + 0);
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, ptr + 12);
|
||||
}
|
||||
|
||||
static void GL_SetupVbTextured(void) {
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + 0));
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + 12));
|
||||
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + 16));
|
||||
GLpointer ptr = (GLpointer)VB_PTR;
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, ptr + 0);
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, ptr + 12);
|
||||
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, ptr + 16);
|
||||
}
|
||||
|
||||
static void GL_SetupVbColoured_Range(int startVertex) {
|
||||
cc_uint32 offset = startVertex * SIZEOF_VERTEX_COLOURED;
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + offset + 0));
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, (GLpointer)(VB_PTR + offset + 12));
|
||||
GLpointer ptr = (GLpointer)VB_PTR + startVertex * SIZEOF_VERTEX_COLOURED;
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_COLOURED, ptr + 0);
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_COLOURED, ptr + 12);
|
||||
}
|
||||
|
||||
static void GL_SetupVbTextured_Range(int startVertex) {
|
||||
cc_uint32 offset = startVertex * SIZEOF_VERTEX_TEXTURED;
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 0));
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 12));
|
||||
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, (GLpointer)(VB_PTR + offset + 16));
|
||||
GLpointer ptr = (GLpointer)VB_PTR + startVertex * SIZEOF_VERTEX_TEXTURED;
|
||||
_glVertexPointer(3, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, ptr + 0);
|
||||
_glColorPointer(4, GL_UNSIGNED_BYTE, SIZEOF_VERTEX_TEXTURED, ptr + 12);
|
||||
_glTexCoordPointer(2, GL_FLOAT, SIZEOF_VERTEX_TEXTURED, ptr + 16);
|
||||
}
|
||||
|
||||
void Gfx_SetVertexFormat(VertexFormat fmt) {
|
||||
|
@ -130,7 +130,8 @@ void Gfx_Create(void) {
|
||||
Gfx.MaxTexHeight = 256;
|
||||
//Gfx.MaxTexSize = 256 * 256;
|
||||
Gfx.Created = true;
|
||||
Gfx.Limitations = GFX_LIMIT_VERTEX_ONLY_FOG;
|
||||
//Gfx.Limitations = GFX_LIMIT_VERTEX_ONLY_FOG;
|
||||
Gfx.Limitations = GFX_LIMIT_NO_FOG;
|
||||
|
||||
ResetGPU();
|
||||
Gfx_ClearColor(PackedCol_Make(0, 120, 80, 255));
|
||||
|
@ -117,7 +117,7 @@ void Gfx_Create(void) {
|
||||
Gfx.MaxTexWidth = 128;
|
||||
Gfx.MaxTexHeight = 16; // 128
|
||||
Gfx.Created = true;
|
||||
Gfx.Limitations = GFX_LIMIT_NO_UV_SUPPORT | GFX_LIMIT_MAX_VERTEX_SIZE;
|
||||
Gfx.Limitations = GFX_LIMIT_NO_UV_SUPPORT | GFX_LIMIT_MAX_VERTEX_SIZE | GFX_LIMIT_NO_FOG;
|
||||
SetupHeaderCommands();
|
||||
}
|
||||
|
||||
|
@ -49,6 +49,7 @@ void Gfx_Create(void) {
|
||||
|
||||
Gfx.Created = true;
|
||||
Gfx.BackendType = CC_GFX_BACKEND_SOFTGPU;
|
||||
Gfx.Limitations = GFX_LIMIT_NO_FOG;
|
||||
|
||||
Gfx_RestoreState();
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ void Gfx_Create(void) {
|
||||
Gfx.MaxTexWidth = 256;
|
||||
Gfx.MaxTexHeight = 256;
|
||||
Gfx.Created = true;
|
||||
Gfx.Limitations = GFX_LIMIT_MAX_VERTEX_SIZE;
|
||||
Gfx.Limitations = GFX_LIMIT_MAX_VERTEX_SIZE | GFX_LIMIT_NO_FOG;
|
||||
|
||||
Gfx_RestoreState();
|
||||
SetupContexts(Window_Main.Width, Window_Main.Height);
|
||||
|
Loading…
x
Reference in New Issue
Block a user