[shaderz] r32 committed - * Added material editor dialog and button to access it...

3 views
Skip to first unread message

sha...@googlecode.com

unread,
Sep 26, 2010, 2:44:05 PM9/26/10
to shade...@googlegroups.com
Revision: 32
Author: vijay.michaeljoseph
Date: Sun Sep 26 11:43:10 2010
Log: * Added material editor dialog and button to access it
* The material editor has a default group box that will act as the host for
material previews
* Added material preview widgets
* Improved on shader parameter ui
* Added a button to end of parameter ui that allows conversion to the
supported standard types like Time, ModelView matrix etc
http://code.google.com/p/shaderz/source/detail?r=32

Added:
/trunk/data/icons
/trunk/data/icons/arrow.png
/trunk/include/qt/qtmaterialeditor.h
/trunk/include/qt/qtmaterialpreview.h
/trunk/src/qt/qtmaterialeditor.cpp
/trunk/src/qt/qtmaterialpreview.cpp
Modified:
/trunk/CMakeLists.txt
/trunk/include/qt/qtmainwindow.h
/trunk/include/qt/qtshaderparameterwidget.h
/trunk/include/shshaderinterface.h
/trunk/shaderz.xcodeproj/project.pbxproj
/trunk/shaderz.xcodeproj/vijayjoseph.mode1v3
/trunk/shaderz.xcodeproj/vijayjoseph.pbxuser
/trunk/src/qt/qtmainwindow.cpp
/trunk/src/qt/qtshaderparameterwidget.cpp
/trunk/src/shshaderinterface.cpp

=======================================
--- /dev/null
+++ /trunk/data/icons/arrow.png Sun Sep 26 11:43:10 2010
@@ -0,0 +1,10 @@
+‰PNG
+
+
+IHDR
+
+ 2Ͻ sRGB ®Î
+é bKGD ÿ ÿ ÿ ½§“ pHYs šœ tIME Ú
9Ïi×B "tEXtComment Created with GIMP on a Mac‡¨wC `IDAT Óc` 
BM" Ã †ex µAÕ0\
+2̰(b‡ÊÕÀ ¾Ãt¡ û G X¡
+7"‰­Á¡™Á
+*QÆÀÀ e÷ârx9TÁ †¿„‚b3Ta ² Èý Fd¨¾õ IEND®B`‚
=======================================
--- /dev/null
+++ /trunk/include/qt/qtmaterialeditor.h Sun Sep 26 11:43:10 2010
@@ -0,0 +1,36 @@
+/*
+ * qtmaterialeditor.h
+ * shaderz
+ *
+ * Material Editor functionality for shaderz
+ *
+ * Created by Vijay Michael Joseph on 9/27/10.
+ * EMail: shade...@googlegroups.com
+ *
+ */
+
+#ifndef __QT_MATERIAL_EDITOR_H__
+#define __QT_MATERIAL_EDITOR_H__
+
+#include <QDialog>
+
+class QGroupBox;
+
+namespace Shaderz
+{
+ class qtMaterialEditor : public QDialog
+ {
+ Q_OBJECT
+
+ public:
+ qtMaterialEditor(QWidget* InParent);
+
+ protected:
+ QGroupBox* m_pMaterialPreviewContainer;
+
+ private:
+ typedef QDialog ParentClass;
+ };
+}
+
+#endif
=======================================
--- /dev/null
+++ /trunk/include/qt/qtmaterialpreview.h Sun Sep 26 11:43:10 2010
@@ -0,0 +1,53 @@
+/*
+ * qtmaterialpreview.h
+ * shaderz
+ *
+ * Material Preview widget
+ *
+ * Created by Vijay Michael Joseph on 9/27/10.
+ * EMail: shade...@googlegroups.com
+ *
+ */
+
+#ifndef __QT_MATERIAL_PREVIEW_H__
+#define __QT_MATERIAL_PREVIEW_H__
+
+#include <qt/qtshaderzviewwidget.h>
+
+namespace Shaderz
+{
+ class shMaterial;
+
+ /**
+ * This class will hold the code for displaying the material instance
preview in the material editor.
+ */
+ class qtMaterialPreview : public qtShaderzViewWidget
+ {
+ public:
+ qtMaterialPreview( QWidget * pParent = 0,
+ const char * pName = 0,
+ const QGLWidget * pShareWidget = 0,
+ WindowFlags f = 0,
+ std::string sSceneFilePath = ""
+ );
+
+ protected:
+ virtual void drawSelectionBox(void);
+ virtual void setSelected(bool bIsSelected = true);
+ virtual void loadScene(std::string);
+ virtual void setShader(shMaterial* shader);
+
+ protected: // events
+ virtual void mousePressEvent ( QMouseEvent * e );
+ virtual void paintGL();
+
+ protected:
+ bool m_bIsSelected;
+
+ private:
+ typedef qtShaderzViewWidget ParentClass;
+ };
+}
+
+#endif
+
=======================================
--- /dev/null
+++ /trunk/src/qt/qtmaterialeditor.cpp Sun Sep 26 11:43:10 2010
@@ -0,0 +1,53 @@
+/*
+ * qtmaterialeditor.cpp
+ * shaderz
+ *
+ * Created by Vijay Michael Joseph on 9/27/10.
+ * EMail: shade...@googlegroups.com
+ *
+ */
+
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QGroupBox>
+
+#include "qt/qtmaterialeditor.h"
+#include "qt/qtmaterialpreview.h"
+
+using namespace Shaderz;
+
+qtMaterialEditor::qtMaterialEditor(QWidget* InParent)
+ : ParentClass(InParent)
+{
+ QVBoxLayout* vLayout = new QVBoxLayout;
+
+ // create the material preview container
+ m_pMaterialPreviewContainer = new QGroupBox("Material Preview", this);
+ vLayout->addWidget( m_pMaterialPreviewContainer );
+
+ QHBoxLayout* containerLayout = new QHBoxLayout;
+ int previewIndex;
+ for( previewIndex=0; previewIndex < 10; ++previewIndex )
+ {
+ qtMaterialPreview* newPreviewWidget = new qtMaterialPreview(this);
+ newPreviewWidget->setMaximumSize(50,50);
+ containerLayout->addWidget( newPreviewWidget );
+ }
+ if( m_pMaterialPreviewContainer->layout() )
+ {
+ delete m_pMaterialPreviewContainer->layout();
+ }
+ m_pMaterialPreviewContainer->setLayout(containerLayout);
+
+
+ // set the new layout
+ if( layout() )
+ {
+ delete layout();
+ }
+ setLayout(vLayout);
+
+ // initialize window size and caption
+ setGeometry(100, 100, 700, 500);
+ setWindowTitle("shaderz - Material Editor");
+}
=======================================
--- /dev/null
+++ /trunk/src/qt/qtmaterialpreview.cpp Sun Sep 26 11:43:10 2010
@@ -0,0 +1,106 @@
+/*
+ * qtmaterialpreview.cpp
+ * shaderz
+ *
+ * Created by Vijay Michael Joseph on 9/27/10.
+ * EMail: shade...@googlegroups.com
+ *
+ */
+
+#include "qt/qtmaterialpreview.h"
+#include "shmaterial.h"
+#include "shlogger.h"
+
+#include <osg/PolygonMode>
+#include <osg/Geode>
+#include <osg/ShapeDrawable>
+
+using namespace Shaderz;
+
+qtMaterialPreview::qtMaterialPreview( QWidget * pParent,
+ const char * pName,
+ const QGLWidget * pShareWidget,
+ WindowFlags f,
+ std::string sSceneFilePath)
+ : ParentClass(pParent, pName, pShareWidget, f, sSceneFilePath),
+ m_bIsSelected(false)
+{
+ // load scene. This class will load a sphere from 3ds file for now.
+ // todo: avoid loading a 3ds file and generate a sphere of your own
+ if( sSceneFilePath.length() == 0 )
+ {
+ loadScene("../../../data/sphere.3ds");
+ }
+}
+
+void qtMaterialPreview::loadScene(std::string strModelPath)
+{
+ ParentClass::loadScene(strModelPath);
+ // osg::ref_ptr<osg::Geode> node = new osg::Geode;
+ // node->addDrawable(new osg::ShapeDrawable(new
osg::Sphere(osg::Vec3(0.0,0.0,0.0), 100)));
+
+ //m_pRoot = node;
+}
+
+void qtMaterialPreview::drawSelectionBox(void)
+{
+ const int viewportSize = width(); // assume that it is a square (hence
width = height)
+ const int border = 3;
+ const int xMin = border;
+ const int yMin = border;
+ const int xMax = viewportSize - border;
+ const int yMax = viewportSize - border;
+
+ // draw on a viewport of fixed size (this is independent of the widget
size)
+ glViewport( 0, 0, viewportSize, viewportSize );
+ glMatrixMode( GL_PROJECTION );
+ glLoadIdentity();
+ glOrtho( 0, viewportSize, 0, viewportSize, 0.1, 1000 );
+
+ glMatrixMode( GL_MODELVIEW );
+ glLoadIdentity();
+ glTranslatef(0,0,-1);
+ glColor3f(1,1,1);
+
+ // finally draw the selection box
+ glBegin(GL_LINE_STRIP);
+ glVertex2f(xMin, yMin);
+ glVertex2f(xMax, yMin);
+ glVertex2f(xMax, yMax);
+ glVertex2f(xMin, yMax);
+ glVertex2f(xMin, yMin);
+ glEnd();
+}
+
+void qtMaterialPreview::mousePressEvent ( QMouseEvent * )
+{
+ // not calling the parent class mouse event, as we do not want the
user to be able to manipulate the default view of the material
+}
+
+void qtMaterialPreview::setSelected(bool bIsSelected)
+{
+ m_bIsSelected = bIsSelected;
+}
+
+void qtMaterialPreview::paintGL()
+{
+ ParentClass::paintGL();
+
+ if( m_bIsSelected )
+ {
+ drawSelectionBox();
+ }
+}
+
+void qtMaterialPreview::setShader(shMaterial* InMaterial)
+{
+ if( !m_pRoot )
+ {
+ LOG<<"Root not set.\n";
+ return;
+ }
+
+ LOG<<"Setting shader...\n";
+ osg::StateSet* ss = m_pRoot->getOrCreateStateSet();
+ ss->setAttributeAndModes(InMaterial);
+}
=======================================
--- /trunk/CMakeLists.txt Sat Sep 18 19:34:58 2010
+++ /trunk/CMakeLists.txt Sun Sep 26 11:43:10 2010
@@ -84,6 +84,7 @@
set( MOCS
include/qt/qtmainwindow.h
include/qt/qtshaderparameterwidget.h
+ include/qt/qtmaterialeditor.h
)

set( FORMS )
=======================================
--- /trunk/include/qt/qtmainwindow.h Sat Sep 18 19:34:58 2010
+++ /trunk/include/qt/qtmainwindow.h Sun Sep 26 11:43:10 2010
@@ -12,10 +12,13 @@

#include <QtGui/QDialog>

+class QAction;
+
namespace Shaderz
{
class qtMaterialInfoWidget;
class qtShaderzViewWidget;
+ class qtMaterialEditor;
class shMaterial;

class qtMainWindow : public QDialog
@@ -29,9 +32,14 @@
public slots:
void OnClickedBrowse();
void OnClickedShaderInfo();
+ virtual void onShowMaterialEditor();

protected:
QLayout* mShaderLayout;
+ qtMaterialEditor* m_pMaterialEditorDialog;
+ QAction* m_pOpenMaterialEditorAction;
+
+ // test stuff
qtMaterialInfoWidget* mMaterialInfoWidget;
qtShaderzViewWidget* m_pViewWidget;
shMaterial* m_pTestMaterial;
=======================================
--- /trunk/include/qt/qtshaderparameterwidget.h Mon Sep 20 19:28:16 2010
+++ /trunk/include/qt/qtshaderparameterwidget.h Sun Sep 26 11:43:10 2010
@@ -14,14 +14,20 @@

#include <QWidget>
#include <QPushButton>
+ #include <QContextMenuEvent>
#include <vector>
#include "shshaderinterface.h"

+ // forward declaration
+ class QAction;
+
namespace Shaderz
- {
+ {
// Base class for all shader parameter widgets
class qtShaderParameterWidget : public QWidget
{
+ Q_OBJECT
+
public:
static qtShaderParameterWidget* create(QWidget* InParent,
shShaderInterface::shShaderParameter InShaderParameterInfo);
virtual void initializeWidget();
@@ -30,15 +36,29 @@
virtual std::vector<bool> getValueBool() const { return
std::vector<bool>(); }
virtual std::vector<float> getValueFloat() const { return
std::vector<float>(); }
virtual std::vector<int> getValueInt() const { return
std::vector<int>(); }
-
+
+ public slots:
+ virtual void onChangeStandardType();
+ virtual void onChangeStdTypeToNone();
+ virtual void onChangeStdTypeToTime();
+ virtual void onChangeStdTypeToWorld();
+ virtual void onChangeStdTypeToWorldInverseTranspose();
+ virtual void onChangeStdTypeToWorldViewProjection();
+ virtual void onChangeStdTypeToViewInverse();
+
protected:
qtShaderParameterWidget(QWidget* InParent,
shShaderInterface::shShaderParameter InShaderParameter);
virtual QWidget* internalCreateWidget(){ return 0; }
+ virtual std::vector<shStandardParameter> supportedStandardParameters()
const = 0;

protected:
shShaderInterface::shShaderParameter m_ParamInfo;
std::vector<QWidget*> m_vWidgets;
-
+ QPushButton* m_pStdParamButton;
+
+ // list of actions that can be triggered by menu selection.
+ // this list is specifically used for conversion between standard
parameters.
+ std::vector<QAction*> m_vStdParameterActions;
private:
typedef QWidget ParentClass;
};
@@ -55,6 +75,7 @@

protected:
virtual QWidget* internalCreateWidget();
+ virtual std::vector<shStandardParameter> supportedStandardParameters()
const;

private:
typedef qtShaderParameterWidget ParentClass;
@@ -71,6 +92,7 @@

protected:
virtual QWidget* internalCreateWidget();
+ virtual std::vector<shStandardParameter> supportedStandardParameters()
const;

private:
typedef qtShaderParameterWidget ParentClass;
@@ -86,9 +108,11 @@
qtShaderParameterWidgetFloat(QWidget* InParent,
shShaderInterface::shShaderParameter InShaderParameter);

virtual std::vector<float> getValueFloat() const;
+ virtual void contextMenuEvent(QContextMenuEvent* eventInfo);

protected:
virtual QWidget* internalCreateWidget();
+ virtual std::vector<shStandardParameter> supportedStandardParameters()
const;

private:
typedef qtShaderParameterWidget ParentClass;
=======================================
--- /trunk/include/shshaderinterface.h Fri Sep 10 23:40:37 2010
+++ /trunk/include/shshaderinterface.h Sun Sep 26 11:43:10 2010
@@ -50,6 +50,19 @@
SH_PARAMETERSEMANTIC_POSITION,
SH_PARAMETERSEMANTIC_COLOR,
SH_PARAMETERSEMANTIC_NORMAL,
+ SH_PARAMETERSEMANTIC_TANGENT,
+ SH_PARAMETERSEMANTIC_PSIZE,
+ SH_PARAMETERSEMANTIC_BLENDWEIGHT,
+ SH_PARAMETERSEMANTIC_BINORMAL,
+ SH_PARAMETERSEMANTIC_BLENDINDICES,
+ SH_PARAMETERSEMANTIC_TEXCOORD0,
+ SH_PARAMETERSEMANTIC_TEXCOORD1,
+ SH_PARAMETERSEMANTIC_TEXCOORD2,
+ SH_PARAMETERSEMANTIC_TEXCOORD3,
+ SH_PARAMETERSEMANTIC_TEXCOORD4,
+ SH_PARAMETERSEMANTIC_TEXCOORD5,
+ SH_PARAMETERSEMANTIC_TEXCOORD6,
+ SH_PARAMETERSEMANTIC_TEXCOORD7,

SH_PARAMETERSEMANTIC_MAX
} shParameterSemantic;
@@ -64,6 +77,18 @@
SH_PARAMETERDIR_MAX
} shParameterDirection;

+ typedef enum
+ {
+ SH_STANDARDPARAM_NONE = 0,
+ SH_STANDARDPARAM_TIME,
+ SH_STANDARDPARAM_WORLD,
+ SH_STANDARDPARAM_WORLDINVERSETRANSPOSE,
+ SH_STANDARDPARAM_WORLDVIEWPROJECTION,
+ SH_STANDARDPARAM_VIEWINVERSE,
+
+ SH_STANDARDPARAM_MAX
+ } shStandardParameter;
+
/**
* Base class for shader program information.
*/
@@ -74,6 +99,7 @@
{
std::string name; // name of the parameter as it exists
in the shader
shParameterSemantic semantic; // parameter semantic (POSITION,
NORMAL, COLOR etc)
+ shStandardParameter standardParamType; // if this param is a
standard type (time, model view matrix etc)
shParameterDirection direction; // In parameter, Out param or both
shParameterClass paramClass; // the class this
parameter belongs to
shParameterType paramType; // the type this
parameter belongs to
@@ -81,7 +107,10 @@
int columns; // the number of
columns for this parameter
std::vector<shShaderParameter> memberList; // the members
(iff this is a struct)
};
-
+
+ public:
+ static std::string getStandardParamString(shStandardParameter InParam);
+
public:
shShaderInterface();
shShaderInterface(const std::string sShaderFile);
@@ -127,6 +156,7 @@
virtual shParameterClass translateCGParamClass( const
CGparameterclass& cgParamClass ) const;
virtual shParameterType translateCGParamType( const CGtype&
cgParamType ) const;
virtual shParameterDirection translateCGParamDirection(const CGenum&
cgDirection) const;
+ virtual shStandardParameter assumeStandardParam(const shShaderParameter&
paramInfo) const;

protected:
CGprogram m_ShaderHandle;
=======================================
--- /trunk/shaderz.xcodeproj/project.pbxproj Mon Sep 20 19:28:16 2010
+++ /trunk/shaderz.xcodeproj/project.pbxproj Sun Sep 26 11:43:10 2010
@@ -6,6 +6,11 @@
objectVersion = 42;
objects = {

+/* Begin PBXBuildFile section */
+ 497A41EB124FB2DA00FF7E76 /* qtmaterialeditor.cpp in Sources */ = {isa =
PBXBuildFile; fileRef = 497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp
*/; };
+ 497A42CA124FC15A00FF7E76 /* qtmaterialpreview.cpp in Sources */ = {isa =
PBXBuildFile; fileRef = 497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp
*/; };
+/* End PBXBuildFile section */
+
/* Begin PBXFileReference section */
490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp;
path = qtshaderparameterwidget.cpp; sourceTree = "<group>"; };
493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = qtshaderparameterwidget.h; sourceTree = "<group>"; };
@@ -14,6 +19,10 @@
4970EE0E1239CA840043F7B1 /* qtmaterialinfowidget.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = qtmaterialinfowidget.h; sourceTree = "<group>"; };
4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp;
path = qtmaterialinfowidget.cpp; sourceTree = "<group>"; };
497754BC1234571000F4DCE4 /* osgnvcg1.cg */ = {isa = PBXFileReference;
fileEncoding = 4; lastKnownFileType = text; name = osgnvcg1.cg; path =
data/osgnvcg1.cg; sourceTree = "<group>"; };
+ 497A41E9124FA91600FF7E76 /* qtmaterialeditor.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = qtmaterialeditor.h; sourceTree = "<group>"; };
+ 497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp;
path = qtmaterialeditor.cpp; sourceTree = "<group>"; };
+ 497A42C0124FBEC200FF7E76 /* qtmaterialpreview.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = qtmaterialpreview.h; sourceTree = "<group>"; };
+ 497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp;
path = qtmaterialpreview.cpp; sourceTree = "<group>"; };
49880E5912459B5A00AC87B9 /* ShaderExec.app */ = {isa = PBXFileReference;
explicitFileType = wrapper.application; includeInIndex = 0; path =
ShaderExec.app; sourceTree = BUILT_PRODUCTS_DIR; };
49880E5C12459B5A00AC87B9 /* ShaderExec-Info.plist */ = {isa =
PBXFileReference; lastKnownFileType = text.plist.xml; path
= "ShaderExec-Info.plist"; sourceTree = "<group>"; };
49C717A81233984000171C0E /* shshaderinterface.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h;
path = shshaderinterface.h; sourceTree = "<group>"; };
@@ -92,6 +101,8 @@
49C7DC8A1232AFB600E24C8D /* qtshaderzviewwidget.h */,
4970EE0E1239CA840043F7B1 /* qtmaterialinfowidget.h */,
493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */,
+ 497A41E9124FA91600FF7E76 /* qtmaterialeditor.h */,
+ 497A42C0124FBEC200FF7E76 /* qtmaterialpreview.h */,
);
path = qt;
sourceTree = "<group>";
@@ -116,6 +127,8 @@
49C7DC901232AFB600E24C8D /* qtshaderzviewwidget.cpp */,
4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */,
490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */,
+ 497A41EA124FB2DA00FF7E76 /* qtmaterialeditor.cpp */,
+ 497A42C9124FC15A00FF7E76 /* qtmaterialpreview.cpp */,
);
path = qt;
sourceTree = "<group>";
@@ -173,6 +186,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 497A41EB124FB2DA00FF7E76 /* qtmaterialeditor.cpp in Sources */,
+ 497A42CA124FC15A00FF7E76 /* qtmaterialpreview.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
=======================================
--- /trunk/shaderz.xcodeproj/vijayjoseph.mode1v3 Mon Sep 20 19:28:16 2010
+++ /trunk/shaderz.xcodeproj/vijayjoseph.mode1v3 Sun Sep 26 11:43:10 2010
@@ -197,7 +197,168 @@
<key>Notifications</key>
<array/>
<key>OpenEditors</key>
- <array/>
+ <array>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42F7124FC4A200FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialeditor.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42F8124FC4A200FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialeditor.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>497A431A124FC73D00FF7E76</string>
+ <key>history</key>
+ <array>
+ <string>497A4311124FC60000FF7E76</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42DA124FC2DC00FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialpreview.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42DB124FC2DC00FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialpreview.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>497A431B124FC73D00FF7E76</string>
+ <key>history</key>
+ <array>
+ <string>497A4309124FC58D00FF7E76</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42D7124FC2DC00FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialpreview.h</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42D8124FC2DC00FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialpreview.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>497A431C124FC73D00FF7E76</string>
+ <key>history</key>
+ <array>
+ <string>497A430B124FC58D00FF7E76</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Content</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42FB124FC4A200FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialeditor.h</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>497A42FC124FC4A200FF7E76</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>qtmaterialeditor.h</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>497A431D124FC73D00FF7E76</string>
+ <key>history</key>
+ <array>
+ <string>497A4301124FC4C600FF7E76</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>Geometry</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 20}, {802, 677}}</string>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <false/>
+ <key>RubberWindowFrame</key>
+ <string>15 55 802 718 0 0 1280 778 </string>
+ </dict>
+ </dict>
+ </array>
<key>PerspectiveWidths</key>
<array>
<integer>-1</integer>
@@ -281,14 +442,14 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>9</integer>
- <integer>5</integer>
- <integer>4</integer>
+ <integer>24</integer>
+ <integer>18</integer>
+ <integer>17</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
- <string>{{0, 65}, {186, 338}}</string>
+ <string>{{0, 114}, {186, 338}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@@ -388,9 +549,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>4940D6AD1246319E0025E262</string>
+ <string>497A40E1124ECE9B00FF7E76</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>4940D6AE1246319E0025E262</string>
+ <string>497A40E2124ECE9B00FF7E76</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -524,16 +685,26 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>4940D6B112463F640025E262</string>
+ <string>497A42D1124FC25A00FF7E76</string>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>49E29C5A12484FE400C3B26A</string>
+ <string>497A42FB124FC4A200FF7E76</string>
+ <string>497A42D7124FC2DC00FF7E76</string>
+ <string>497A42DA124FC2DC00FF7E76</string>
<string>/Users/vijayjoseph/projects/shaderz/shaderz.xcodeproj</string>
+ <string>497A42F7124FC4A200FF7E76</string>
</array>
<key>WindowString</key>
<string>797 328 690 397 0 0 1280 778 </string>
<key>WindowToolsV3</key>
<array>
<dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
<key>Identifier</key>
<string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
<key>Layout</key>
<array>
<dict>
@@ -545,26 +716,16 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>&lt;No Editor&gt;</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>1CD052900623707200166675</string>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
+ <string></string>
<key>StatusBarVisibility</key>
- <integer>1</integer>
+ <true/>
</dict>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {500, 215}}</string>
+ <string>{{0, 0}, {500, 218}}</string>
<key>RubberWindowFrame</key>
- <string>192 257 500 500 0 0 1280 1002 </string>
+ <string>36 250 500 500 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -572,21 +733,23 @@
<string>218pt</string>
</dict>
<dict>
- <key>BecomeActive</key>
- <integer>1</integer>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>XCMainBuildResultsModuleGUID</string>
<key>PBXProjectModuleLabel</key>
<string>Build</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
</dict>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 222}, {500, 236}}</string>
+ <string>{{0, 223}, {500, 236}}</string>
<key>RubberWindowFrame</key>
- <string>192 257 500 500 0 0 1280 1002 </string>
+ <string>36 250 500 500 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -595,7 +758,7 @@
</dict>
</array>
<key>Proportion</key>
- <string>458pt</string>
+ <string>459pt</string>
</dict>
</array>
<key>Name</key>
@@ -605,18 +768,22 @@
<string>PBXBuildResultsModule</string>
</array>
<key>StatusbarIsVisible</key>
- <integer>1</integer>
+ <true/>
<key>TableOfContents</key>
<array>
- <string>1C78EAA5065D492600B07095</string>
- <string>1C78EAA6065D492600B07095</string>
+ <string>497A42D1124FC25A00FF7E76</string>
+ <string>497A42D2124FC25A00FF7E76</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.buildV3</string>
<key>WindowString</key>
- <string>192 257 500 500 0 0 1280 1002 </string>
+ <string>36 250 500 500 0 0 1280 778 </string>
+ <key>WindowToolGUID</key>
+ <string>497A42D1124FC25A00FF7E76</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
</dict>
<dict>
<key>FirstTimeWindowDisplayed</key>
@@ -647,8 +814,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {316, 185}}</string>
- <string>{{316, 0}, {378, 185}}</string>
+ <string>{{0, 0}, {316, 194}}</string>
+ <string>{{316, 0}, {378, 194}}</string>
</array>
</dict>
<key>VerticalSplitView</key>
@@ -663,8 +830,8 @@
<string>yes</string>
<key>sizes</key>
<array>
- <string>{{0, 0}, {694, 185}}</string>
- <string>{{0, 185}, {694, 196}}</string>
+ <string>{{0, 0}, {694, 194}}</string>
+ <string>{{0, 194}, {694, 187}}</string>
</array>
</dict>
</dict>
@@ -697,7 +864,7 @@
<real>148</real>
</array>
<key>Frame</key>
- <string>{{316, 0}, {378, 185}}</string>
+ <string>{{316, 0}, {378, 194}}</string>
<key>RubberWindowFrame</key>
<string>31 280 694 422 0 0 1280 778 </string>
</dict>
@@ -725,13 +892,13 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>49880E4C12459A2B00AC87B9</string>
+ <string>49B4D094124D9F2400D772E8</string>
<string>1C162984064C10D400B95A72</string>
- <string>49880E4D12459A2B00AC87B9</string>
- <string>49880E4E12459A2B00AC87B9</string>
- <string>49880E4F12459A2B00AC87B9</string>
- <string>49880E5012459A2B00AC87B9</string>
- <string>49880E5112459A2B00AC87B9</string>
+ <string>49B4D095124D9F2400D772E8</string>
+ <string>49B4D096124D9F2400D772E8</string>
+ <string>49B4D097124D9F2400D772E8</string>
+ <string>49B4D098124D9F2400D772E8</string>
+ <string>49B4D099124D9F2400D772E8</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
@@ -763,7 +930,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
- <string></string>
+ <string>&lt;No Editor&gt;</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -821,8 +988,8 @@
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
- <string>4970EE0C1239C9A60043F7B1</string>
- <string>4970EE0D1239C9A60043F7B1</string>
+ <string>497A41A9124EE9F500FF7E76</string>
+ <string>497A41AA124EE9F500FF7E76</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
=======================================
--- /trunk/shaderz.xcodeproj/vijayjoseph.pbxuser Mon Sep 20 19:28:16 2010
+++ /trunk/shaderz.xcodeproj/vijayjoseph.pbxuser Sun Sep 26 11:43:10 2010
@@ -2,17 +2,17 @@
{
490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {939, 3024}}";
- sepNavSelRange = "{3893, 0}";
- sepNavVisRange = "{3268, 938}";
+ sepNavIntBoundsRect = "{{0, 0}, {1079, 6000}}";
+ sepNavSelRange = "{2017, 0}";
+ sepNavVisRange = "{2729, 1091}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {890, 1616}}";
- sepNavSelRange = "{1559, 43}";
- sepNavVisRange = "{1664, 938}";
+ sepNavIntBoundsRect = "{{0, 0}, {890, 2144}}";
+ sepNavSelRange = "{1082, 21}";
+ sepNavVisRange = "{0, 1067}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
@@ -27,7 +27,7 @@
4970EDFD123925F60043F7B1 /* shmaterial.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1051, 688}}";
- sepNavSelRange = "{536, 18}";
+ sepNavSelRange = "{268, 10}";
sepNavVisRange = "{0, 1118}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
@@ -36,15 +36,15 @@
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {981, 736}}";
sepNavSelRange = "{400, 0}";
- sepNavVisRange = "{36, 920}";
+ sepNavVisRange = "{125, 874}";
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1072, 1312}}";
- sepNavSelRange = "{748, 0}";
- sepNavVisRange = "{844, 1173}";
+ sepNavIntBoundsRect = "{{0, 0}, {1072, 1408}}";
+ sepNavSelRange = "{284, 0}";
+ sepNavVisRange = "{0, 884}";
sepNavWindowFrame = "{{12, 4}, {802, 774}}";
};
};
@@ -56,6 +56,4463 @@
sepNavWindowFrame = "{{15, -1}, {802, 774}}";
};
};
+ 497A40E3124ECE9B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 65";
+ rLen = 0;
+ rLoc = 3022;
+ rType = 0;
+ vrLen = 988;
+ vrLoc = 1313;
+ };
+ 497A40E4124ECE9B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A40E5124ECE9B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 48";
+ rLen = 17;
+ rLoc = 1728;
+ rType = 0;
+ vrLen = 1393;
+ vrLoc = 544;
+ };
+ 497A40E6124ECE9B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A81233984000171C0E /* shshaderinterface.h */;
+ name = "shshaderinterface.h: 87";
+ rLen = 28;
+ rLoc = 2256;
+ rType = 0;
+ vrLen = 1986;
+ vrLoc = 2214;
+ };
+ 497A40E7124ECE9B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A40E8124ECE9B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 22;
+ rLoc = 111;
+ rType = 0;
+ vrLen = 1444;
+ vrLoc = 8721;
+ };
+ 497A40E9124ECFD500FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 71";
+ rLen = 0;
+ rLoc = 3249;
+ rType = 0;
+ vrLen = 1071;
+ vrLoc = 1313;
+ };
+ 497A40EA124ECFD500FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A40EB124ECFD500FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 48";
+ rLen = 17;
+ rLoc = 1728;
+ rType = 0;
+ vrLen = 1393;
+ vrLoc = 544;
+ };
+ 497A40EC124ECFD500FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A81233984000171C0E /* shshaderinterface.h */;
+ name = "shshaderinterface.h: 87";
+ rLen = 28;
+ rLoc = 2256;
+ rType = 0;
+ vrLen = 1986;
+ vrLoc = 2214;
+ };
+ 497A40ED124ECFD500FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A40EE124ECFD500FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 22;
+ rLoc = 111;
+ rType = 0;
+ vrLen = 1444;
+ vrLoc = 8721;
+ };
+ 497A40F7124ED3A100FF7E76 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 49C717A81233984000171C0E /* shshaderinterface.h */;
+ };
+ 497A40F8124ED41C00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 58";
+ rLen = 0;
+ rLoc = 1723;
+ rType = 0;
+ vrLen = 1072;
+ vrLoc = 997;
+ };
+ 497A40F9124ED41C00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 64";
+ rLen = 0;
+ rLoc = 1886;
+ rType = 0;
+ vrLen = 1454;
+ vrLoc = 1134;
+ };
+ 497A40FC124ED41C00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A81233984000171C0E /* shshaderinterface.h */;
+ name = "shshaderinterface.h: 87";
+ rLen = 28;
+ rLoc = 2256;
+ rType = 0;
+ vrLen = 1544;
+ vrLoc = 2019;
+ };
+ 497A40FD124ED41C00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A40FE124ED41C00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A40FF124ED41C00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 22;
+ rLoc = 111;
+ rType = 0;
+ vrLen = 1444;
+ vrLoc = 8721;
+ };
+ 497A4100124ED42800FF7E76 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ };
+ 497A4102124ED4B200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 60";
+ rLen = 0;
+ rLoc = 1886;
+ rType = 0;
+ vrLen = 1495;
+ vrLoc = 1137;
+ };
+ 497A4103124ED4B200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 176";
+ rLen = 0;
+ rLoc = 5876;
+ rType = 0;
+ vrLen = 1288;
+ vrLoc = 4356;
+ };
+ 497A4106124ED4B200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 110";
+ rLen = 0;
+ rLoc = 3538;
+ rType = 0;
+ vrLen = 1372;
+ vrLoc = 849;
+ };
+ 497A4107124ED4B200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A4108124ED4B200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4109124ED4B200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 22;
+ rLoc = 111;
+ rType = 0;
+ vrLen = 1444;
+ vrLoc = 8721;
+ };
+ 497A410B124ED4E400FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 110";
+ rLen = 0;
+ rLoc = 3538;
+ rType = 0;
+ vrLen = 1372;
+ vrLoc = 849;
+ };
+ 497A410C124ED4E400FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 23";
+ rLen = 0;
+ rLoc = 448;
+ rType = 0;
+ vrLen = 1201;
+ vrLoc = 184;
+ };
+ 497A410D124ED4E400FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 176";
+ rLen = 0;
+ rLoc = 5876;
+ rType = 0;
+ vrLen = 1288;
+ vrLoc = 4356;
+ };
+ 497A410E124ED4E400FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A410F124ED4E400FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4110124ED4E400FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 22;
+ rLoc = 111;
+ rType = 0;
+ vrLen = 1444;
+ vrLoc = 8721;
+ };
+ 497A4116124ED5A900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 60";
+ rLen = 0;
+ rLoc = 1886;
+ rType = 0;
+ vrLen = 1506;
+ vrLoc = 876;
+ };
+ 497A4117124ED5A900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 64";
+ rLen = 0;
+ rLoc = 1886;
+ rType = 0;
+ vrLen = 1842;
+ vrLoc = 876;
+ };
+ 497A4118124ED5A900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 11";
+ rLen = 0;
+ rLoc = 279;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A4119124ED5A900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A411A124ED5A900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 23";
+ rLen = 0;
+ rLoc = 449;
+ rType = 0;
+ vrLen = 1203;
+ vrLoc = 184;
+ };
+ 497A411B124ED5A900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A411C124ED5A900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A411D124ED5D700FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 64";
+ rLen = 0;
+ rLoc = 1886;
+ rType = 0;
+ vrLen = 1887;
+ vrLoc = 876;
+ };
+ 497A411E124ED5D700FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A411F124ED5D700FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 23";
+ rLen = 0;
+ rLoc = 449;
+ rType = 0;
+ vrLen = 1203;
+ vrLoc = 184;
+ };
+ 497A4120124ED5D700FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A4121124ED5D700FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4122124ED66000FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 62";
+ rLen = 0;
+ rLoc = 1715;
+ rType = 0;
+ vrLen = 1270;
+ vrLoc = 994;
+ };
+ 497A4123124ED66000FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A4124124ED66000FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 23";
+ rLen = 0;
+ rLoc = 449;
+ rType = 0;
+ vrLen = 1203;
+ vrLoc = 184;
+ };
+ 497A4125124ED66000FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A4126124ED66000FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4127124ED69B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 63";
+ rLen = 0;
+ rLoc = 1812;
+ rType = 0;
+ vrLen = 1315;
+ vrLoc = 994;
+ };
+ 497A4128124ED69B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A4129124ED69B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 23";
+ rLen = 0;
+ rLoc = 449;
+ rType = 0;
+ vrLen = 1203;
+ vrLoc = 184;
+ };
+ 497A412A124ED69B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A412B124ED69B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4135124ED8D100FF7E76 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 49C717A81233984000171C0E /* shshaderinterface.h */;
+ };
+ 497A4136124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 66";
+ rLen = 0;
+ rLoc = 2035;
+ rType = 0;
+ vrLen = 1428;
+ vrLoc = 1059;
+ };
+ 497A4137124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 67";
+ rLen = 0;
+ rLoc = 2061;
+ rType = 0;
+ vrLen = 2077;
+ vrLoc = 999;
+ };
+ 497A413A124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A81233984000171C0E /* shshaderinterface.h */;
+ name = "shshaderinterface.h: 85";
+ rLen = 38;
+ rLoc = 2174;
+ rType = 0;
+ vrLen = 1544;
+ vrLoc = 2019;
+ };
+ 497A413B124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 46";
+ rLen = 0;
+ rLoc = 1279;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A413C124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A413D124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A413E124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A413F124ED91900FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4140124ED96200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 67";
+ rLen = 0;
+ rLoc = 2061;
+ rType = 0;
+ vrLen = 1105;
+ vrLoc = 3709;
+ };
+ 497A4141124ED96200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A4142124ED96200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A4143124ED96200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A4144124ED96200FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4145124ED99300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 71";
+ rLen = 0;
+ rLoc = 2675;
+ rType = 0;
+ vrLen = 2029;
+ vrLoc = 1059;
+ };
+ 497A4146124ED99300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A4147124ED99300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A4148124ED99300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A4149124ED99300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A414A124EDA7B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 162";
+ rLen = 0;
+ rLoc = 5145;
+ rType = 0;
+ vrLen = 1276;
+ vrLoc = 4478;
+ };
+ 497A414B124EDA7B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A414C124EDA7B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A414D124EDA7B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A414E124EDA7B00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A414F124EDB1D00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 231";
+ rLen = 0;
+ rLoc = 7267;
+ rType = 0;
+ vrLen = 1079;
+ vrLoc = 6650;
+ };
+ 497A4150124EDB1D00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A4151124EDB1D00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A4152124EDB1D00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A4153124EDB1D00FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4154124EDB6800FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 296";
+ rLen = 0;
+ rLoc = 9062;
+ rType = 0;
+ vrLen = 1140;
+ vrLoc = 7848;
+ };
+ 497A4155124EDB6800FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A4156124EDB6800FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A4157124EDB6800FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A4158124EDB6800FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A4159124EDC0300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 166";
+ rLen = 0;
+ rLoc = 5173;
+ rType = 0;
+ vrLen = 1182;
+ vrLoc = 4141;
+ };
+ 497A415A124EDC0300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 493DCC62124118A700FCFD87 /* qtshaderparameterwidget.h */;
+ name = "qtshaderparameterwidget.h: 42";
+ rLen = 21;
+ rLoc = 1082;
+ rType = 0;
+ vrLen = 1558;
+ vrLoc = 585;
+ };
+ 497A415B124EDC0300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C717A91233986000171C0E /* shshaderinterface.cpp */;
+ name = "shshaderinterface.cpp: 6";
+ rLen = 41;
+ rLoc = 92;
+ rType = 0;
+ vrLen = 1086;
+ vrLoc = 0;
+ };
+ 497A415C124EDC0300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 49C7DC8F1232AFB600E24C8D /* qtmainwindow.cpp */;
+ name = "qtmainwindow.cpp: 92";
+ rLen = 20;
+ rLoc = 3236;
+ rType = 0;
+ vrLen = 1283;
+ vrLoc = 165;
+ };
+ 497A415D124EDC0300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
+ rType = 0;
+ vrLen = 884;
+ vrLoc = 0;
+ };
+ 497A415E124EDC7F00FF7E76 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 4970EE0E1239CA840043F7B1 /* qtmaterialinfowidget.h */;
+ };
+ 497A4161124EDD5300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 166";
+ rLen = 0;
+ rLoc = 5173;
+ rType = 0;
+ vrLen = 1108;
+ vrLoc = 299;
+ };
+ 497A4162124EDD5300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 490BCCC91244538F00ED1410 /* qtshaderparameterwidget.cpp */;
+ name = "qtshaderparameterwidget.cpp: 298";
+ rLen = 0;
+ rLoc = 9057;
+ rType = 0;
+ vrLen = 1158;
+ vrLoc = 8279;
+ };
+ 497A4163124EDD5300FF7E76 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 4970EE101239CD470043F7B1 /* qtmaterialinfowidget.cpp */;
+ name = "qtmaterialinfowidget.cpp: 15";
+ rLen = 0;
+ rLoc = 284;
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/src/qt/qtmainwindow.cpp Mon Sep 20 19:28:16 2010
+++ /trunk/src/qt/qtmainwindow.cpp Sun Sep 26 11:43:10 2010
@@ -7,17 +7,28 @@
#include <QPushButton>
#include <QLabel>
#include <QGroupBox>
+#include <QAction>

#include "qt/qtshaderzviewwidget.h"
#include "qt/qtmaterialinfowidget.h"
#include "qt/qtshaderparameterwidget.h"
+#include "qt/qtmaterialeditor.h"
#include "shmaterial.h"
#include "shshaderinterface.h"
#include "shlogger.h"

qtMainWindow::qtMainWindow()
: ParentClass(0)
-{
+ , m_pMaterialEditorDialog( new qtMaterialEditor(this) )
+{
+ // hide the material editor at start
+ m_pMaterialEditorDialog->hide();
+
+ // hook up the material editor
+ m_pOpenMaterialEditorAction = new QAction( "Material Editor", this);
+ connect( m_pOpenMaterialEditorAction, SIGNAL(triggered()), this,
SLOT(onShowMaterialEditor()) );
+
+ // start throwing in some widgets to populate the main window.
QBoxLayout* mainLayout = new QVBoxLayout;
mainLayout->setContentsMargins( 10, 10, 10, 10 );

@@ -27,14 +38,20 @@
// buttons vertical sublayout
QVBoxLayout* vLayout = new QVBoxLayout;
{
+ // create the material editor button and connect it to action for
opening material editor
+ QPushButton* materialEditor = new QPushButton("Material Editor", this);
+ connect( materialEditor, SIGNAL(clicked()),
m_pOpenMaterialEditorAction, SIGNAL(triggered()) );
+ vLayout->addWidget(materialEditor);
+ vLayout->addSpacing(10);
+
// create the browse button
- QPushButton* browseButton = new QPushButton("Browse");
+ QPushButton* browseButton = new QPushButton("Browse", this);
connect( browseButton, SIGNAL(clicked()), this, SLOT(OnClickedBrowse())
);
vLayout->addWidget(browseButton);
vLayout->addSpacing(10);

// add the shader load button
- QPushButton* shaderInfoBtn = new QPushButton("ShaderInfo");
+ QPushButton* shaderInfoBtn = new QPushButton("ShaderInfo", this);
connect( shaderInfoBtn, SIGNAL(clicked()), this,
SLOT(OnClickedShaderInfo()) );
vLayout->addWidget(shaderInfoBtn);

@@ -104,3 +121,11 @@
LOG<<"Failed to set shader on model. Check to see if OSG_FILE_PATH is
set and the default model is located at that location.\n";
}
}
+
+void qtMainWindow::onShowMaterialEditor()
+{
+ if( m_pMaterialEditorDialog )
+ {
+ m_pMaterialEditorDialog->show();
+ }
+}
=======================================
--- /trunk/src/qt/qtshaderparameterwidget.cpp Mon Sep 20 19:28:16 2010
+++ /trunk/src/qt/qtshaderparameterwidget.cpp Sun Sep 26 11:43:10 2010
@@ -13,6 +13,9 @@
#include <QLineEdit>
#include <QColorDialog>
#include <QCheckbox>
+#include <QLabel>
+#include <QMenu>
+#include <QAction>
#include "qt/qtshaderparameterwidget.h"
#include "shlogger.h"

@@ -47,13 +50,44 @@

qtShaderParameterWidget::qtShaderParameterWidget( QWidget* InParent,
shShaderInterface::shShaderParameter InShaderParamInfo)
: ParentClass(InParent)
+ , m_pStdParamButton(0)
{
m_ParamInfo = InShaderParamInfo;
+
+ // create the actions for standard parameter conversions
+ // note the order of creation. The order has to be same as in enum for
shStandardParameter as we use the enum as index to the action
+ int actionIndex;
+ for( actionIndex=0; actionIndex < SH_STANDARDPARAM_MAX; ++actionIndex )
+ {
+ shStandardParameter stdParam =
static_cast<shStandardParameter>(actionIndex);
+ m_vStdParameterActions.push_back(new
QAction(shShaderInterface::getStandardParamString(stdParam).c_str(), this)
);
+ m_vStdParameterActions.back()->setCheckable(true);
+ }
+ // now connect the actions to the respective funcitons
+ connect( m_vStdParameterActions[SH_STANDARDPARAM_NONE],
SIGNAL(triggered()), this, SLOT(onChangeStdTypeToNone()) );
+ connect( m_vStdParameterActions[SH_STANDARDPARAM_TIME],
SIGNAL(triggered()), this, SLOT(onChangeStdTypeToTime()) );
+ connect( m_vStdParameterActions[SH_STANDARDPARAM_WORLD],
SIGNAL(triggered()), this, SLOT(onChangeStdTypeToWorld()) );
+ connect( m_vStdParameterActions[SH_STANDARDPARAM_WORLDINVERSETRANSPOSE],
SIGNAL(triggered()), this, SLOT(onChangeStdTypeToWorldInverseTranspose()) );
+ connect( m_vStdParameterActions[SH_STANDARDPARAM_WORLDVIEWPROJECTION],
SIGNAL(triggered()), this, SLOT(onChangeStdTypeToWorldViewProjection()) );
+ connect( m_vStdParameterActions[SH_STANDARDPARAM_VIEWINVERSE],
SIGNAL(triggered()), this, SLOT(onChangeStdTypeToViewInverse()) );
}

void qtShaderParameterWidget::initializeWidget()
{
+ // the top level main layout will allow us to place a button to the right
of the inputs created below
+ QHBoxLayout* mainLayout = new QHBoxLayout;
QGridLayout* pLayout = new QGridLayout;
+ mainLayout->addItem(pLayout);
+
+ // delete prev widgets before creating new ones
+ int widgetIndex;
+ for( widgetIndex=0; widgetIndex < m_vWidgets.size(); ++widgetIndex )
+ {
+ delete m_vWidgets[widgetIndex];
+ }
+ m_vWidgets.clear();
+ delete m_pStdParamButton;
+ m_pStdParamButton = 0;

switch(m_ParamInfo.paramClass)
{
@@ -98,22 +132,95 @@
QWidget* pBox = internalCreateWidget();
pLayout->addWidget(pBox, iRow, iCol);
m_vWidgets.push_back(pBox);
+
+ // if its a standard parameter, then we don't need to create all
input widgets
+ if( m_ParamInfo.standardParamType != SH_STANDARDPARAM_NONE )
+ {
+ break;
+ }
+ }
+ // if its a standard parameter, then we don't need to create all input
widgets
+ if( m_ParamInfo.standardParamType != SH_STANDARDPARAM_NONE )
+ {
+ break;
}
}
}
break;
}
-
- if( !layout() )
- {
- setLayout(pLayout);
- }
- else
- {
- layout()->addItem(pLayout);
- }
+
+ // see if we need to place a control for switching standard type of this
parameter
+ std::vector<shStandardParameter> supportedStdParams =
supportedStandardParameters();
+ if( supportedStdParams.size() > 0 )
+ {
+ QIcon icon("../data/icons/arrow.png");
+ m_pStdParamButton = new QPushButton( icon, "", this);
+ m_pStdParamButton->setMaximumSize(20,20);
+ connect( m_pStdParamButton, SIGNAL(clicked()), this,
SLOT(onChangeStandardType()));
+ mainLayout->addWidget(m_pStdParamButton);
+ }
+
+ if( layout() )
+ {
+ delete layout();
+ }
+ setLayout(mainLayout);
+}
+
+/**
+ * This function pops up a context menu next to the ChangeType button on
the parameter input widget.
+ * The menu will take the control further as to what new type is to be set.
+ */
+void qtShaderParameterWidget::onChangeStandardType()
+{
+ std::vector<shStandardParameter> supportedStdParams =
supportedStandardParameters();
+ QMenu contextMenu(this);
+ int index;
+
+ contextMenu.addAction( m_vStdParameterActions[SH_STANDARDPARAM_NONE] );
+ for( index=0; index < supportedStdParams.size(); ++index )
+ {
+
m_vStdParameterActions[supportedStdParams[index]]->setChecked(m_ParamInfo.standardParamType
== supportedStdParams[index]);
+ contextMenu.addAction( m_vStdParameterActions[supportedStdParams[index]]
);
+ }
+ contextMenu.exec(mapToGlobal(m_pStdParamButton->pos() + QPoint(0,
m_pStdParamButton->height())));
}

+void qtShaderParameterWidget::onChangeStdTypeToNone()
+{
+ m_ParamInfo.standardParamType = SH_STANDARDPARAM_NONE;
+ initializeWidget();
+}
+
+void qtShaderParameterWidget::onChangeStdTypeToTime()
+{
+ m_ParamInfo.standardParamType = SH_STANDARDPARAM_TIME;
+ initializeWidget();
+}
+
+void qtShaderParameterWidget::onChangeStdTypeToWorld()
+{
+ m_ParamInfo.standardParamType = SH_STANDARDPARAM_WORLD;
+ initializeWidget();
+}
+
+void qtShaderParameterWidget::onChangeStdTypeToWorldInverseTranspose()
+{
+ m_ParamInfo.standardParamType = SH_STANDARDPARAM_WORLDINVERSETRANSPOSE;
+ initializeWidget();
+}
+
+void qtShaderParameterWidget::onChangeStdTypeToWorldViewProjection()
+{
+ m_ParamInfo.standardParamType = SH_STANDARDPARAM_WORLDVIEWPROJECTION;
+ initializeWidget();
+}
+
+void qtShaderParameterWidget::onChangeStdTypeToViewInverse()
+{
+ m_ParamInfo.standardParamType = SH_STANDARDPARAM_VIEWINVERSE;
+ initializeWidget();
+}

////////////////////////////////////
// Shader Parameter Widget - Boolean
@@ -124,7 +231,8 @@

QWidget* qtShaderParameterWidgetBool::internalCreateWidget()
{
- QCheckBox* pBox = new QCheckBox(this);
+ QCheckBox* pBox = new QCheckBox(this);
+ pBox->setMinimumWidth(20);
return pBox;
}

@@ -134,6 +242,10 @@
return std::vector<bool>();
}

+std::vector<shStandardParameter>
qtShaderParameterWidgetBool::supportedStandardParameters() const
+{
+ return std::vector<shStandardParameter>();
+}

///////////////////////////////
// Shader param widget - Int
@@ -147,6 +259,7 @@
// todo: cater for Color widget also

QLineEdit* pBox = new QLineEdit(this);
+ pBox->setMinimumSize(20,20);
return pBox;
}

@@ -156,6 +269,10 @@
return std::vector<int>();
}

+std::vector<shStandardParameter>
qtShaderParameterWidgetInt::supportedStandardParameters() const
+{
+ return std::vector<shStandardParameter>();
+}

///////////////////////////////
// Shader param widget - Float
@@ -170,10 +287,17 @@
if( m_ParamInfo.semantic == SH_PARAMETERSEMANTIC_COLOR )
{
pUIElement = new qtShaderParamColorButton( QString("C"), this);
+ pUIElement->setMinimumSize(20,20);
+ }
+ else if( m_ParamInfo.standardParamType != SH_STANDARDPARAM_NONE)
+ {
+ std::string paramName =
shShaderInterface::getStandardParamString(m_ParamInfo.standardParamType);
+ pUIElement = new QLabel(paramName.c_str(), this);
}
else
{
pUIElement = new QLineEdit(this);
+ pUIElement->setMinimumSize(50,20);
}

return pUIElement;
@@ -184,6 +308,31 @@
// todo: implement me
return std::vector<float>();
}
+
+void qtShaderParameterWidgetFloat::contextMenuEvent(QContextMenuEvent*
eventInfo)
+{
+ QMenu contextMenu(this);
+ contextMenu.addAction( new QAction(tr("Some Action"), this) );
+ contextMenu.exec(eventInfo->globalPos());
+}
+
+std::vector<shStandardParameter>
qtShaderParameterWidgetFloat::supportedStandardParameters() const
+{
+ std::vector<shStandardParameter> supportedStdParams;
+ if( m_ParamInfo.paramClass == SH_PARAMETERCLASS_SCALAR )
+ {
+ supportedStdParams.push_back(SH_STANDARDPARAM_TIME);
+ }
+ else if( m_ParamInfo.paramClass == SH_PARAMETERCLASS_MATRIX )
+ {
+ supportedStdParams.push_back(SH_STANDARDPARAM_WORLD);
+ supportedStdParams.push_back(SH_STANDARDPARAM_WORLDINVERSETRANSPOSE);
+ supportedStdParams.push_back(SH_STANDARDPARAM_WORLDVIEWPROJECTION);
+ supportedStdParams.push_back(SH_STANDARDPARAM_VIEWINVERSE);
+ }
+
+ return supportedStdParams;
+}

////////////////////////////////
// qtShaderParamColorButton
=======================================
--- /trunk/src/shshaderinterface.cpp Sat Sep 18 19:34:58 2010
+++ /trunk/src/shshaderinterface.cpp Sun Sep 26 11:43:10 2010
@@ -2,6 +2,24 @@
#include "shlogger.h"

using namespace Shaderz;
+
+std::string shShaderInterface::getStandardParamString( shStandardParameter
InParam )
+{
+ std::string paramString = "None";
+ switch(InParam)
+ {
+ case SH_STANDARDPARAM_NONE: paramString = "None"; break;
+ case SH_STANDARDPARAM_TIME: paramString = "Time"; break;
+ case SH_STANDARDPARAM_WORLD: paramString = "World"; break;
+ case SH_STANDARDPARAM_WORLDINVERSETRANSPOSE: paramString = "World Inverse
Transpose"; break;
+ case SH_STANDARDPARAM_WORLDVIEWPROJECTION: paramString = "World View
Projection"; break;
+ case SH_STANDARDPARAM_VIEWINVERSE: paramString = "View Inverse"; break;
+
+ default: paramString = "Unknown"; break;
+ }
+
+ return paramString;
+}

shShaderInterface::shShaderInterface()
: m_IsValid(false)
@@ -45,6 +63,7 @@
LOG<<"Type="<<parameterRoot[index].paramType<<" ";
LOG<<"Size="<<parameterRoot[index].columns<<"
x "<<parameterRoot[index].rows<<" ";
LOG<<"Semantic="<<parameterRoot[index].semantic<<" ";
+ LOG<<"StandardParam="<<parameterRoot[index].standardParamType<<" ";
LOG<<"Direction="<<parameterRoot[index].direction<<" ";
if( SH_PARAMETERCLASS_STRUCT == parameterRoot[index].paramClass )
{
@@ -136,9 +155,25 @@
shParameterSemantic shShaderInterfaceCG::translateCGSemantic( const
std::string& semanticString ) const
{
shParameterSemantic semantic = SH_PARAMETERSEMANTIC_NONE;
- if( semanticString == "POSITION" ) semantic =
SH_PARAMETERSEMANTIC_POSITION;
- else if( semanticString == "COLOR" ) semantic =
SH_PARAMETERSEMANTIC_COLOR;
- else if( semanticString == "NORMAL" ) semantic =
SH_PARAMETERSEMANTIC_NORMAL;
+
+ #define CHECK_SEMANTIC(x) (semanticString.compare(0,
std::string(x).length(), x) == 0)
+ if( CHECK_SEMANTIC("POSITION") ) semantic =
SH_PARAMETERSEMANTIC_POSITION;
+ else if( CHECK_SEMANTIC("COLOR") ) semantic =
SH_PARAMETERSEMANTIC_COLOR;
+ else if( CHECK_SEMANTIC("NORMAL") ) semantic =
SH_PARAMETERSEMANTIC_NORMAL;
+ else if( CHECK_SEMANTIC("TANGENT") ) semantic =
SH_PARAMETERSEMANTIC_TANGENT;
+ else if( CHECK_SEMANTIC("PSIZE") ) semantic =
SH_PARAMETERSEMANTIC_PSIZE;
+ else if( CHECK_SEMANTIC("BLENDWEIGHT") )semantic =
SH_PARAMETERSEMANTIC_BLENDWEIGHT;
+ else if( CHECK_SEMANTIC("BINORMAL") ) semantic =
SH_PARAMETERSEMANTIC_BINORMAL;
+ else if( CHECK_SEMANTIC("BLENDINDICES"))semantic =
SH_PARAMETERSEMANTIC_BLENDINDICES;
+ else if( CHECK_SEMANTIC("TEXCOORD0") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD0;
+ else if( CHECK_SEMANTIC("TEXCOORD1") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD1;
+ else if( CHECK_SEMANTIC("TEXCOORD2") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD2;
+ else if( CHECK_SEMANTIC("TEXCOORD3") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD3;
+ else if( CHECK_SEMANTIC("TEXCOORD4") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD4;
+ else if( CHECK_SEMANTIC("TEXCOORD5") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD5;
+ else if( CHECK_SEMANTIC("TEXCOORD6") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD6;
+ else if( CHECK_SEMANTIC("TEXCOORD7") ) semantic =
SH_PARAMETERSEMANTIC_TEXCOORD7;
+ #undef CHECK_SEMANTIC

return semantic;
}
@@ -254,5 +289,22 @@
paramInfo.paramClass = translateCGParamClass(
cgGetParameterClass(currentParam) );
paramInfo.paramType =
translateCGParamType(cgGetParameterBaseType(currentParam));
getParamSizeInfo( currentParam, paramInfo.columns, paramInfo.rows );
+
+ paramInfo.standardParamType = assumeStandardParam(paramInfo);
return true;
}
+
+shStandardParameter shShaderInterfaceCG::assumeStandardParam(const
shShaderParameter& paramInfo) const
+{
+ shStandardParameter standardParamType = SH_STANDARDPARAM_NONE;
+
+#warning Temporarily disabled the assumption of any matrix type. Tree
resize problem.
+#if 0
+ // for now use default for 4x4 matrix only
+ standardParamType = (paramInfo.paramClass == SH_PARAMETERCLASS_MATRIX
+ && paramInfo.rows == 4
+ && paramInfo.columns == 4) ? SH_STANDARDPARAM_WORLDVIEWPROJECTION :
SH_STANDARDPARAM_NONE;
+#endif
+
+ return standardParamType;
+}
Reply all
Reply to author
Forward
0 new messages