This commit is contained in:
Shaun Reed 2025-03-23 17:41:25 -04:00
parent 8eaebee2c6
commit 96a004e029
4 changed files with 10 additions and 15 deletions

View File

@ -482,15 +482,9 @@ void QtkScene::update()
myCube->getTransform().rotate(-0.75f, 0.0f, 1.0f, 0.0f); myCube->getTransform().rotate(-0.75f, 0.0f, 1.0f, 0.0f);
} }
// Helper lambda to set the light position used by GLSL shaders on the model.
// TODO: This could be a helper function on the Model class.
auto setLightPosition = [](const std::string & lightName, Model * model) {
};
QMatrix4x4 posMatrix; QMatrix4x4 posMatrix;
if (auto alien = getModel("alienTest"); alien) { if (auto alien = getModel("alienTest"); alien) {
setLightPosition("alienTestLight", alien); alien->setLightPosition("alienTestLight");
alien->setUniform("uCameraPosition", cameraPosition); alien->setUniform("uCameraPosition", cameraPosition);
posMatrix = alien->getTransform().toMatrix(); posMatrix = alien->getTransform().toMatrix();
@ -502,7 +496,7 @@ void QtkScene::update()
} }
if (auto spartan = getModel("spartanTest"); spartan) { if (auto spartan = getModel("spartanTest"); spartan) {
setLightPosition("spartanTestLight", spartan); spartan->setLightPosition("spartanTestLight");
spartan->setUniform("uCameraPosition", cameraPosition); spartan->setUniform("uCameraPosition", cameraPosition);
posMatrix = spartan->getTransform().toMatrix(); posMatrix = spartan->getTransform().toMatrix();
@ -514,7 +508,7 @@ void QtkScene::update()
} }
if (auto phong = getModel("testPhong"); phong) { if (auto phong = getModel("testPhong"); phong) {
setLightPosition("testLight", phong); phong->setLightPosition("testLight");
phong->getTransform().rotate(0.75f, 1.0f, 0.5f, 0.0f); phong->getTransform().rotate(0.75f, 1.0f, 0.5f, 0.0f);
phong->bindShaders(); phong->bindShaders();

View File

@ -123,8 +123,8 @@ void ToolBox::refreshProperties(const Object * object)
void ToolBox::refreshShaders(const Object * object) void ToolBox::refreshShaders(const Object * object)
{ {
vertex_.path.setItem(object->getVertexShader().c_str()); vertex_.path.setValue(object->getVertexShader().c_str());
vertex_.editor->setText(object->getVertexShaderSourceCode().c_str()); vertex_.editor->setText(object->getVertexShaderSourceCode().c_str());
fragment_.path.setItem(object->getFragmentShader().c_str()); fragment_.path.setValue(object->getFragmentShader().c_str());
fragment_.editor->setText(object->getFragmentShaderSourceCode().c_str()); fragment_.editor->setText(object->getFragmentShaderSourceCode().c_str());
} }

View File

@ -63,10 +63,9 @@ namespace Qtk
label(new QLabel(tr(l), parent)), label(new QLabel(tr(l), parent)),
value(new QLabel(tr(v), parent)) value(new QLabel(tr(v), parent))
{ {
value->setText(v);
} }
void setItem(const QString & v) { setItem(label->text(), v); } void setValue(const QString & v) { value->setText(v); }
void setItem(const QString & l, const QString & v) void setItem(const QString & l, const QString & v)
{ {
@ -121,7 +120,7 @@ namespace Qtk
explicit SpinBox3D(QWidget * parent, const char * l = "SpinBox3D:"); explicit SpinBox3D(QWidget * parent, const char * l = "SpinBox3D:");
/// The main layout for the SpinBox3D widget. /// The main layout for the SpinBox3D widget.
QHBoxLayout * layout {this}; QHBoxLayout * layout;
/// Label for the SpinBox3D. /// Label for the SpinBox3D.
QLabel * label; QLabel * label;
@ -161,7 +160,7 @@ namespace Qtk
class ShaderView final : QWidget class ShaderView final : QWidget
{ {
public: public:
explicit ShaderView(QWidget * parent = nullptr, explicit ShaderView(QWidget * parent,
const char * l = "ShaderView:") : const char * l = "ShaderView:") :
layout(new QVBoxLayout(this)), path(parent, l), layout(new QVBoxLayout(this)), path(parent, l),
editor(new QTextEdit(parent)) editor(new QTextEdit(parent))

View File

@ -251,6 +251,8 @@ namespace Qtk
/** /**
* Helper to disconnect a QObject connection, only if it's valid. * Helper to disconnect a QObject connection, only if it's valid.
* If the connection is valid and we fail to disconnect log a message. * If the connection is valid and we fail to disconnect log a message.
*
* @param con QObject connection handle to disconnect.
*/ */
static void disconnect(const QMetaObject::Connection & con) static void disconnect(const QMetaObject::Connection & con)
{ {