feat: try to tilt the window in the direction of movement, broken!

This commit is contained in:
Matias 2025-07-11 23:22:39 +02:00
parent 29b5bd78e4
commit 734911c395
No known key found for this signature in database
GPG Key ID: ED35A6AC65A06B69

View File

@ -23,7 +23,7 @@ class CWindowTransformer: public IWindowTransformer {
virtual void preWindowRender(CSurfacePassElement::SRenderData* pRenderData); virtual void preWindowRender(CSurfacePassElement::SRenderData* pRenderData);
private: private:
float rot = 0; float m_rot = 0;
Vector2D m_prevPos; Vector2D m_prevPos;
}; };
@ -50,17 +50,12 @@ void renderTex(CBox monbox, CTexture& tex, float rot) {
glUseProgram(shader->program); glUseProgram(shader->program);
#ifndef GLES2
glUniformMatrix3fv( glUniformMatrix3fv(
shader->uniformLocations[SHADER_PROJ], shader->uniformLocations[SHADER_PROJ],
1, 1,
GL_TRUE, GL_TRUE,
glMatrix.getMatrix().data() glMatrix.getMatrix().data()
); );
#else
glMatrix.transpose();
glUniformMatrix3fv(shader->proj, 1, GL_FALSE, glMatrix.getMatrix().data());
#endif
glUniform1i(shader->uniformLocations[SHADER_TEX], 0); glUniform1i(shader->uniformLocations[SHADER_TEX], 0);
const auto TOPLEFT = Vector2D(newBox.x, newBox.y); const auto TOPLEFT = Vector2D(newBox.x, newBox.y);
@ -113,11 +108,10 @@ void CWindowTransformer::preWindowRender(CSurfacePassElement::SRenderData* pRend
auto delta = newPos - m_prevPos; auto delta = newPos - m_prevPos;
rot = delta.x * 9999; m_rot = delta.x * 0.01f;
rot = 30; std::println("delta.x: {}", delta.x);
std::println("{}", rot);
pRenderData->pos.x += 50; // pRenderData->pos.x += 50;
pRenderData->rounding = 5; pRenderData->rounding = 5;
pRenderData->alpha = 0.9; pRenderData->alpha = 0.9;
@ -135,16 +129,15 @@ CFramebuffer* CWindowTransformer::transform(CFramebuffer* in) {
off.bind(); off.bind();
g_pHyprOpenGL->clear(CHyprColor {0, 0, 0, 0}); g_pHyprOpenGL->clear(CHyprColor {0, 0, 0, 0});
CBox monbox = { CBox monbox = {// m_prevPos.x,
m_prevPos.x, // m_prevPos.y,
m_prevPos.y, 0,
0,
g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.x,
g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.y g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.y
}; };
renderTex(monbox, *in->getTexture(), rot); renderTex(monbox, *in->getTexture(), m_rot);
rot += 0.01;
return &off; return &off;
} }
@ -155,10 +148,6 @@ void onNewWindow(std::any data) {
ptrs.push_back(static_cast<CWindowTransformer*>( ptrs.push_back(static_cast<CWindowTransformer*>(
PWINDOW->m_transformers.emplace_back(new CWindowTransformer {}).get() PWINDOW->m_transformers.emplace_back(new CWindowTransformer {}).get()
)); ));
HyprlandAPI::addNotification(PHANDLE, "onnewwindow", CHyprColor {0.f, 1.f, 1.f, 1.f}, 5000);
std::println("onnewwindow");
Debug::log(ERR, "Hit the function.");
} }
static SP<HOOK_CALLBACK_FN> g_p = nullptr; static SP<HOOK_CALLBACK_FN> g_p = nullptr;