Merge pull request #117 from dukope/master

Fix software rendering (disable vsync, fix null pointer de-ref)
This commit is contained in:
Sven Bergström
2014-03-27 01:36:57 -02:30
2 changed files with 7 additions and 5 deletions

View File

@@ -1403,11 +1403,12 @@ void CreateMainFrame(FrameCreationCallback inOnFrame, int inWidth, int inHeight,
int renderFlags = 0;
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);
if (opengl) sgIsOGL2 = (inFlags & (wfAllowShaders | wfRequireShaders));
else sgIsOGL2 = false;
if (!renderer && (inFlags & wfHW_AA_HIRES || inFlags & wfHW_AA)) {
// 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
fprintf(stderr, "OpenGL is not available. Retrying without. (%s)\n", SDL_GetError());
opengl = false;
renderFlags &= ~SDL_RENDERER_ACCELERATED;
requestWindowFlags &= ~SDL_WINDOW_OPENGL;
}
else
{

View File

@@ -1952,10 +1952,11 @@ void Stage::RenderStage()
for(int eye = start; eye <= end; eye++) {
render.Target().mHardware->SetS3DEye(eye);
if (render.Target().IsHardware())
{
render.Target().mHardware->SetS3DEye(eye);
render.Target().mHardware->SetQuality(quality);
}
RenderState state(0, GetAA() );