Fix software rendering (disable vsync, fix null pointer de-ref)
This commit is contained in:
@@ -1403,11 +1403,12 @@ void CreateMainFrame(FrameCreationCallback inOnFrame, int inWidth, int inHeight,
|
|||||||
|
|
||||||
int renderFlags = 0;
|
int renderFlags = 0;
|
||||||
if (opengl) renderFlags |= SDL_RENDERER_ACCELERATED;
|
if (opengl) renderFlags |= SDL_RENDERER_ACCELERATED;
|
||||||
if (vsync) renderFlags |= SDL_RENDERER_PRESENTVSYNC;
|
if (opengl && vsync) renderFlags |= SDL_RENDERER_PRESENTVSYNC;
|
||||||
|
|
||||||
renderer = SDL_CreateRenderer (window, -1, renderFlags);
|
renderer = SDL_CreateRenderer (window, -1, renderFlags);
|
||||||
|
|
||||||
if (opengl) sgIsOGL2 = (inFlags & (wfAllowShaders | wfRequireShaders));
|
if (opengl) sgIsOGL2 = (inFlags & (wfAllowShaders | wfRequireShaders));
|
||||||
|
else sgIsOGL2 = false;
|
||||||
|
|
||||||
if (!renderer && (inFlags & wfHW_AA_HIRES || inFlags & wfHW_AA)) {
|
if (!renderer && (inFlags & wfHW_AA_HIRES || inFlags & wfHW_AA)) {
|
||||||
// if no window was created and AA was enabled, disable AA and try again
|
// if no window was created and AA was enabled, disable AA and try again
|
||||||
@@ -1422,7 +1423,7 @@ void CreateMainFrame(FrameCreationCallback inOnFrame, int inWidth, int inHeight,
|
|||||||
// if opengl is enabled and no window was created, disable it and try again
|
// if opengl is enabled and no window was created, disable it and try again
|
||||||
fprintf(stderr, "OpenGL is not available. Retrying without. (%s)\n", SDL_GetError());
|
fprintf(stderr, "OpenGL is not available. Retrying without. (%s)\n", SDL_GetError());
|
||||||
opengl = false;
|
opengl = false;
|
||||||
renderFlags &= ~SDL_RENDERER_ACCELERATED;
|
requestWindowFlags &= ~SDL_WINDOW_OPENGL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1952,10 +1952,11 @@ void Stage::RenderStage()
|
|||||||
|
|
||||||
for(int eye = start; eye <= end; eye++) {
|
for(int eye = start; eye <= end; eye++) {
|
||||||
|
|
||||||
render.Target().mHardware->SetS3DEye(eye);
|
|
||||||
|
|
||||||
if (render.Target().IsHardware())
|
if (render.Target().IsHardware())
|
||||||
|
{
|
||||||
|
render.Target().mHardware->SetS3DEye(eye);
|
||||||
render.Target().mHardware->SetQuality(quality);
|
render.Target().mHardware->SetQuality(quality);
|
||||||
|
}
|
||||||
|
|
||||||
RenderState state(0, GetAA() );
|
RenderState state(0, GetAA() );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user