mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 18:00:41 +02:00
Merge pull request #5487 from samcake/daft
Remove completely GL transform legacy support
This commit is contained in:
commit
9e76c0296d
5 changed files with 2 additions and 106 deletions
|
@ -13,14 +13,11 @@
|
||||||
|
|
||||||
<@if GLPROFILE == PC_GL @>
|
<@if GLPROFILE == PC_GL @>
|
||||||
<@def GPU_FEATURE_PROFILE GPU_CORE@>
|
<@def GPU_FEATURE_PROFILE GPU_CORE@>
|
||||||
<@def GPU_TRANSFORM_PROFILE GPU_CORE@>
|
|
||||||
<@def VERSION_HEADER #version 410 core@>
|
<@def VERSION_HEADER #version 410 core@>
|
||||||
<@elif GLPROFILE == MAC_GL @>
|
<@elif GLPROFILE == MAC_GL @>
|
||||||
<@def GPU_FEATURE_PROFILE GPU_CORE@>
|
<@def GPU_FEATURE_PROFILE GPU_CORE@>
|
||||||
<@def GPU_TRANSFORM_PROFILE GPU_CORE@>
|
|
||||||
<@def VERSION_HEADER #version 410 core@>
|
<@def VERSION_HEADER #version 410 core@>
|
||||||
<@else@>
|
<@else@>
|
||||||
<@def GPU_FEATURE_PROFILE GPU_CORE@>
|
<@def GPU_FEATURE_PROFILE GPU_CORE@>
|
||||||
<@def GPU_TRANSFORM_PROFILE GPU_CORE@>
|
|
||||||
<@def VERSION_HEADER #version 410 core@>
|
<@def VERSION_HEADER #version 410 core@>
|
||||||
<@endif@>
|
<@endif@>
|
||||||
|
|
|
@ -93,13 +93,6 @@ public:
|
||||||
GLint _transformCameraSlot = -1;
|
GLint _transformCameraSlot = -1;
|
||||||
GLint _transformObjectSlot = -1;
|
GLint _transformObjectSlot = -1;
|
||||||
|
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
|
||||||
#else
|
|
||||||
GLint _transformObject_model = -1;
|
|
||||||
GLint _transformCamera_viewInverse = -1;
|
|
||||||
GLint _transformCamera_viewport = -1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
GLShader();
|
GLShader();
|
||||||
~GLShader();
|
~GLShader();
|
||||||
};
|
};
|
||||||
|
@ -389,13 +382,6 @@ protected:
|
||||||
GLuint _program;
|
GLuint _program;
|
||||||
bool _invalidProgram;
|
bool _invalidProgram;
|
||||||
|
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
|
||||||
#else
|
|
||||||
GLint _program_transformObject_model = -1;
|
|
||||||
GLint _program_transformCamera_viewInverse = -1;
|
|
||||||
GLint _program_transformCamera_viewport = -1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
State::Data _stateCache;
|
State::Data _stateCache;
|
||||||
State::Signature _stateSignatureCache;
|
State::Signature _stateSignatureCache;
|
||||||
|
|
||||||
|
|
|
@ -71,13 +71,6 @@ void GLBackend::do_setPipeline(Batch& batch, uint32 paramOffset) {
|
||||||
_pipeline._program = 0;
|
_pipeline._program = 0;
|
||||||
_pipeline._invalidProgram = true;
|
_pipeline._invalidProgram = true;
|
||||||
|
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
|
||||||
#else
|
|
||||||
_pipeline._program_transformObject_model = -1;
|
|
||||||
_pipeline._program_transformCamera_viewInverse = -1;
|
|
||||||
_pipeline._program_transformCamera_viewport = -1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
_pipeline._state = nullptr;
|
_pipeline._state = nullptr;
|
||||||
_pipeline._invalidState = true;
|
_pipeline._invalidState = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -90,13 +83,6 @@ void GLBackend::do_setPipeline(Batch& batch, uint32 paramOffset) {
|
||||||
if (_pipeline._program != pipelineObject->_program->_program) {
|
if (_pipeline._program != pipelineObject->_program->_program) {
|
||||||
_pipeline._program = pipelineObject->_program->_program;
|
_pipeline._program = pipelineObject->_program->_program;
|
||||||
_pipeline._invalidProgram = true;
|
_pipeline._invalidProgram = true;
|
||||||
|
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
|
||||||
#else
|
|
||||||
_pipeline._program_transformObject_model = pipelineObject->_program->_transformObject_model;
|
|
||||||
_pipeline._program_transformCamera_viewInverse = pipelineObject->_program->_transformCamera_viewInverse;
|
|
||||||
_pipeline._program_transformCamera_viewport = pipelineObject->_program->_transformCamera_viewport;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now for the state
|
// Now for the state
|
||||||
|
@ -144,24 +130,6 @@ void GLBackend::updatePipeline() {
|
||||||
}
|
}
|
||||||
_pipeline._invalidState = false;
|
_pipeline._invalidState = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
|
||||||
#else
|
|
||||||
// If shader program needs the model we need to provide it
|
|
||||||
if (_pipeline._program_transformObject_model >= 0) {
|
|
||||||
glUniformMatrix4fv(_pipeline._program_transformObject_model, 1, false, (const GLfloat*) &_transform._transformObject._model);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If shader program needs the inverseView we need to provide it
|
|
||||||
if (_pipeline._program_transformCamera_viewInverse >= 0) {
|
|
||||||
glUniformMatrix4fv(_pipeline._program_transformCamera_viewInverse, 1, false, (const GLfloat*) &_transform._transformCamera._viewInverse);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If shader program needs the viewport we need to provide it
|
|
||||||
if (_pipeline._program_transformCamera_viewport >= 0) {
|
|
||||||
glUniform4fv(_pipeline._program_transformCamera_viewport, 1, (const GLfloat*) &_transform._transformCamera._viewport);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLBackend::resetPipelineStage() {
|
void GLBackend::resetPipelineStage() {
|
||||||
|
|
|
@ -41,7 +41,6 @@ void GLBackend::do_setViewportTransform(Batch& batch, uint32 paramOffset) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLBackend::initTransform() {
|
void GLBackend::initTransform() {
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
|
||||||
glGenBuffers(1, &_transform._transformObjectBuffer);
|
glGenBuffers(1, &_transform._transformObjectBuffer);
|
||||||
glGenBuffers(1, &_transform._transformCameraBuffer);
|
glGenBuffers(1, &_transform._transformCameraBuffer);
|
||||||
|
|
||||||
|
@ -51,18 +50,12 @@ void GLBackend::initTransform() {
|
||||||
glBindBuffer(GL_UNIFORM_BUFFER, _transform._transformCameraBuffer);
|
glBindBuffer(GL_UNIFORM_BUFFER, _transform._transformCameraBuffer);
|
||||||
glBufferData(GL_UNIFORM_BUFFER, sizeof(_transform._transformCamera), (const void*) &_transform._transformCamera, GL_DYNAMIC_DRAW);
|
glBufferData(GL_UNIFORM_BUFFER, sizeof(_transform._transformCamera), (const void*) &_transform._transformCamera, GL_DYNAMIC_DRAW);
|
||||||
|
|
||||||
|
|
||||||
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
glBindBuffer(GL_UNIFORM_BUFFER, 0);
|
||||||
#else
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLBackend::killTransform() {
|
void GLBackend::killTransform() {
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
|
||||||
glDeleteBuffers(1, &_transform._transformObjectBuffer);
|
glDeleteBuffers(1, &_transform._transformObjectBuffer);
|
||||||
glDeleteBuffers(1, &_transform._transformCameraBuffer);
|
glDeleteBuffers(1, &_transform._transformCameraBuffer);
|
||||||
#else
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLBackend::syncTransformStateCache() {
|
void GLBackend::syncTransformStateCache() {
|
||||||
|
@ -106,7 +99,8 @@ void GLBackend::updateTransform() {
|
||||||
_transform._transformCamera._projectionViewUntranslated = _transform._transformCamera._projection * viewUntranslated;
|
_transform._transformCamera._projectionViewUntranslated = _transform._transformCamera._projection * viewUntranslated;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_CORE)
|
// TODO: WE need a ring buffer to do effcient dynamic updates here
|
||||||
|
// FOr now let's just do that bind and update sequence
|
||||||
if (_transform._invalidView || _transform._invalidProj || _transform._invalidViewport) {
|
if (_transform._invalidView || _transform._invalidProj || _transform._invalidViewport) {
|
||||||
glBindBufferBase(GL_UNIFORM_BUFFER, TRANSFORM_CAMERA_SLOT, 0);
|
glBindBufferBase(GL_UNIFORM_BUFFER, TRANSFORM_CAMERA_SLOT, 0);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, _transform._transformCameraBuffer);
|
glBindBuffer(GL_ARRAY_BUFFER, _transform._transformCameraBuffer);
|
||||||
|
@ -126,52 +120,6 @@ void GLBackend::updateTransform() {
|
||||||
glBindBufferBase(GL_UNIFORM_BUFFER, TRANSFORM_OBJECT_SLOT, _transform._transformObjectBuffer);
|
glBindBufferBase(GL_UNIFORM_BUFFER, TRANSFORM_OBJECT_SLOT, _transform._transformObjectBuffer);
|
||||||
glBindBufferBase(GL_UNIFORM_BUFFER, TRANSFORM_CAMERA_SLOT, _transform._transformCameraBuffer);
|
glBindBufferBase(GL_UNIFORM_BUFFER, TRANSFORM_CAMERA_SLOT, _transform._transformCameraBuffer);
|
||||||
CHECK_GL_ERROR();
|
CHECK_GL_ERROR();
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#if (GPU_TRANSFORM_PROFILE == GPU_LEGACY)
|
|
||||||
// Do it again for fixed pipeline until we can get rid of it
|
|
||||||
GLint originalMatrixMode;
|
|
||||||
glGetIntegerv(GL_MATRIX_MODE, &originalMatrixMode);
|
|
||||||
|
|
||||||
if (_transform._invalidProj) {
|
|
||||||
if (_transform._lastMode != GL_PROJECTION) {
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
_transform._lastMode = GL_PROJECTION;
|
|
||||||
}
|
|
||||||
glLoadMatrixf(reinterpret_cast< const GLfloat* >(&_transform._projection));
|
|
||||||
|
|
||||||
(void) CHECK_GL_ERROR();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (_transform._invalidModel || _transform._invalidView) {
|
|
||||||
if (_transform._lastMode != GL_MODELVIEW) {
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
_transform._lastMode = GL_MODELVIEW;
|
|
||||||
}
|
|
||||||
if (!_transform._model.isIdentity()) {
|
|
||||||
Transform::Mat4 modelView;
|
|
||||||
if (!_transform._view.isIdentity()) {
|
|
||||||
Transform mvx;
|
|
||||||
Transform::inverseMult(mvx, _transform._view, _transform._model);
|
|
||||||
mvx.getMatrix(modelView);
|
|
||||||
} else {
|
|
||||||
_transform._model.getMatrix(modelView);
|
|
||||||
}
|
|
||||||
glLoadMatrixf(reinterpret_cast< const GLfloat* >(&modelView));
|
|
||||||
} else if (!_transform._view.isIdentity()) {
|
|
||||||
Transform::Mat4 modelView;
|
|
||||||
_transform._view.getInverseMatrix(modelView);
|
|
||||||
glLoadMatrixf(reinterpret_cast< const GLfloat* >(&modelView));
|
|
||||||
} else {
|
|
||||||
glLoadIdentity();
|
|
||||||
}
|
|
||||||
(void) CHECK_GL_ERROR();
|
|
||||||
}
|
|
||||||
|
|
||||||
glMatrixMode(originalMatrixMode);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Flags are clean
|
// Flags are clean
|
||||||
_transform._invalidView = _transform._invalidProj = _transform._invalidModel = _transform._invalidViewport = false;
|
_transform._invalidView = _transform._invalidProj = _transform._invalidModel = _transform._invalidViewport = false;
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "../GL/glew.h"
|
#include "../GL/glew.h"
|
||||||
|
|
||||||
#define GPU_FEATURE_PROFILE GPU_CORE
|
#define GPU_FEATURE_PROFILE GPU_CORE
|
||||||
#define GPU_TRANSFORM_PROFILE GPU_CORE
|
|
||||||
#define GPU_INPUT_PROFILE GPU_CORE_41
|
#define GPU_INPUT_PROFILE GPU_CORE_41
|
||||||
|
|
||||||
#elif defined(WIN32)
|
#elif defined(WIN32)
|
||||||
|
@ -30,7 +29,6 @@
|
||||||
#include "../GL/wglew.h"
|
#include "../GL/wglew.h"
|
||||||
|
|
||||||
#define GPU_FEATURE_PROFILE GPU_CORE
|
#define GPU_FEATURE_PROFILE GPU_CORE
|
||||||
#define GPU_TRANSFORM_PROFILE GPU_CORE
|
|
||||||
#define GPU_INPUT_PROFILE GPU_CORE_41
|
#define GPU_INPUT_PROFILE GPU_CORE_41
|
||||||
|
|
||||||
#elif defined(ANDROID)
|
#elif defined(ANDROID)
|
||||||
|
@ -40,7 +38,6 @@
|
||||||
#include "../GL/glew.h"
|
#include "../GL/glew.h"
|
||||||
|
|
||||||
#define GPU_FEATURE_PROFILE GPU_CORE
|
#define GPU_FEATURE_PROFILE GPU_CORE
|
||||||
#define GPU_TRANSFORM_PROFILE GPU_CORE
|
|
||||||
#define GPU_INPUT_PROFILE GPU_CORE_41
|
#define GPU_INPUT_PROFILE GPU_CORE_41
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue