opengl: publicize shader creation/usage functions (#10378)

Allows plugins to create and use shaders again
This commit is contained in:
outfoxxed 2025-05-12 05:15:47 -07:00 committed by GitHub
parent 04124988e8
commit da3583fd5e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -240,6 +240,11 @@ class CHyprOpenGLImpl {
EGLImageKHR createEGLImage(const Aquamarine::SDMABUFAttrs& attrs); EGLImageKHR createEGLImage(const Aquamarine::SDMABUFAttrs& attrs);
bool initShaders(); bool initShaders();
GLuint createProgram(const std::string&, const std::string&, bool dynamic = false, bool silent = false);
GLuint compileShader(const GLuint&, std::string, bool dynamic = false, bool silent = false);
void useProgram(GLuint prog);
bool m_shadersInitialized = false; bool m_shadersInitialized = false;
SP<SPreparedShaders> m_shaders; SP<SPreparedShaders> m_shaders;
@ -321,15 +326,12 @@ class CHyprOpenGLImpl {
SP<CTexture> m_lockTtyTextTexture; // TODO: don't always load lock SP<CTexture> m_lockTtyTextTexture; // TODO: don't always load lock
void logShaderError(const GLuint&, bool program = false, bool silent = false); void logShaderError(const GLuint&, bool program = false, bool silent = false);
GLuint createProgram(const std::string&, const std::string&, bool dynamic = false, bool silent = false);
GLuint compileShader(const GLuint&, std::string, bool dynamic = false, bool silent = false);
void createBGTextureForMonitor(PHLMONITOR); void createBGTextureForMonitor(PHLMONITOR);
void initDRMFormats(); void initDRMFormats();
void initEGL(bool gbm); void initEGL(bool gbm);
EGLDeviceEXT eglDeviceFromDRMFD(int drmFD); EGLDeviceEXT eglDeviceFromDRMFD(int drmFD);
void initAssets(); void initAssets();
void initMissingAssetTexture(); void initMissingAssetTexture();
void useProgram(GLuint prog);
// //
std::optional<std::vector<uint64_t>> getModsForFormat(EGLint format); std::optional<std::vector<uint64_t>> getModsForFormat(EGLint format);