|
|
|
@ -183,10 +183,23 @@ private:
|
|
|
|
|
/// Syncs the alpha test state to match the guest state
|
|
|
|
|
void SyncAlphaTest();
|
|
|
|
|
|
|
|
|
|
/// Check for extension that are not strictly required
|
|
|
|
|
/// but are needed for correct emulation
|
|
|
|
|
/// Check for extension that are not strictly required but are needed for correct emulation
|
|
|
|
|
void CheckExtensions();
|
|
|
|
|
|
|
|
|
|
std::size_t CalculateVertexArraysSize() const;
|
|
|
|
|
|
|
|
|
|
std::size_t CalculateIndexBufferSize() const;
|
|
|
|
|
|
|
|
|
|
/// Updates and returns a vertex array object representing current vertex format
|
|
|
|
|
GLuint SetupVertexFormat();
|
|
|
|
|
|
|
|
|
|
void SetupVertexBuffer(GLuint vao);
|
|
|
|
|
void SetupVertexInstances(GLuint vao);
|
|
|
|
|
|
|
|
|
|
GLintptr SetupIndexBuffer();
|
|
|
|
|
|
|
|
|
|
void SetupShaders(GLenum primitive_mode);
|
|
|
|
|
|
|
|
|
|
const Device device;
|
|
|
|
|
OpenGLState state;
|
|
|
|
|
|
|
|
|
@ -211,20 +224,6 @@ private:
|
|
|
|
|
BindBuffersRangePushBuffer bind_ubo_pushbuffer{GL_UNIFORM_BUFFER};
|
|
|
|
|
BindBuffersRangePushBuffer bind_ssbo_pushbuffer{GL_SHADER_STORAGE_BUFFER};
|
|
|
|
|
|
|
|
|
|
std::size_t CalculateVertexArraysSize() const;
|
|
|
|
|
|
|
|
|
|
std::size_t CalculateIndexBufferSize() const;
|
|
|
|
|
|
|
|
|
|
/// Updates and returns a vertex array object representing current vertex format
|
|
|
|
|
GLuint SetupVertexFormat();
|
|
|
|
|
|
|
|
|
|
void SetupVertexBuffer(GLuint vao);
|
|
|
|
|
void SetupVertexInstances(GLuint vao);
|
|
|
|
|
|
|
|
|
|
GLintptr SetupIndexBuffer();
|
|
|
|
|
|
|
|
|
|
void SetupShaders(GLenum primitive_mode);
|
|
|
|
|
|
|
|
|
|
HostCounter samples_passed{GL_SAMPLES_PASSED};
|
|
|
|
|
|
|
|
|
|
/// Number of commands queued to the OpenGL driver. Reseted on flush.
|
|
|
|
|