mirror of
https://github.com/hyprwm/aquamarine.git
synced 2026-05-05 07:08:00 +02:00
renderer: ensure same program is used once
ensure we only call glUseProgram on same program once.
This commit is contained in:
parent
ea02583af6
commit
30087dcda2
2 changed files with 10 additions and 1 deletions
|
|
@ -249,6 +249,13 @@ std::optional<std::vector<std::pair<uint64_t, bool>>> CDRMRenderer::getModsForFo
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CDRMRenderer::useProgram(GLuint prog) {
|
||||||
|
if (m_currentProgram == prog)
|
||||||
|
return;
|
||||||
|
|
||||||
|
GLCALL(glUseProgram(prog));
|
||||||
|
}
|
||||||
|
|
||||||
bool CDRMRenderer::initDRMFormats() {
|
bool CDRMRenderer::initDRMFormats() {
|
||||||
std::vector<EGLint> formats;
|
std::vector<EGLint> formats;
|
||||||
|
|
||||||
|
|
@ -1004,7 +1011,7 @@ CDRMRenderer::SBlitResult CDRMRenderer::blit(SP<IBuffer> from, SP<IBuffer> to, S
|
||||||
if (!intermediateBuf.empty())
|
if (!intermediateBuf.empty())
|
||||||
GLCALL(glTexImage2D(fromTex.target, 0, PIXEL_BUFFER_FORMAT, fromDma.size.x, fromDma.size.y, 0, PIXEL_BUFFER_FORMAT, GL_UNSIGNED_BYTE, intermediateBuf.data()));
|
GLCALL(glTexImage2D(fromTex.target, 0, PIXEL_BUFFER_FORMAT, fromDma.size.x, fromDma.size.y, 0, PIXEL_BUFFER_FORMAT, GL_UNSIGNED_BYTE, intermediateBuf.data()));
|
||||||
|
|
||||||
GLCALL(glUseProgram(SHADER.program));
|
useProgram(SHADER.program);
|
||||||
GLCALL(glDisable(GL_BLEND));
|
GLCALL(glDisable(GL_BLEND));
|
||||||
GLCALL(glDisable(GL_SCISSOR_TEST));
|
GLCALL(glDisable(GL_SCISSOR_TEST));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -200,6 +200,8 @@ namespace Aquamarine {
|
||||||
bool initDRMFormats();
|
bool initDRMFormats();
|
||||||
std::optional<std::vector<std::pair<uint64_t, bool>>> getModsForFormat(EGLint format);
|
std::optional<std::vector<std::pair<uint64_t, bool>>> getModsForFormat(EGLint format);
|
||||||
bool hasModifiers = false;
|
bool hasModifiers = false;
|
||||||
|
void useProgram(GLuint prog);
|
||||||
|
GLuint m_currentProgram = 0;
|
||||||
|
|
||||||
Hyprutils::Memory::CWeakPointer<CBackend> backend;
|
Hyprutils::Memory::CWeakPointer<CBackend> backend;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue