Revision: 16
Author: vijay.michaeljoseph
Date: Fri Jan 15 18:17:06 2010
Log: New material editor ui
* created a new ui for the material editor
* moved stuff from main ui to material editor ui
* added a button to main ui to allow access to material editor
* Left some misc test code commented out in material instance.
What's next?
* Shader interface: Working on a shader interface in the material editor to
allow the user to load a shader, and tweak the parameters.
http://code.google.com/p/shaderz/source/detail?r=16
Added:
/trunk/include/shmaterialeditordialog.h
/trunk/src/shmaterialeditordialog.cpp
/trunk/ui/shmaterialeditordialog.ui
Modified:
/trunk/Makefile
/trunk/include/shaderzmain.h
/trunk/include/shmaterialinstance.h
/trunk/
shaderz.pro
/trunk/src/shaderzmain.cpp
/trunk/src/shmaterialinstance.cpp
/trunk/ui/shaderzmain.ui
=======================================
--- /dev/null
+++ /trunk/include/shmaterialeditordialog.h Fri Jan 15 18:17:06 2010
@@ -0,0 +1,20 @@
+#ifndef SHMATERIALEDITORDIALOG_H
+#define SHMATERIALEDITORDIALOG_H
+
+#include <QtGui/QDialog>
+
+namespace Ui {
+ class shMaterialEditorDialog;
+}
+
+class shMaterialEditorDialog : public QDialog {
+ Q_OBJECT
+public:
+ shMaterialEditorDialog(QWidget *parent = 0);
+ ~shMaterialEditorDialog();
+
+private:
+ Ui::shMaterialEditorDialog *m_ui;
+};
+
+#endif // SHMATERIALEDITORDIALOG_H
=======================================
--- /dev/null
+++ /trunk/src/shmaterialeditordialog.cpp Fri Jan 15 18:17:06 2010
@@ -0,0 +1,17 @@
+#include "include/shmaterialeditordialog.h"
+#include "ui_shmaterialeditordialog.h"
+
+shMaterialEditorDialog::shMaterialEditorDialog(QWidget *parent) :
+ QDialog(parent),
+ m_ui(new Ui::shMaterialEditorDialog)
+{
+ m_ui->setupUi(this);
+
+ // set slider to initial size
+
m_ui->materialPreviewSizeCtrl->setValue(m_ui->materialContainerView->getPreviewWindowSize());
+}
+
+shMaterialEditorDialog::~shMaterialEditorDialog()
+{
+ delete m_ui;
+}
=======================================
--- /dev/null
+++ /trunk/ui/shmaterialeditordialog.ui Fri Jan 15 18:17:06 2010
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>shMaterialEditorDialog</class>
+ <widget class="QDialog" name="shMaterialEditorDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>639</width>
+ <height>429</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <widget class="shMaterialContainer" name="materialContainerView"
native="true">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>531</width>
+ <height>251</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QSlider" name="materialPreviewSizeCtrl">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>270</y>
+ <width>160</width>
+ <height>22</height>
+ </rect>
+ </property>
+ <property name="minimum">
+ <number>50</number>
+ </property>
+ <property name="maximum">
+ <number>300</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>20</number>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>shMaterialContainer</class>
+ <extends>QWidget</extends>
+ <header>shmaterialcontainer.h</header>
+ <container>1</container>
+ <slots>
+ <slot>onPreviewWindowResize(int)</slot>
+ </slots>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>materialPreviewSizeCtrl</sender>
+ <signal>sliderMoved(int)</signal>
+ <receiver>materialContainerView</receiver>
+ <slot>onPreviewWindowResize(int)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>74</x>
+ <y>281</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>75</x>
+ <y>213</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
=======================================
--- /trunk/Makefile Sat Jan 9 02:57:15 2010
+++ /trunk/Makefile Fri Jan 15 18:17:06 2010
@@ -1,6 +1,6 @@
#############################################################################
# Makefile for building:
shaderz.app/Contents/MacOS/shaderz
-# Generated by qmake (2.01a) (Qt 4.5.3) on: Fri Jan 8 18:00:31 2010
+# Generated by qmake (2.01a) (Qt 4.5.3) on: Sat Jan 16 09:39:59 2010
# Project:
shaderz.pro
# Template: app
# Command: /usr/bin/qmake -spec /usr/local/Qt4.5/mkspecs/macx-g++ -macx -o
Makefile
shaderz.pro
@@ -16,7 +16,7 @@
INCPATH = -I/usr/local/Qt4.5/mkspecs/macx-g++ -I.
-I/Library/Frameworks/QtCore.framework/Versions/4/Headers
-I/usr/include/QtCore
-I/Library/Frameworks/QtGui.framework/Versions/4/Headers
-I/usr/include/QtGui
-I/Library/Frameworks/QtOpenGL.framework/Versions/4/Headers
-I/usr/include/QtOpenGL -I/usr/include -I../sdks/include -Iinclude
-I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers
-I/System/Library/Frameworks/AGL.framework/Headers -I. -I.
-F/Library/Frameworks
LINK = g++
LFLAGS = -headerpad_max_install_names -arch i386
-LIBS = $(SUBLIBS) -F/Library/Frameworks
-L/Library/Frameworks ../sdks/lib/libOpenThreads.2.4.0.dylib ../sdks/lib/libosg.2.8.2.dylib ../sdks/lib/libosgDB.2.8.2.dylib ../sdks/lib/libosgUtil.2.8.2.dylib ../sdks/lib/libosgGA.2.8.2.dylib ../sdks/lib/libosgViewer.2.8.2.dylib ../sdks/lib/libosgText.2.8.2.dylib
-lpthread /usr/lib/libm.dylib -framework QtOpenGL -framework QtGui
-framework Carbon -framework AppKit -framework QtCore -lz -lm -framework
ApplicationServices -framework OpenGL -framework AGL
+LIBS = $(SUBLIBS) -F/Library/Frameworks
-L/Library/Frameworks ../sdks/lib/libOpenThreads.2.4.0.dylib ../sdks/lib/libosg.2.8.2.dylib ../sdks/lib/libosgDB.2.8.2.dylib ../sdks/lib/libosgUtil.2.8.2.dylib ../sdks/lib/libosgGA.2.8.2.dylib ../sdks/lib/libosgViewer.2.8.2.dylib ../sdks/lib/libosgText.2.8.2.dylib
-lpthread /usr/lib/libm.dylib -framework Cg -framework QtOpenGL -framework
QtGui -framework Carbon -framework AppKit -framework QtCore -lz -lm
-framework ApplicationServices -framework OpenGL -framework AGL
AR = ar cq
RANLIB = ranlib -s
QMAKE = /usr/bin/qmake
@@ -50,8 +50,10 @@
src/shmaterialinstance.cpp \
src/shmaterialcontainer.cpp \
src/shhud.cpp \
- src/qtwidgets/shaderz_qtviewwidget.cpp moc_shaderzmain.cpp \
- moc_shmaterialcontainer.cpp
+ src/qtwidgets/shaderz_qtviewwidget.cpp \
+ src/shmaterialeditordialog.cpp moc_shaderzmain.cpp \
+ moc_shmaterialcontainer.cpp \
+ moc_shmaterialeditordialog.cpp
OBJECTS = obj/main.o \
obj/shaderzmain.o \
obj/osgadapterwidget.o \
@@ -60,8 +62,10 @@
obj/shmaterialcontainer.o \
obj/shhud.o \
obj/shaderz_qtviewwidget.o \
+ obj/shmaterialeditordialog.o \
obj/moc_shaderzmain.o \
- obj/moc_shmaterialcontainer.o
+ obj/moc_shmaterialcontainer.o \
+ obj/moc_shmaterialeditordialog.o
DIST = /usr/local/Qt4.5/mkspecs/common/unix.conf \
/usr/local/Qt4.5/mkspecs/common/mac.conf \
/usr/local/Qt4.5/mkspecs/common/mac-g++.conf \
@@ -128,7 +132,7 @@
all: Makefile
shaderz.app/Contents/PkgInfo
shaderz.app/Contents/Resources/empty.lproj shaderz.app/Contents/Info.plist
$(TARGET)
-$(TARGET): ui_shaderzmain.h $(OBJECTS)
+$(TARGET): ui_shaderzmain.h ui_shmaterialeditordialog.h $(OBJECTS)
@$(CHK_DIR_EXISTS)
shaderz.app/Contents/MacOS/ || $(MKDIR)
shaderz.app/Contents/MacOS/
$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
@@ -210,7 +214,7 @@
@sed -e "s,@ICON@,,g" -e "s,@EXECUTABLE@,shaderz,g"
-e "s,@TYPEINFO@,????,g" /usr/local/Qt4.5/mkspecs/macx-g++/
Info.plist.app
>
shaderz.app/Contents/Info.plist
dist:
@$(CHK_DIR_EXISTS) obj/shaderz1.0.0 || $(MKDIR) obj/shaderz1.0.0
- $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/shaderz1.0.0/ &&
$(COPY_FILE) --parents include/shaderzmain.h
include/qtwidgets/osgadapterwidget.h include/shlogger.h
include/shmaterialinstance.h include/shmaterialcontainer.h include/shhud.h
include/qtwidgets/shaderz_qtviewwidget.h obj/shaderz1.0.0/ && $(COPY_FILE)
--parents src/main.cpp src/shaderzmain.cpp
src/qtwidgets/osgadapterwidget.cpp src/shlogger.cpp
src/shmaterialinstance.cpp src/shmaterialcontainer.cpp src/shhud.cpp
src/qtwidgets/shaderz_qtviewwidget.cpp obj/shaderz1.0.0/ && $(COPY_FILE)
--parents ui/shaderzmain.ui obj/shaderz1.0.0/ && (cd `dirname
obj/shaderz1.0.0` && $(TAR) shaderz1.0.0.tar shaderz1.0.0 && $(COMPRESS)
shaderz1.0.0.tar) && $(MOVE) `dirname
obj/shaderz1.0.0`/shaderz1.0.0.tar.gz . && $(DEL_FILE) -r obj/shaderz1.0.0
+ $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/shaderz1.0.0/ &&
$(COPY_FILE) --parents include/shaderzmain.h
include/qtwidgets/osgadapterwidget.h include/shlogger.h
include/shmaterialinstance.h include/shmaterialcontainer.h include/shhud.h
include/qtwidgets/shaderz_qtviewwidget.h include/shmaterialeditordialog.h
obj/shaderz1.0.0/ && $(COPY_FILE) --parents src/main.cpp
src/shaderzmain.cpp src/qtwidgets/osgadapterwidget.cpp src/shlogger.cpp
src/shmaterialinstance.cpp src/shmaterialcontainer.cpp src/shhud.cpp
src/qtwidgets/shaderz_qtviewwidget.cpp src/shmaterialeditordialog.cpp
obj/shaderz1.0.0/ && $(COPY_FILE) --parents ui/shaderzmain.ui
ui/shmaterialeditordialog.ui obj/shaderz1.0.0/ && (cd `dirname
obj/shaderz1.0.0` && $(TAR) shaderz1.0.0.tar shaderz1.0.0 && $(COMPRESS)
shaderz1.0.0.tar) && $(MOVE) `dirname
obj/shaderz1.0.0`/shaderz1.0.0.tar.gz . && $(DEL_FILE) -r obj/shaderz1.0.0
clean:compiler_clean
@@ -231,15 +235,18 @@
compiler_objective_c_make_all:
compiler_objective_c_clean:
-compiler_moc_header_make_all: moc_shaderzmain.cpp
moc_shmaterialcontainer.cpp
+compiler_moc_header_make_all: moc_shaderzmain.cpp
moc_shmaterialcontainer.cpp moc_shmaterialeditordialog.cpp
compiler_moc_header_clean:
- -$(DEL_FILE) moc_shaderzmain.cpp moc_shmaterialcontainer.cpp
+ -$(DEL_FILE) moc_shaderzmain.cpp moc_shmaterialcontainer.cpp
moc_shmaterialeditordialog.cpp
moc_shaderzmain.cpp: include/shaderzmain.h
/Developer/Tools/Qt/moc $(DEFINES) $(INCPATH) -D__APPLE__ -D__GNUC__
include/shaderzmain.h -o moc_shaderzmain.cpp
moc_shmaterialcontainer.cpp: include/shmaterialcontainer.h
/Developer/Tools/Qt/moc $(DEFINES) $(INCPATH) -D__APPLE__ -D__GNUC__
include/shmaterialcontainer.h -o moc_shmaterialcontainer.cpp
+moc_shmaterialeditordialog.cpp: include/shmaterialeditordialog.h
+ /Developer/Tools/Qt/moc $(DEFINES) $(INCPATH) -D__APPLE__ -D__GNUC__
include/shmaterialeditordialog.h -o moc_shmaterialeditordialog.cpp
+
compiler_rcc_make_all:
compiler_rcc_clean:
compiler_image_collection_make_all: qmake_image_collection.cpp
@@ -249,12 +256,15 @@
compiler_moc_source_clean:
compiler_rez_source_make_all:
compiler_rez_source_clean:
-compiler_uic_make_all: ui_shaderzmain.h
+compiler_uic_make_all: ui_shaderzmain.h ui_shmaterialeditordialog.h
compiler_uic_clean:
- -$(DEL_FILE) ui_shaderzmain.h
+ -$(DEL_FILE) ui_shaderzmain.h ui_shmaterialeditordialog.h
ui_shaderzmain.h: ui/shaderzmain.ui
/Developer/Tools/Qt/uic ui/shaderzmain.ui -o ui_shaderzmain.h
+ui_shmaterialeditordialog.h: ui/shmaterialeditordialog.ui
+ /Developer/Tools/Qt/uic ui/shmaterialeditordialog.ui -o
ui_shmaterialeditordialog.h
+
compiler_yacc_decl_make_all:
compiler_yacc_decl_clean:
compiler_yacc_impl_make_all:
@@ -289,12 +299,19 @@
obj/shaderz_qtviewwidget.o: src/qtwidgets/shaderz_qtviewwidget.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/shaderz_qtviewwidget.o
src/qtwidgets/shaderz_qtviewwidget.cpp
+obj/shmaterialeditordialog.o: src/shmaterialeditordialog.cpp
include/shmaterialeditordialog.h \
+ ui_shmaterialeditordialog.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/shmaterialeditordialog.o
src/shmaterialeditordialog.cpp
+
obj/moc_shaderzmain.o: moc_shaderzmain.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_shaderzmain.o
moc_shaderzmain.cpp
obj/moc_shmaterialcontainer.o: moc_shmaterialcontainer.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_shmaterialcontainer.o
moc_shmaterialcontainer.cpp
+obj/moc_shmaterialeditordialog.o: moc_shmaterialeditordialog.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_shmaterialeditordialog.o
moc_shmaterialeditordialog.cpp
+
####### Install
install: FORCE
=======================================
--- /trunk/include/shaderzmain.h Fri Dec 25 16:38:02 2009
+++ /trunk/include/shaderzmain.h Fri Jan 15 18:17:06 2010
@@ -18,6 +18,9 @@
private:
Ui::shaderzMain *ui;
+
+private slots:
+ void on_materialEditorButton_clicked();
};
#endif // SHADERZMAIN_H
=======================================
--- /trunk/include/shmaterialinstance.h Wed Jan 6 14:52:14 2010
+++ /trunk/include/shmaterialinstance.h Fri Jan 15 18:17:06 2010
@@ -21,6 +21,7 @@
);
virtual void drawSelectionBox(void);
virtual void setSelected(bool bIsSelected = true);
+ virtual void loadScene(std::string);
protected: // events
virtual void mousePressEvent ( QMouseEvent * e );
=======================================
--- /trunk/
shaderz.pro Sat Jan 9 02:57:15 2010
+++ /trunk/
shaderz.pro Fri Jan 15 18:17:06 2010
@@ -19,14 +19,22 @@
../sdks/lib/libosgGA.2.8.2.dylib \
../sdks/lib/libosgViewer.2.8.2.dylib \
../sdks/lib/libosgText.2.8.2.dylib \
- -framework QtCore \
- -framework QtGui \
- -framework QtOpenGL \
+ -framework \
+ QtCore \
+ -framework \
+ QtGui \
+ -framework \
+ QtOpenGL \
-lpthread \
/usr/lib/libm.dylib \
- -framework Carbon \
- -framework AGL \
- -framework OpenGL
+ -framework \
+ Carbon \
+ -framework \
+ AGL \
+ -framework \
+ OpenGL \
+ -framework \
+ Cg
}
else win32 {
message("Platform = win32")
@@ -52,12 +60,15 @@
src/shmaterialinstance.cpp \
src/shmaterialcontainer.cpp \
src/shhud.cpp \
- src/qtwidgets/shaderz_qtviewwidget.cpp
+ src/qtwidgets/shaderz_qtviewwidget.cpp \
+ src/shmaterialeditordialog.cpp
HEADERS += include/shaderzmain.h \
include/qtwidgets/osgadapterwidget.h \
include/shlogger.h \
include/shmaterialinstance.h \
include/shmaterialcontainer.h \
include/shhud.h \
- include/qtwidgets/shaderz_qtviewwidget.h
-FORMS += ui/shaderzmain.ui
+ include/qtwidgets/shaderz_qtviewwidget.h \
+ include/shmaterialeditordialog.h
+FORMS += ui/shaderzmain.ui \
+ ui/shmaterialeditordialog.ui
=======================================
--- /trunk/src/shaderzmain.cpp Thu Jan 7 15:59:43 2010
+++ /trunk/src/shaderzmain.cpp Fri Jan 15 18:17:06 2010
@@ -1,16 +1,20 @@
#include "shaderzmain.h"
#include "ui_shaderzmain.h"
+#include "shmaterialeditordialog.h"
shaderzMain::shaderzMain(QWidget *parent)
: QMainWindow(parent), ui(new Ui::shaderzMain)
{
ui->setupUi(this);
-
- // set slider to initial size
-
ui->materialPreviewSizeCtrl->setValue(ui->materialContainerView->getPreviewWindowSize());
}
shaderzMain::~shaderzMain()
{
delete ui;
}
+
+void shaderzMain::on_materialEditorButton_clicked()
+{
+ shMaterialEditorDialog* pMaterialEditorDialog = new
shMaterialEditorDialog(this);
+ pMaterialEditorDialog->show();
+}
=======================================
--- /trunk/src/shmaterialinstance.cpp Wed Jan 6 14:52:14 2010
+++ /trunk/src/shmaterialinstance.cpp Fri Jan 15 18:17:06 2010
@@ -2,6 +2,9 @@
#include "shmaterialcontainer.h"
#include "shlogger.h"
#include "osg/PolygonMode"
+#include <osg/Geode>
+#include <osg/ShapeDrawable>
+
shMaterialInstance::shMaterialInstance( QWidget * pParent,
shMaterialContainer* pContainer,
const char * pName,
@@ -19,6 +22,15 @@
loadScene("../../../data/sphere.3ds");
}
}
+
+void shMaterialInstance::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 shMaterialInstance::drawSelectionBox(void)
{
=======================================
--- /trunk/ui/shaderzmain.ui Thu Jan 7 15:59:43 2010
+++ /trunk/ui/shaderzmain.ui Fri Jan 15 18:17:06 2010
@@ -14,39 +14,17 @@
<string>shaderzMain</string>
</property>
<widget class="QWidget" name="centralWidget">
- <widget class="shMaterialContainer" name="materialContainerView"
native="true">
+ <widget class="QPushButton" name="materialEditorButton">
<property name="geometry">
<rect>
- <x>10</x>
- <y>10</y>
- <width>531</width>
- <height>251</height>
+ <x>70</x>
+ <y>80</y>
+ <width>113</width>
+ <height>32</height>
</rect>
</property>
- </widget>
- <widget class="QSlider" name="materialPreviewSizeCtrl">
- <property name="geometry">
- <rect>
- <x>30</x>
- <y>270</y>
- <width>160</width>
- <height>22</height>
- </rect>
- </property>
- <property name="minimum">
- <number>50</number>
- </property>
- <property name="maximum">
- <number>300</number>
- </property>
- <property name="singleStep">
- <number>10</number>
- </property>
- <property name="pageStep">
- <number>20</number>
- </property>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <property name="text">
+ <string>Material Editor</string>
</property>
</widget>
</widget>
@@ -83,17 +61,6 @@
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
- <customwidgets>
- <customwidget>
- <class>shMaterialContainer</class>
- <extends>QWidget</extends>
- <header>shmaterialcontainer.h</header>
- <container>1</container>
- <slots>
- <slot>onPreviewWindowResize(int)</slot>
- </slots>
- </customwidget>
- </customwidgets>
<resources/>
<connections>
<connection>
@@ -110,22 +77,6 @@
<x>299</x>
<y>199</y>
</hint>
- </hints>
- </connection>
- <connection>
- <sender>materialPreviewSizeCtrl</sender>
- <signal>sliderMoved(int)</signal>
- <receiver>materialContainerView</receiver>
- <slot>onPreviewWindowResize(int)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>77</x>
- <y>319</y>
- </hint>
- <hint type="destinationlabel">
- <x>94</x>
- <y>250</y>
- </hint>
</hints>
</connection>
</connections>