renderer: untransform textures matching display transform

fixes #6754

This will break if the client uses a transform that is not equal to the display, reverting to old behavior. Combining transforms is left as a todo for the future.
This commit is contained in:
Vaxry
2024-07-22 13:01:55 +02:00
parent 5979ceb56b
commit 1797319a07
3 changed files with 18 additions and 8 deletions

View File

@@ -2,9 +2,11 @@
#include "../defines.hpp"
#include <aquamarine/buffer/Buffer.hpp>
#include <hyprutils/math/Misc.hpp>
class IHLBuffer;
HYPRUTILS_FORWARD(Math, CRegion);
using namespace Hyprutils::Math;
enum TEXTURETYPE {
TEXTURE_INVALID, // Invalid
@@ -33,11 +35,12 @@ class CTexture {
void allocate();
void update(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const CRegion& damage);
TEXTURETYPE m_iType = TEXTURE_RGBA;
GLenum m_iTarget = GL_TEXTURE_2D;
GLuint m_iTexID = 0;
Vector2D m_vSize;
void* m_pEglImage = nullptr;
TEXTURETYPE m_iType = TEXTURE_RGBA;
GLenum m_iTarget = GL_TEXTURE_2D;
GLuint m_iTexID = 0;
Vector2D m_vSize = {};
void* m_pEglImage = nullptr;
eTransform m_eTransform = HYPRUTILS_TRANSFORM_NORMAL;
private:
void createFromShm(uint32_t drmFormat, uint8_t* pixels, uint32_t stride, const Vector2D& size);