Browse Source

Fixing ProM GL2/3 conflicts

tags/v1.5
falkTX 3 years ago
parent
commit
75fde6c407
7 changed files with 50 additions and 9 deletions
  1. +1
    -1
      .github/workflows/build.yml
  2. +8
    -0
      dpf/dgl/OpenGL.hpp
  3. +1
    -1
      dpf/dgl/src/NanoVG.cpp
  4. +16
    -0
      dpf/dgl/src/OpenGL.cpp
  5. +12
    -6
      plugins/ProM/DistrhoUIProM.cpp
  6. +10
    -1
      plugins/ProM/DistrhoUIProM.hpp
  7. +2
    -0
      plugins/ProM/ResizeHandle.hpp

+ 1
- 1
.github/workflows/build.yml View File

@@ -175,7 +175,7 @@ jobs:
!bin/vst3 !bin/vst3


win32: win32:
runs-on: ubuntu-20.04
runs-on: ubuntu-18.04
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:


+ 8
- 0
dpf/dgl/OpenGL.hpp View File

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


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

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


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


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

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


void Color::setFor(const GraphicsContext&, const bool includeAlpha) void Color::setFor(const GraphicsContext&, const bool includeAlpha)
{ {
#ifndef DGL_USE_OPENGL3
if (includeAlpha) if (includeAlpha)
glColor4f(red, green, blue, alpha); glColor4f(red, green, blue, alpha);
else else
glColor3f(red, green, blue); 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,); DISTRHO_SAFE_ASSERT_RETURN(posStart != posEnd,);


#ifndef DGL_USE_OPENGL3
glBegin(GL_LINES); glBegin(GL_LINES);


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


glEnd(); glEnd();
#endif
} }


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


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


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


glEnd(); glEnd();
#endif
} }


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


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


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


glEnd(); glEnd();
#endif
} }


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


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


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


glEnd(); glEnd();
#endif
} }


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


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


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


#ifndef DGL_USE_OPENGL3
glBegin(GL_QUADS); glBegin(GL_QUADS);


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


glEnd(); glEnd();
#endif


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


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


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


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


+ 12
- 6
plugins/ProM/DistrhoUIProM.cpp View File

@@ -93,17 +93,23 @@ static String getCurrentExecutableDataDir()


DistrhoUIProM::DistrhoUIProM() DistrhoUIProM::DistrhoUIProM()
: UI(512, 512), : UI(512, 512),
fPM(nullptr),
fResizeHandle(this)
fPM(nullptr)
#ifndef DGL_USE_OPENGL3
, fResizeHandle(this)
#endif
{ {
// const double scaleFactor = getScaleFactor();
// if (d_isNotZero(scaleFactor))
// setSize(512*scaleFactor, 512*scaleFactor)
setGeometryConstraints(256, 256, true);
const double scaleFactor = getScaleFactor();

if (d_isNotZero(scaleFactor))
setSize(512*scaleFactor, 512*scaleFactor);

setGeometryConstraints(256*scaleFactor, 256*scaleFactor, true);


// no need to show resize handle if window is user-resizable // no need to show resize handle if window is user-resizable
#ifndef DGL_USE_OPENGL3
// if (isResizable()) // if (isResizable())
// fResizeHandle.hide(); // fResizeHandle.hide();
#endif
} }


DistrhoUIProM::~DistrhoUIProM() DistrhoUIProM::~DistrhoUIProM()


+ 10
- 1
plugins/ProM/DistrhoUIProM.hpp View File

@@ -17,8 +17,15 @@
#ifndef DISTRHO_UI_PROM_HPP_INCLUDED #ifndef DISTRHO_UI_PROM_HPP_INCLUDED
#define DISTRHO_UI_PROM_HPP_INCLUDED #define DISTRHO_UI_PROM_HPP_INCLUDED


#ifdef DISTRHO_OS_MAC
# define DGL_USE_OPENGL3
#endif

#include "DistrhoUI.hpp" #include "DistrhoUI.hpp"
#include "ResizeHandle.hpp"

#ifndef DGL_USE_OPENGL3
# include "ResizeHandle.hpp"
#endif


class projectM; class projectM;


@@ -52,7 +59,9 @@ protected:


private: private:
ScopedPointer<projectM> fPM; ScopedPointer<projectM> fPM;
#ifndef DGL_USE_OPENGL3
ResizeHandle fResizeHandle; ResizeHandle fResizeHandle;
#endif


DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUIProM) DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUIProM)
}; };


+ 2
- 0
plugins/ProM/ResizeHandle.hpp View File

@@ -58,7 +58,9 @@ protected:


#ifdef DGL_OPENGL #ifdef DGL_OPENGL
glUseProgram(0); glUseProgram(0);
# ifndef DGL_USE_OPENGL3
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
# endif
#endif #endif


// draw white lines, 1px wide // draw white lines, 1px wide


Loading…
Cancel
Save