Browse Source

Fix pure opengl3 build

pull/357/head
falkTX 3 years ago
parent
commit
6d983cbfe7
3 changed files with 25 additions and 1 deletions
  1. +8
    -0
      dgl/OpenGL.hpp
  2. +1
    -1
      dgl/src/NanoVG.cpp
  3. +16
    -0
      dgl/src/OpenGL.cpp

+ 8
- 0
dgl/OpenGL.hpp View File

@@ -129,7 +129,11 @@ ImageFormat asDISTRHOImageFormat(const GLenum format)
{
switch (format)
{
#ifdef DGL_USE_OPENGL3
case GL_RED:
#else
case GL_LUMINANCE:
#endif
return kImageFormatGrayscale;
case GL_BGR:
return kImageFormatBGR;
@@ -152,7 +156,11 @@ GLenum asOpenGLImageFormat(const ImageFormat format)
case kImageFormatNull:
break;
case kImageFormatGrayscale:
#ifdef DGL_USE_OPENGL3
return GL_RED;
#else
return GL_LUMINANCE;
#endif
case kImageFormatBGR:
return GL_BGR;
case kImageFormatBGRA:


+ 1
- 1
dgl/src/NanoVG.cpp View File

@@ -88,7 +88,7 @@ DGL_EXT(PFNGLUNIFORMBLOCKBINDINGPROC, glUniformBlockBinding)
# define NANOVG_GL2_IMPLEMENTATION
#endif

#if defined(DISTRHO_OS_MAC) && defined(NANOVG_GL3_IMPLEMENTATION)
#if defined(DISTRHO_OS_MAC) && defined(NANOVG_GL2_IMPLEMENTATION)
# define glBindVertexArray glBindVertexArrayAPPLE
# define glDeleteVertexArrays glDeleteVertexArraysAPPLE
# define glGenVertexArrays glGenVertexArraysAPPLE


+ 16
- 0
dgl/src/OpenGL.cpp View File

@@ -38,10 +38,12 @@ START_NAMESPACE_DGL

void Color::setFor(const GraphicsContext&, const bool includeAlpha)
{
#ifndef DGL_USE_OPENGL3
if (includeAlpha)
glColor4f(red, green, blue, alpha);
else
glColor3f(red, green, blue);
#endif
}

// -----------------------------------------------------------------------
@@ -52,6 +54,7 @@ static void drawLine(const Point<T>& posStart, const Point<T>& posEnd)
{
DISTRHO_SAFE_ASSERT_RETURN(posStart != posEnd,);

#ifndef DGL_USE_OPENGL3
glBegin(GL_LINES);

{
@@ -60,6 +63,7 @@ static void drawLine(const Point<T>& posStart, const Point<T>& posEnd)
}

glEnd();
#endif
}

template<typename T>
@@ -102,6 +106,7 @@ static void drawCircle(const Point<T>& pos,
const T origy = pos.getY();
double t, x = size, y = 0.0;

#ifndef DGL_USE_OPENGL3
glBegin(outline ? GL_LINE_LOOP : GL_POLYGON);

for (uint i=0; i<numSegments; ++i)
@@ -114,6 +119,7 @@ static void drawCircle(const Point<T>& pos,
}

glEnd();
#endif
}

template<typename T>
@@ -162,6 +168,7 @@ static void drawTriangle(const Point<T>& pos1,
{
DISTRHO_SAFE_ASSERT_RETURN(pos1 != pos2 && pos1 != pos3,);

#ifndef DGL_USE_OPENGL3
glBegin(outline ? GL_LINE_LOOP : GL_TRIANGLES);

{
@@ -171,6 +178,7 @@ static void drawTriangle(const Point<T>& pos1,
}

glEnd();
#endif
}

template<typename T>
@@ -216,6 +224,7 @@ static void drawRectangle(const Rectangle<T>& rect, const bool outline)
{
DISTRHO_SAFE_ASSERT_RETURN(rect.isValid(),);

#ifndef DGL_USE_OPENGL3
glBegin(outline ? GL_LINE_LOOP : GL_QUADS);

{
@@ -238,6 +247,7 @@ static void drawRectangle(const Rectangle<T>& rect, const bool outline)
}

glEnd();
#endif
}

template<typename T>
@@ -316,11 +326,14 @@ static void drawOpenGLImage(const OpenGLImage& image, const Point<int>& pos, con
setupCalled = true;
}

#ifndef DGL_USE_OPENGL3
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
#endif

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, textureId);

#ifndef DGL_USE_OPENGL3
glBegin(GL_QUADS);

{
@@ -343,6 +356,7 @@ static void drawOpenGLImage(const OpenGLImage& image, const Point<int>& pos, con
}

glEnd();
#endif

glBindTexture(GL_TEXTURE_2D, 0);
glDisable(GL_TEXTURE_2D);
@@ -528,6 +542,7 @@ void ImageBaseKnob<OpenGLImage>::onDisplay()
pData->isReady = true;
}

#ifndef DGL_USE_OPENGL3
const int w = static_cast<int>(getWidth());
const int h = static_cast<int>(getHeight());

@@ -549,6 +564,7 @@ void ImageBaseKnob<OpenGLImage>::onDisplay()
{
Rectangle<int>(0, 0, w, h).draw(context);
}
#endif

glBindTexture(GL_TEXTURE_2D, 0);
glDisable(GL_TEXTURE_2D);


Loading…
Cancel
Save