diff --git a/Dialogs.aps b/Dialogs.aps
deleted file mode 100644
index d3ba647..0000000
Binary files a/Dialogs.aps and /dev/null differ
diff --git a/Dialogs.rc b/Dialogs.rc
deleted file mode 100644
index b346945..0000000
--- a/Dialogs.rc
+++ /dev/null
@@ -1,109 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (Canada) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUT_DIALOG DIALOGEX 0, 0, 226, 151
-STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "About"
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- DEFPUSHBUTTON "OK",IDOK,169,130,50,14
- PUSHBUTTON "Cancel",IDCANCEL,112,130,50,14
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_ABOUT_DIALOG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 219
- TOPMARGIN, 7
- BOTTOMMARGIN, 144
- END
-END
-#endif // APSTUDIO_INVOKED
-
-#endif // English (Canada) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/G3DTest.opt b/G3DTest.opt
deleted file mode 100644
index 4a8ac1e..0000000
Binary files a/G3DTest.opt and /dev/null differ
diff --git a/G3DTest.plg b/G3DTest.plg
deleted file mode 100644
index 5c210ef..0000000
--- a/G3DTest.plg
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-Build Log
-
---------------------Configuration: G3DTest - Win32 Debug--------------------
-
-Command Lines
-Creating temporary file "C:\Users\Andreja\AppData\Local\Temp\RSPFD70.tmp" with contents
-[
-/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Debug/G3DTest.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
-"C:\USERS\ANDREJA\G3D\G3DTest\main.cpp"
-]
-Creating command line "cl.exe @C:\Users\Andreja\AppData\Local\Temp\RSPFD70.tmp"
-Creating temporary file "C:\Users\Andreja\AppData\Local\Temp\RSPFD71.tmp" with contents
-[
-kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/G3DTest.pdb" /debug /machine:I386 /out:"Debug/G3DTest.exe" /pdbtype:sept
-.\Debug\main.obj
-]
-Creating command line "link.exe @C:\Users\Andreja\AppData\Local\Temp\RSPFD71.tmp"
-Output Window
-Compiling...
-main.cpp
-Linking...
-
-
-
-Results
-G3DTest.exe - 0 error(s), 0 warning(s)
-
-
-
diff --git a/G3DTest.suo b/G3DTest.suo
deleted file mode 100644
index 0f65f6c..0000000
Binary files a/G3DTest.suo and /dev/null differ
diff --git a/G3DTest.sln b/G3D_Application.sln
similarity index 54%
rename from G3DTest.sln
rename to G3D_Application.sln
index cc42e7a..4d13571 100644
--- a/G3DTest.sln
+++ b/G3D_Application.sln
@@ -1,20 +1,20 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "G3DTest", "G3DTest.vcproj", "{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug|Win32.ActiveCfg = Debug|Win32
- {6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Debug|Win32.Build.0 = Debug|Win32
- {6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release|Win32.ActiveCfg = Release|Win32
- {6C4D6EEF-B1D1-456A-B850-92CAB17124BE}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "G3D_New", "G3D_New.vcproj", "{583B17DE-1A0C-4070-801A-021DC0C84B0C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {583B17DE-1A0C-4070-801A-021DC0C84B0C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {583B17DE-1A0C-4070-801A-021DC0C84B0C}.Debug|Win32.Build.0 = Debug|Win32
+ {583B17DE-1A0C-4070-801A-021DC0C84B0C}.Release|Win32.ActiveCfg = Release|Win32
+ {583B17DE-1A0C-4070-801A-021DC0C84B0C}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/G3DTest.dsp b/G3D_New.dsp
similarity index 77%
rename from G3DTest.dsp
rename to G3D_New.dsp
index 4ada96f..e658867 100644
--- a/G3DTest.dsp
+++ b/G3D_New.dsp
@@ -1,105 +1,137 @@
-# Microsoft Developer Studio Project File - Name="G3DTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=G3DTest - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "G3DTest.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "G3DTest.mak" CFG="G3DTest - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "G3DTest - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "G3DTest - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "G3DTest - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x1009 /d "NDEBUG"
-# ADD RSC /l 0x1009 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-
-!ELSEIF "$(CFG)" == "G3DTest - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x1009 /d "_DEBUG"
-# ADD RSC /l 0x1009 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "G3DTest - Win32 Release"
-# Name "G3DTest - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
+# Microsoft Developer Studio Project File - Name="G3D_New" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=G3D_New - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "G3D_New.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "G3D_New.mak" CFG="G3D_New - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "G3D_New - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "G3D_New - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "G3D_New - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x1009 /d "NDEBUG"
+# ADD RSC /l 0x1009 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF "$(CFG)" == "G3D_New - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x1009 /d "_DEBUG"
+# ADD RSC /l 0x1009 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "G3D_New - Win32 Release"
+# Name "G3D_New - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\ImageButtonInstance.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Instance.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\PhysicalInstance.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\TextButtonInstance.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\ImageButtonInstance.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Instance.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\main.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\PhysicalInstance.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\TextButtonInstance.cpp
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/G3DTest.dsw b/G3D_New.dsw
similarity index 84%
rename from G3DTest.dsw
rename to G3D_New.dsw
index 90964d3..91db04b 100644
--- a/G3DTest.dsw
+++ b/G3D_New.dsw
@@ -1,29 +1,29 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "G3DTest"=.\G3DTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "G3D_New"=.\G3D_New.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/G3DTest.vcproj b/G3D_New.vcproj
similarity index 67%
rename from G3DTest.vcproj
rename to G3D_New.vcproj
index ecfb7d7..86afd95 100644
--- a/G3DTest.vcproj
+++ b/G3D_New.vcproj
@@ -1,291 +1,342 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ImageButtonInstance.cpp b/ImageButtonInstance.cpp
new file mode 100644
index 0000000..8b16f19
--- /dev/null
+++ b/ImageButtonInstance.cpp
@@ -0,0 +1,21 @@
+#include "ImageButtonInstance.h"
+G3D::TextureRef image = NULL;
+int openGLID = 0;
+G3D::TextureRef image_ovr = NULL;
+int openGLID_ovr = 0;
+G3D::TextureRef image_dn = NULL;
+int openGLID_dn = 0;
+ImageButtonInstance::ImageButtonInstance(G3D::TextureRef newImage = NULL, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL)
+{
+
+ image = newImage;
+ openGLID = image->getOpenGLID();
+ image_ovr = overImage;
+ openGLID_ovr = image_ovr->getOpenGLID();
+ image_dn = downImage;
+ openGLID_dn = image_dn->getOpenGLID();
+}
+
+ImageButtonInstance::~ImageButtonInstance(void)
+{
+}
diff --git a/ImageButtonInstance.h b/ImageButtonInstance.h
new file mode 100644
index 0000000..139b2b3
--- /dev/null
+++ b/ImageButtonInstance.h
@@ -0,0 +1,10 @@
+#pragma once
+#include "instance.h"
+
+class ImageButtonInstance :
+ public Instance
+{
+public:
+ ImageButtonInstance(G3D::TextureRef,G3D::TextureRef,G3D::TextureRef);
+ ~ImageButtonInstance(void);
+};
diff --git a/Instance.h b/Instance.h
index 26cfbce..fe087c0 100644
--- a/Instance.h
+++ b/Instance.h
@@ -1,3 +1,4 @@
+#include
#pragma once
class Instance
diff --git a/PhysicalInstance.cpp b/PhysicalInstance.cpp
index e08b6e5..5b3a068 100644
--- a/PhysicalInstance.cpp
+++ b/PhysicalInstance.cpp
@@ -1,4 +1,3 @@
-#include
#include "PhysicalInstance.h"
bool canCollide = true;
@@ -27,3 +26,5 @@ PhysicalInstance::~PhysicalInstance(void)
}
+
+
diff --git a/TextButtonInstance.cpp b/TextButtonInstance.cpp
new file mode 100644
index 0000000..de70aff
--- /dev/null
+++ b/TextButtonInstance.cpp
@@ -0,0 +1,69 @@
+#include "TextButtonInstance.h"
+Vector2 boxBegin;
+Vector2 boxEnd;
+Vector2 fontLocationRelativeTo;
+Color4 textColor;
+Color4 textOutlineColor;
+Color4 boxColor;
+Color4 boxOutlineColor;
+Color4 textColorOvr;
+Color4 textOutlineColorOvr;
+Color4 boxColorOvr;
+Color4 boxOutlineColorOvr;
+Color4 textColorDn;
+Color4 textOutlineColorDn;
+Color4 boxColorDn;
+Color4 boxOutlineColorDn;
+bool centeredWithinBox;
+std::string title;
+G3D::GFontRef* font;
+int textSize;
+bool floatBottom;
+bool floatRight;
+bool floatCenter;
+bool visible;
+
+TextButtonInstance::TextButtonInstance(void)
+{
+ boxBegin = Vector2(0,0);
+ boxEnd = Vector2(0,0);
+ fontLocationRelativeTo = Vector2(0,0);
+ centeredWithinBox = false;
+ title = "TextBox";
+ textColor = Color4(1, 1, 1, 1);
+ textOutlineColor = Color4(0, 0, 0, 0);
+ boxColor = Color4(0.6F,0.6F,0.6F,0.4F);
+ boxOutlineColor = Color4(0, 0, 0, 0);
+ textSize = 12;
+ floatBottom = false;
+ floatRight = false;
+ floatCenter = false;
+ visible = true;
+ className = "TextButton";
+
+}
+
+TextButtonInstance::~TextButtonInstance(void)
+{
+}
+
+void TextButtonInstance::drawObj(RenderDevice* rd)
+{
+ Vector3 point1;
+ Vector3 point2;
+ if(floatBottom)
+ {
+ point1 = Vector3(boxBegin.x, rd->getHeight() + boxBegin.y,0);
+ point2 = Vector3(boxEnd.x, rd->getHeight() + boxEnd.y,0);
+
+ }
+ else
+ {
+ point1 = Vector3(boxBegin.x, boxBegin.y,0);
+ point2 = Vector3(boxEnd.x, boxEnd.y,0);
+ }
+ Draw::box(Box(point1, point2), rd, boxColor, boxOutlineColor);
+ Vector2 RelativeTo = Vector2(point1.x + fontLocationRelativeTo.x, point1.y + fontLocationRelativeTo.y);
+ font->draw2D(rd, title, RelativeTo, textSize, textColor, textOutlineColor);
+
+}
\ No newline at end of file
diff --git a/TextButtonInstance.h b/TextButtonInstance.h
new file mode 100644
index 0000000..b574872
--- /dev/null
+++ b/TextButtonInstance.h
@@ -0,0 +1,34 @@
+#pragma once
+#include "instance.h"
+
+class TextButtonInstance :
+ public Instance
+{
+public:
+ TextButtonInstance(void);
+ ~TextButtonInstance(void);
+ Vector2 boxBegin;
+ Vector2 boxEnd;
+ Vector2 fontLocationRelativeTo;
+ Color4 textColor;
+ Color4 textOutlineColor;
+ Color4 boxColor;
+ Color4 boxOutlineColor;
+ Color4 textColorOvr;
+ Color4 textOutlineColorOvr;
+ Color4 boxColorOvr;
+ Color4 boxOutlineColorOvr;
+ Color4 textColorDn;
+ Color4 textOutlineColorDn;
+ Color4 boxColorDn;
+ Color4 boxOutlineColorDn;
+ bool centeredWithinBox;
+ std::string title;
+ G3D::GFontRef font;
+ bool floatBottom;
+ bool floatRight;
+ bool visible;
+ int textSize;
+ void drawObj(G3D::RenderDevice*);
+
+};
\ No newline at end of file
diff --git a/content/font/comics-small.fnt b/content/font/comics-small.fnt
new file mode 100644
index 0000000..f454ce2
Binary files /dev/null and b/content/font/comics-small.fnt differ
diff --git a/content/font/comics.fnt b/content/font/comics.fnt
new file mode 100644
index 0000000..6b71c7e
Binary files /dev/null and b/content/font/comics.fnt differ
diff --git a/content/images/rico16c.png b/content/images/rico16c.png
new file mode 100644
index 0000000..264bcf8
Binary files /dev/null and b/content/images/rico16c.png differ
diff --git a/content/images/rico256c.png b/content/images/rico256c.png
new file mode 100644
index 0000000..582f532
Binary files /dev/null and b/content/images/rico256c.png differ
diff --git a/main.cpp b/main.cpp
index 8fea3d3..da4b56d 100644
--- a/main.cpp
+++ b/main.cpp
@@ -11,9 +11,9 @@
@author Morgan McGuire, matrix@graphics3d.com
*/
#include
-#include "resource.h"
#include "Instance.h"
#include "PhysicalInstance.h"
+#include "TextButtonInstance.h"
#if G3D_VER < 61000
#error Requires G3D 6.10
@@ -22,6 +22,7 @@ static const float VNUM = 0.01F;
static std::string title = "";
static const std::string VERSION = "PRE-ALPHA ";
static std::vector instances;
+static std::vector instances_2D;
static Instance* dataModel;
static GFontRef fntdominant = NULL;
static GFontRef fntlighttrek = NULL;
@@ -32,9 +33,16 @@ static int FPSVal[8] = {10, 20, 30, 60, 120, 240, INT_MAX,1};
static int index = 2;
static float TIMERVAL = 60.0F;
static int SCOREVAL = 0;
-static int sep = 125;
-static int spacing = 25;
static G3D::TextureRef go = NULL;
+static G3D::TextureRef go_ovr = NULL;
+static G3D::TextureRef go_dn = NULL;
+static float mousex = 0;
+static float mousey = 0;
+static int go_id = 0;
+static int go_ovr_id = 0;
+static int go_dn_id = 0;
+static bool mouseButton1Down = false;
+static bool running = true;
/**
This simple demo applet uses the debug mode as the regular
rendering mode so you can fly around the scene.
@@ -102,17 +110,149 @@ PhysicalInstance* makePart()
return part;
}
+TextButtonInstance* makeTextButton()
+{
+ TextButtonInstance* part = new TextButtonInstance();
+ instances.push_back(part);
+ instances_2D.push_back(part);
+ return part;
+}
+
+
+void initGUI()
+{
+ TextButtonInstance* button = makeTextButton();
+ button->boxBegin = Vector2(0, -24);
+ button->boxEnd = Vector2(80, 0);
+ button->floatBottom = true;
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3(0,255,255);
+ button->textOutlineColor = Color4::clear();
+ button->title = "Hopper";
+ button->fontLocationRelativeTo = Vector2(10, 3);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(0, -48);
+ button->boxEnd = Vector2(80, -24);
+ button->floatBottom = true;
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3(0,255,255);
+ button->textOutlineColor = Color4::clear();
+ button->title = "Controller";
+ button->fontLocationRelativeTo = Vector2(10, 3);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(0, -72);
+ button->boxEnd = Vector2(80, -48);
+ button->floatBottom = true;
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3(0,255,255);
+ button->textOutlineColor = Color4::clear();
+ button->title = "Color";
+ button->fontLocationRelativeTo = Vector2(10, 3);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(0, -96);
+ button->boxEnd = Vector2(80, -72);
+ button->floatBottom = true;
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3(0,255,255);
+ button->textOutlineColor = Color4::clear();
+ button->title = "Surface";
+ button->fontLocationRelativeTo = Vector2(10, 3);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(0, -120);
+ button->boxEnd = Vector2(80, -96);
+ button->floatBottom = true;
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3(0,255,255);
+ button->boxOutlineColor = Color3(0,255,255);
+ button->title = "Model";
+ button->fontLocationRelativeTo = Vector2(10, 3);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(0, 0);
+ button->boxEnd = Vector2(125, 25);
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3::white();
+ button->boxColor = Color4::clear();
+ button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
+ button->title = "File";
+ button->textSize = 16;
+ button->fontLocationRelativeTo = Vector2(10, 0);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(125, 0);
+ button->boxEnd = Vector2(250, 25);
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3::white();
+ button->boxColor = Color4::clear();
+ button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
+ button->title = "Edit";
+ button->textSize = 16;
+ button->fontLocationRelativeTo = Vector2(10, 0);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(250, 0);
+ button->boxEnd = Vector2(375, 25);
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3::white();
+ button->boxColor = Color4::clear();
+ button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
+ button->title = "View";
+ button->textSize = 16;
+ button->fontLocationRelativeTo = Vector2(10, 0);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(375, 0);
+ button->boxEnd = Vector2(500, 25);
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3::white();
+ button->boxColor = Color4::clear();
+ button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
+ button->title = "Insert";
+ button->textSize = 16;
+ button->fontLocationRelativeTo = Vector2(10, 0);
+
+ button = makeTextButton();
+ button->boxBegin = Vector2(500, 0);
+ button->boxEnd = Vector2(625, 25);
+ button->parent = dataModel;
+ button->font = fntlighttrek;
+ button->textColor = Color3::white();
+ button->boxColor = Color4::clear();
+ button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
+ button->title = "Format";
+ button->textSize = 16;
+ button->fontLocationRelativeTo = Vector2(10, 0);
+}
+
void Demo::onInit() {
// Called before Demo::run() beings
+
+
dataModel = new Instance();
//dataModel->name = "undefined";
dataModel->parent = NULL;
+ initGUI();
+
PhysicalInstance* test = makePart();
test->parent = dataModel;
test->color = Color3(0.2F,0.3F,1);
test->size = Vector3(24,1,24);
+
test = makePart();
@@ -185,12 +325,12 @@ void Demo::onInit() {
setDesiredFrameRate(FPSVal[index]);
app->debugCamera.setPosition(Vector3(0, 2, 10));
app->debugCamera.lookAt(Vector3(0, 2, 0));
- //std::string str = "Dynamica Duomillenium 5 Version " + VERSION + Convert(VNUM);
- //title = dataModel->name;
+
GApplet::onInit();
+
}
@@ -206,7 +346,7 @@ void OnError(int err, std::string msg = "")
std::string emsg = "An unexpected error has occured and DUOM 5 has to quit. We're sorry!" + msg;
clearInstances();
//DialogBox(NULL, MAKEINTRESOURCE(IDD_DIALOG1), NULL, NULL);
- MessageBox(NULL, emsg.c_str(),"Dynamica Crash", MB_OK);
+ MessageBoxA(NULL, emsg.c_str(),"Dynamica Crash", MB_OK);
exit(err);
}
@@ -235,7 +375,24 @@ void Demo::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
}
+//void readMouseGUIInput()
+//{
+
+//}
+
+double getOSVersion() {
+ OSVERSIONINFO osvi;
+
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+
+ GetVersionEx(&osvi);
+ std::string version = Convert(osvi.dwMajorVersion) + "." + Convert(osvi.dwMinorVersion);
+ return ::atof(version.c_str());
+}
+
void Demo::onUserInput(UserInput* ui) {
+
if (ui->keyPressed(SDLK_ESCAPE)) {
// Even when we aren't in debug mode, quit on escape.
endApplet = true;
@@ -245,20 +402,6 @@ void Demo::onUserInput(UserInput* ui) {
{
app->debugController.setActive(true);
}
- if(ui->keyPressed(SDLK_KP_PLUS))
- {
- spacing++;
- messageTime = System::time();
- message = "Spacing set to " + Convert(spacing);
- }
- if(ui->keyPressed(SDLK_KP_MINUS))
- {
- spacing--;
- messageTime = System::time();
- message = "Spacing set to " + Convert(spacing);
-
- OnError(3423);
- }
else if(ui->keyReleased(SDL_RIGHT_MOUSE_KEY))
{
app->debugController.setActive(false);
@@ -268,6 +411,8 @@ void Demo::onUserInput(UserInput* ui) {
if(ui->keyPressed(SDLK_LSHIFT))
{
app->debugController.setMoveRate(20);
+
+
}
else if(ui->keyReleased(SDLK_LSHIFT))
{
@@ -282,10 +427,18 @@ void Demo::onUserInput(UserInput* ui) {
if(app->debugMode())
message = "Debug Mode Disabled";
else
- message = "Debug Mode Enabled";
+ message = "Debug Mode Enabled, Soon to be depricated";
app->setDebugMode(!app->debugMode());
}
}
+ if(ui->keyDown(SDLK_LCTRL))
+ {
+ if(ui->keyPressed('v'))
+ {
+ messageTime = System::time();
+ message = Convert(getOSVersion());
+ }
+ }
if(ui->keyPressed(SDLK_F8))
{
index++;
@@ -297,13 +450,18 @@ void Demo::onUserInput(UserInput* ui) {
message = "FPS has been set to " + Convert(FPSVal[index]);
setDesiredFrameRate(FPSVal[index]);
}
-
+ mousex = ui->getMouseX();
+ mousey = ui->getMouseY();
+ mouseButton1Down = ui->keyDown(SDL_LEFT_MOUSE_KEY);
+ //readMouseGUIInput();
// Add other key handling here
}
+
+
std::string ExePath() {
char buffer[MAX_PATH];
- GetModuleFileName( NULL, buffer, MAX_PATH );
+ GetModuleFileNameA( NULL, buffer, MAX_PATH );
std::string::size_type pos = std::string( buffer ).find_last_of( "\\/" );
return std::string( buffer ).substr( 0, pos);
}
@@ -332,14 +490,37 @@ void makeFlag(Vector3 &vec, RenderDevice* &rd)
parray.push(Vector2(up.x-1, up.y-.5));
parray.push(Vector2(up.x, up.y-1));
Draw::poly2D(parray, rd, Color3::blue());
- //rd->pushState();
- //rd->beginPrimitive(RenderDevice::QUADS);
- //rd->setColor(Color4(0,0,1,1));
- // rd->sendVertex(up);
- // rd->sendVertex(Vector3(up.x-1, up.y-1, up.z));
- // rd->sendVertex(Vector3(up.x, up.y-2, up.z));
- //rd->endPrimitive();
- //rd->popState();
+ //I know how i will approach this now
+}
+
+
+
+bool mouseInArea(float point1x, float point1y, float point2x, float point2y)
+{
+
+
+ if(mousex >= point1x && mousey >= point1y)
+ {
+ if(mousex < point2x && mousey < point2y)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+void drawButtons(RenderDevice* rd)
+{
+ for(size_t i = 0; i < instances_2D.size(); i++)
+ {
+ Instance* instance = instances_2D.at(i);
+ if(instance->className == "TextButton" && instance->parent == dataModel)
+ {
+ TextButtonInstance* tbi = (TextButtonInstance*)instance;
+ tbi->drawObj(rd);
+ }
+ }
}
void Demo::onGraphics(RenderDevice* rd) {
@@ -362,7 +543,6 @@ void Demo::onGraphics(RenderDevice* rd) {
app->renderDevice->setAmbientLightColor(Color3(1,1,1));
Draw::axes(CoordinateFrame(Vector3(0, 0, 0)), app->renderDevice);
-
//makeFlag(Vector3(1, 0.5, 0.5), rd);
@@ -370,7 +550,6 @@ void Demo::onGraphics(RenderDevice* rd) {
app->renderDevice->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
app->renderDevice->setAmbientLightColor(lighting.ambient);
- //Draw::box(G3D::Box(Vector3(4.0/2,1.0/2,2.0/2),Vector3(0,0,0)), rd, Color3::gray(), Color4(0,0,0,0));
for(size_t i = 0; i < instances.size(); i++)
{
Instance* instance = instances.at(i);
@@ -383,8 +562,7 @@ void Demo::onGraphics(RenderDevice* rd) {
}
}
- //Draw::cylinder(G3D::Cylinder::Cylinder(Vector3(0,5,0),Vector3(0,10,0),1),app->renderDevice,Color4(0,0,1,0.5),Color4(0,0,0,0));
-
+
app->renderDevice->disableLighting();
@@ -409,14 +587,12 @@ void Demo::onGraphics(RenderDevice* rd) {
fntdominant->draw2D(rd, "Timer: " + Convert(TIMERVAL), Vector2(rd->getWidth() - 120, 0+offset), 20, Color3::fromARGB(0x81C518), Color3::black());
fntdominant->draw2D(rd, "Score: " + Convert(SCOREVAL), Vector2(rd->getWidth() - 120, 25+offset), 20, Color3::fromARGB(0x81C518), Color3::black());
- //fntlighttrek->draw2D(rd, "Button: " + button, Vector2(10,30 + offset), 15, Color3::white(), Color3::black());
//GUI Boxes
Draw::box(G3D::Box(Vector3(0,offset,0),Vector3(80,330+offset,0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0,0,0,0));
- Draw::box(G3D::Box(Vector3(0,rd->getHeight() - 120,0),Vector3(80,rd->getHeight(),0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0,0,0,0));
-
+ //Draw::box(G3D::Box(Vector3(0,rd->getHeight() - 120,0),Vector3(80,rd->getHeight(),0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0,0,0,0));
Draw::box(G3D::Box(Vector3(rd->getWidth() - 120,rd->getHeight() - 120,0),Vector3(rd->getWidth(),rd->getHeight(),0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0,0,0,0));
@@ -427,20 +603,15 @@ void Demo::onGraphics(RenderDevice* rd) {
fntlighttrek->draw2D(rd, "CameraMenu", Vector2(rd->getWidth()-(fntlighttrek->get2DStringBounds("CameraMenu", 14).x+1),rd->getHeight() - 120), 14, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
+ /*
fntlighttrek->draw2D(rd, "Model", Vector2(10,rd->getHeight() - (120 - spacing*0)), 12, Color3(0,255,255), Color4(0,0,0,0));
fntlighttrek->draw2D(rd, "Surface", Vector2(10,rd->getHeight() - (120 - spacing*1)), 12, Color3(0,255,255), Color4(0,0,0,0));
fntlighttrek->draw2D(rd, "Color", Vector2(10,rd->getHeight() - (120 - spacing*2)), 12, Color3(0,255,255), Color4(0,0,0,0));
fntlighttrek->draw2D(rd, "Controller", Vector2(10,rd->getHeight() - (120 - spacing*3)), 12, Color3(0,255,255), Color4(0,0,0,0));
fntlighttrek->draw2D(rd, "Hopper", Vector2(10,rd->getHeight() - (120 - spacing*4)), 12, Color3(0,255,255), Color4(0,0,0,0));
+ */
- //Top menu
- fntlighttrek->draw2D(rd,"File", Vector2(10+0*sep,0), 16, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
- fntlighttrek->draw2D(rd,"Edit", Vector2(10+1*sep,0), 16, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
- fntlighttrek->draw2D(rd,"View", Vector2(10+2*sep,0), 16, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
- fntlighttrek->draw2D(rd,"Insert", Vector2(10+3*sep,0), 16, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
- fntlighttrek->draw2D(rd,"Format", Vector2(10+4*sep,0), 16, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
-
//Tools menu
Draw::box(G3D::Box(Vector3(5, 165+offset,0),Vector3(75, 165+offset,0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0.6F,0.6F,0.6F,0.4F));
fntlighttrek->draw2D(rd,"Group", Vector2(10,170+offset), 12, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
@@ -451,28 +622,45 @@ void Demo::onGraphics(RenderDevice* rd) {
//app->debugFont->draw2D("Dynamica 2004-2005 Simulation Client version " + VERSION + str, Vector2(0,0), 20, Color3::white(), Color3::black());
//app->debugFont->draw2D("Debug Mode Enabled", Vector2(0,30), 20, Color3::white(), Color3::black());
-
-
- //rd->pushState();
- //rd->setTexture(0, go);
+ rd->pushState();
+ rd->beforePrimitive();
- /*rd->enableAlphaWrite();
- rd->setTexCoord(0, Vector2(0.0F, 0.0F));
- rd->setTexCoord(0, Vector2(1.0F, 0.0F));
- rd->setTexCoord(0, Vector2(0.0F, 1.0F));
- rd->setTexCoord(0, Vector2(1.0F, 1.0F));
- rd->setTextureCombineMode(0, RenderDevice::CombineMode::TEX_ADD);
- rd->beginPrimitive(RenderDevice::QUADS);
- rd->sendVertex(Vector2(10,25));
- rd->sendVertex(Vector2(70,25));
- rd->sendVertex(Vector2(70,85));
- rd->sendVertex(Vector2(10,85));
- rd->endPrimitive();
- rd->setTexture(0, NULL);
- //rd->popState();*/
+
+
+ glEnable( GL_TEXTURE_2D );
+ glEnable(GL_BLEND);// you enable blending function
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ if(mouseInArea(10,25,70,85))
+ {
+ if(mouseButton1Down)
+ glBindTexture( GL_TEXTURE_2D, go_dn_id);
+ else
+ glBindTexture( GL_TEXTURE_2D, go_ovr_id);
+ }
+ else
+ glBindTexture( GL_TEXTURE_2D, go_id);
+ glBegin( GL_QUADS );
+ glTexCoord2d(0.0,0.0);
+ glVertex2f( 10, 0+offset );
+ glTexCoord2d( 1.0,0.0 );
+ glVertex2f( 70, 0+offset );
+ glTexCoord2d( 1.0,1.0 );
+ glVertex2f( 70, 60+offset );
+ glTexCoord2d( 0.0,1.0 );
+ glVertex2f( 10, 60+offset );
+ glEnd();
+
+ glDisable( GL_TEXTURE_2D );
+
+ rd->afterPrimitive();
+
+ rd->popState();
+
+ drawButtons(rd);
app->renderDevice->pop2D();
}
@@ -484,6 +672,11 @@ void App::main() {
debugController.setActive(false);
// Load objects here
go = Texture::fromFile(GetFileInPath("/content/images/Run.png"));
+ go_ovr = Texture::fromFile(GetFileInPath("/content/images/Run_ovr.png"));
+ go_dn = Texture::fromFile(GetFileInPath("/content/images/Run_dn.png"));
+ go_id = go->getOpenGLID();
+ go_dn_id = go_dn->getOpenGLID();
+ go_ovr_id = go_ovr->getOpenGLID();
fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt"));
fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt"));
sky = Sky::create(NULL, ExePath() + "/content/sky/");
@@ -503,13 +696,12 @@ App::~App() {
int main(int argc, char** argv) {
GAppSettings settings;
- //settings.debugFontName = "lighttrek.fnt";
- //settings.useNetwork = false;
- //settings.window.width = 1024;
- //settings.window.height = 768;
- settings.window.defaultIconFilename = GetFileInPath("/content/images/rico.png");
+ if(getOSVersion() > 5.0)
+ settings.window.defaultIconFilename = GetFileInPath("/content/images/rico.png");
+ else
+ settings.window.defaultIconFilename = GetFileInPath("/content/images/rico256c.png");
settings.window.resizable = true;
-
+ settings.writeLicenseFile = false;
App app = App(settings);
//app.window()->setIcon(ExePath() + "/content/images/rico.png");
app.run();
diff --git a/resource.h b/resource.h
deleted file mode 100644
index 3d988c8..0000000
--- a/resource.h
+++ /dev/null
@@ -1,16 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by Dialogs.rc
-//
-#define IDD_ABOUT_DIALOG 102
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 105
-#define _APS_NEXT_COMMAND_VALUE 40004
-#define _APS_NEXT_CONTROL_VALUE 1001
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif