mirror of https://github.com/snes9xgit/snes9x.git
GTK+: OpenGL: Don't reset state we don't change.
This commit is contained in:
parent
79e641664b
commit
1cd825090b
|
@ -617,7 +617,7 @@ int Snes9xConfig::load_config_file ()
|
||||||
|
|
||||||
bool RemoveSpriteLimit;
|
bool RemoveSpriteLimit;
|
||||||
inbool (z"RemoveSpriteLimit", RemoveSpriteLimit);
|
inbool (z"RemoveSpriteLimit", RemoveSpriteLimit);
|
||||||
bool OverclockCPU;
|
bool OverclockCPU = false;
|
||||||
inbool (z"OverclockCPU", OverclockCPU);
|
inbool (z"OverclockCPU", OverclockCPU);
|
||||||
|
|
||||||
#undef z
|
#undef z
|
||||||
|
|
|
@ -254,24 +254,7 @@ void S9xOpenGLDisplayDriver::update (int width, int height, int yoffset)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (legacy)
|
glDrawArrays (GL_TRIANGLE_STRIP, 0, 4);
|
||||||
{
|
|
||||||
glVertexPointer (2, GL_FLOAT, 0, coords);
|
|
||||||
glTexCoordPointer (2, GL_FLOAT, 0, &coords[8]);
|
|
||||||
glDrawArrays (GL_TRIANGLE_STRIP, 0, 4);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
glUseProgram (stock_program);
|
|
||||||
glBindBuffer (GL_ARRAY_BUFFER, coord_buffer);
|
|
||||||
glEnableVertexAttribArray (0);
|
|
||||||
glVertexAttribPointer (0, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET (0));
|
|
||||||
glEnableVertexAttribArray (1);
|
|
||||||
glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET (32));
|
|
||||||
glDrawArrays (GL_TRIANGLE_STRIP, 0, 4);
|
|
||||||
glDisableVertexAttribArray (1);
|
|
||||||
glDisableVertexAttribArray (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
swap_buffers ();
|
swap_buffers ();
|
||||||
}
|
}
|
||||||
|
@ -366,6 +349,11 @@ void S9xOpenGLDisplayDriver::update_texture_size (int width, int height)
|
||||||
glBufferData (GL_ARRAY_BUFFER, sizeof (GLfloat) * 16, coords, GL_STATIC_DRAW);
|
glBufferData (GL_ARRAY_BUFFER, sizeof (GLfloat) * 16, coords, GL_STATIC_DRAW);
|
||||||
glBindBuffer (GL_ARRAY_BUFFER, 0);
|
glBindBuffer (GL_ARRAY_BUFFER, 0);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
glVertexPointer (2, GL_FLOAT, 0, coords);
|
||||||
|
glTexCoordPointer (2, GL_FLOAT, 0, &coords[8]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -435,6 +423,9 @@ int S9xOpenGLDisplayDriver::opengl_defaults ()
|
||||||
glLoadIdentity ();
|
glLoadIdentity ();
|
||||||
glMatrixMode (GL_MODELVIEW);
|
glMatrixMode (GL_MODELVIEW);
|
||||||
glLoadIdentity ();
|
glLoadIdentity ();
|
||||||
|
|
||||||
|
glVertexPointer (2, GL_FLOAT, 0, coords);
|
||||||
|
glTexCoordPointer (2, GL_FLOAT, 0, &coords[8]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -481,6 +472,12 @@ int S9xOpenGLDisplayDriver::opengl_defaults ()
|
||||||
glGenBuffers (1, &coord_buffer);
|
glGenBuffers (1, &coord_buffer);
|
||||||
glBindBuffer (GL_ARRAY_BUFFER, coord_buffer);
|
glBindBuffer (GL_ARRAY_BUFFER, coord_buffer);
|
||||||
glBufferData (GL_ARRAY_BUFFER, sizeof (GLfloat) * 16, coords, GL_STATIC_DRAW);
|
glBufferData (GL_ARRAY_BUFFER, sizeof (GLfloat) * 16, coords, GL_STATIC_DRAW);
|
||||||
|
|
||||||
|
glEnableVertexAttribArray (0);
|
||||||
|
glVertexAttribPointer (0, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET (0));
|
||||||
|
glEnableVertexAttribArray (1);
|
||||||
|
glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 0, BUFFER_OFFSET (32));
|
||||||
|
|
||||||
glBindBuffer (GL_ARRAY_BUFFER, 0);
|
glBindBuffer (GL_ARRAY_BUFFER, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue