diff --git a/Engine/source/gfx/gl/gfxGLDevice.cpp b/Engine/source/gfx/gl/gfxGLDevice.cpp index afa7ac4ec..27b910546 100644 --- a/Engine/source/gfx/gl/gfxGLDevice.cpp +++ b/Engine/source/gfx/gl/gfxGLDevice.cpp @@ -134,7 +134,8 @@ void GFXGLDevice::initGLState() mCardProfiler = new GFXGLCardProfiler(); mCardProfiler->init(); glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, (GLint*)&mMaxShaderTextures); - glGetIntegerv(GL_MAX_TEXTURE_UNITS, (GLint*)&mMaxFFTextures); + // JTH: Needs removed, ffp + //glGetIntegerv(GL_MAX_TEXTURE_UNITS, (GLint*)&mMaxFFTextures); glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, (GLint*)&mMaxTRColors); mMaxTRColors = getMin( mMaxTRColors, (U32)(GFXTextureTarget::MaxRenderSlotId-1) ); @@ -641,7 +642,7 @@ void GFXGLDevice::setLightMaterialInternal(const GFXLightMaterial mat) void GFXGLDevice::setGlobalAmbientInternal(ColorF color) { - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, (GLfloat*)&color); + // ONLY NEEDED ON FFP } void GFXGLDevice::setTextureInternal(U32 textureUnit, const GFXTextureObject*texture) @@ -697,12 +698,12 @@ void GFXGLDevice::setClipRect( const RectI &inRect ) const F32 right = mClip.point.x + mClip.extent.x; const F32 bottom = mClip.extent.y; const F32 top = 0.0f; - const F32 near = 0.0f; - const F32 far = 1.0f; + const F32 nearPlane = 0.0f; + const F32 farPlane = 1.0f; const F32 tx = -(right + left)/(right - left); const F32 ty = -(top + bottom)/(top - bottom); - const F32 tz = -(far + near)/(far - near); + const F32 tz = -(farPlane + nearPlane)/(farPlane - nearPlane); static Point4F pt; pt.set(2.0f / (right - left), 0.0f, 0.0f, 0.0f); @@ -711,7 +712,7 @@ void GFXGLDevice::setClipRect( const RectI &inRect ) pt.set(0.0f, 2.0f/(top - bottom), 0.0f, 0.0f); mProjectionMatrix.setColumn(1, pt); - pt.set(0.0f, 0.0f, -2.0f/(far - near), 0.0f); + pt.set(0.0f, 0.0f, -2.0f/(farPlane - nearPlane), 0.0f); mProjectionMatrix.setColumn(2, pt); pt.set(tx, ty, tz, 1.0f); diff --git a/Engine/source/gfx/gl/tGL/tGL.cpp b/Engine/source/gfx/gl/tGL/tGL.cpp index d56faa05e..b13fec60a 100644 --- a/Engine/source/gfx/gl/tGL/tGL.cpp +++ b/Engine/source/gfx/gl/tGL/tGL.cpp @@ -33,11 +33,10 @@ namespace GL { void gglPerformBinds() { - // JTH: epoxy has one oddity with windows. You need to bind the context - // after creating the context to udpate the internals of epoxy. -#ifdef TORQUE_OS_WIN - epoxy_handle_external_wglMakeCurrent(); -#endif + if (!gladLoadGL()) + { + AssertFatal(false, "Unable to load GLAD. Make sure your OpenGL drivers are up to date!"); + } } void gglPerformExtensionBinds(void *context) diff --git a/Engine/source/gfx/gl/tGL/tGL.h b/Engine/source/gfx/gl/tGL/tGL.h index 8a0731ae5..9d09ed3d7 100644 --- a/Engine/source/gfx/gl/tGL/tGL.h +++ b/Engine/source/gfx/gl/tGL/tGL.h @@ -23,11 +23,10 @@ #ifndef T_GL_H #define T_GL_H -#include +#include -// JTH: This is slow, we should probably check extensions once and cache them -// directly inside of some compatability table. -#define gglHasExtension(EXTENSION) epoxy_has_gl_extension("GL_" #EXTENSION) +// JTH: When we use glad, extensions are chached into simple booleans (ints) +#define gglHasExtension(EXTENSION) GLAD_GL_##EXTENSION #endif diff --git a/Engine/source/gfx/gl/tGL/tWGL.h b/Engine/source/gfx/gl/tGL/tWGL.h index 18025e886..5dbf1da68 100644 --- a/Engine/source/gfx/gl/tGL/tWGL.h +++ b/Engine/source/gfx/gl/tGL/tWGL.h @@ -28,9 +28,9 @@ #ifdef TORQUE_OPENGL #include "tGL.h" -#include +#include -#define gglHasWExtension(window, EXTENSION) epoxy_has_wgl_extension(window, "WGL_" # EXTENSION) +#define gglHasWExtension(window, EXTENSION) GLAD_WGL_##EXTENSION #endif //TORQUE_OPENGL diff --git a/Engine/source/gfx/gl/tGL/tXGL.h b/Engine/source/gfx/gl/tGL/tXGL.h index 5e0804840..06cc39ade 100644 --- a/Engine/source/gfx/gl/tGL/tXGL.h +++ b/Engine/source/gfx/gl/tGL/tXGL.h @@ -28,9 +28,9 @@ #ifdef TORQUE_OS_LINUX #include "tGL.h" -#include +#include -#define gglHasXExtension(display, screen, EXTENSION) epoxy_has_glx_extension(display, screen, "GLX_" # EXTENSION) +#define gglHasXExtension(display, screen, EXTENSION) #endif //TORQUE_OS_LINUX