mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-07 22:34:43 -04:00
commit
92b899f5bf
@ -42,6 +42,8 @@ typedef cc_uintptr GLpointer;
|
|||||||
#define GL_TRIANGLES 0x0004
|
#define GL_TRIANGLES 0x0004
|
||||||
#define GL_QUADS 0x0007
|
#define GL_QUADS 0x0007
|
||||||
|
|
||||||
|
#define GL_ZERO 0
|
||||||
|
#define GL_ONE 1
|
||||||
#define GL_BLEND 0x0BE2
|
#define GL_BLEND 0x0BE2
|
||||||
#define GL_SRC_ALPHA 0x0302
|
#define GL_SRC_ALPHA 0x0302
|
||||||
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
#define GL_ONE_MINUS_SRC_ALPHA 0x0303
|
||||||
|
@ -616,6 +616,7 @@ typedef cc_uint8 cc_bool;
|
|||||||
#define DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL2
|
#define DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL2
|
||||||
#else
|
#else
|
||||||
#define DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL1
|
#define DEFAULT_GFX_BACKEND CC_GFX_BACKEND_GL1
|
||||||
|
#define CC_DISABLE_ANIMATIONS
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
#include "../misc/opengl/GL1Funcs.h"
|
#include "../misc/opengl/GL1Funcs.h"
|
||||||
#if defined CC_BUILD_SYMBIAN
|
#if defined CC_BUILD_SYMBIAN
|
||||||
#include "../misc/opengl/GL2Funcs.h"
|
#include "../misc/opengl/GL2Funcs.h"
|
||||||
|
|
||||||
|
static cc_bool mbx;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CC_BUILD_MAXSTACK <= (64 * 1024)
|
#if CC_BUILD_MAXSTACK <= (64 * 1024)
|
||||||
@ -84,7 +86,9 @@ void Gfx_Create(void) {
|
|||||||
#ifdef CC_BUILD_GL11_FALLBACK
|
#ifdef CC_BUILD_GL11_FALLBACK
|
||||||
GLContext_GetAll(coreFuncs, Array_Elems(coreFuncs));
|
GLContext_GetAll(coreFuncs, Array_Elems(coreFuncs));
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef CC_BUILD_GLES
|
||||||
customMipmapsLevels = true;
|
customMipmapsLevels = true;
|
||||||
|
#endif
|
||||||
Gfx.BackendType = CC_GFX_BACKEND_GL1;
|
Gfx.BackendType = CC_GFX_BACKEND_GL1;
|
||||||
|
|
||||||
GL_InitCommon();
|
GL_InitCommon();
|
||||||
@ -335,6 +339,17 @@ static void SetAlphaTest(cc_bool enabled) {
|
|||||||
|
|
||||||
void Gfx_DepthOnlyRendering(cc_bool depthOnly) {
|
void Gfx_DepthOnlyRendering(cc_bool depthOnly) {
|
||||||
cc_bool enabled = !depthOnly;
|
cc_bool enabled = !depthOnly;
|
||||||
|
#ifdef CC_BUILD_SYMBIAN
|
||||||
|
if (mbx) {
|
||||||
|
if (depthOnly) {
|
||||||
|
_glBlendFunc(GL_ZERO, GL_ONE);
|
||||||
|
Gfx_SetAlphaBlending(true);
|
||||||
|
} else {
|
||||||
|
_glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
SetColorWrite(enabled & gfx_colorMask[0], enabled & gfx_colorMask[1],
|
SetColorWrite(enabled & gfx_colorMask[0], enabled & gfx_colorMask[1],
|
||||||
enabled & gfx_colorMask[2], enabled & gfx_colorMask[3]);
|
enabled & gfx_colorMask[2], enabled & gfx_colorMask[3]);
|
||||||
|
|
||||||
@ -422,6 +437,18 @@ cc_bool Gfx_WarnIfNecessary(void) {
|
|||||||
Gfx.Limitations |= GFX_LIMIT_VERTEX_ONLY_FOG;
|
Gfx.Limitations |= GFX_LIMIT_VERTEX_ONLY_FOG;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#if defined CC_BUILD_SYMBIAN
|
||||||
|
if (String_ContainsConst(&renderer, "SGX")) {
|
||||||
|
} else if (String_ContainsConst(&renderer, "MBX")) {
|
||||||
|
Gfx.Limitations |= GFX_LIMIT_MINIMAL;
|
||||||
|
mbx = true;
|
||||||
|
} else if (!String_ContainsConst(&renderer, "HW")) {
|
||||||
|
Chat_AddRaw("&cSoftware rendering is being used, performance will greatly suffer.");
|
||||||
|
|
||||||
|
Gfx.Limitations |= GFX_LIMIT_MINIMAL;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -485,35 +485,41 @@ void CCAppUi::HandleCommandL(TInt aCommand) {
|
|||||||
|
|
||||||
// CCContainer implementation
|
// CCContainer implementation
|
||||||
TInt CCContainer::LoopCallBack(TAny*) {
|
TInt CCContainer::LoopCallBack(TAny*) {
|
||||||
if (!WindowInfo.Exists) {
|
cc_bool run = false;
|
||||||
Window_RequestClose();
|
for (;;) {
|
||||||
container->iAppUi->Exit();
|
if (!WindowInfo.Exists) {
|
||||||
return EFalse;
|
Window_RequestClose();
|
||||||
}
|
container->iAppUi->Exit();
|
||||||
|
return EFalse;
|
||||||
// launcher -> game -> launcher -> ... loop
|
|
||||||
launcher:
|
|
||||||
if (!gameRunning) {
|
|
||||||
if (Launcher_Tick()) {
|
|
||||||
return ETrue;
|
|
||||||
}
|
}
|
||||||
Launcher_Finish();
|
|
||||||
|
if (run) {
|
||||||
// run game
|
run = false;
|
||||||
gameRunning = true;
|
ProcessProgramArgs(0, 0);
|
||||||
Game_Setup();
|
Game_Setup();
|
||||||
container->RestartTimerL(100);
|
gameRunning = true;
|
||||||
|
container->RestartTimerL(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!gameRunning) {
|
||||||
|
if (Launcher_Tick()) break;
|
||||||
|
Launcher_Finish();
|
||||||
|
run = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Game_Running) {
|
||||||
|
gameRunning = false;
|
||||||
|
Game_Free();
|
||||||
|
// Launcher_Setup();
|
||||||
|
// container->RestartTimerL(10000);
|
||||||
|
WindowInfo.Exists = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Game_RenderFrame();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Game_Running) {
|
|
||||||
// return to launcher
|
|
||||||
gameRunning = false;
|
|
||||||
Game_Free();
|
|
||||||
Launcher_Setup();
|
|
||||||
container->RestartTimerL(10000);
|
|
||||||
goto launcher;
|
|
||||||
}
|
|
||||||
Game_RenderFrame();
|
|
||||||
return ETrue;
|
return ETrue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user