AssimpView now displays meshes and mroe detailled statistics in the scene browser.

Improve the user interface. takes more screen space now, but provides more information and less clumsy buttons.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@731 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/1/head
aramis_acg 2010-05-21 20:04:45 +00:00
parent 367a452ed9
commit c29e985f12
6 changed files with 169 additions and 86 deletions

View File

@ -155,7 +155,7 @@ int CDisplay::AddNodeToDisplayList(
ai_assert(NULL != pcNode);
ai_assert(NULL != hRoot);
char chTemp[512];
char chTemp[MAXLEN];
if(0 == pcNode->mName.length) {
if (iIndex >= 100) {
@ -166,9 +166,11 @@ int CDisplay::AddNodeToDisplayList(
iIndex += iDepth * 100;
}
else iIndex += iDepth * 10;
sprintf(chTemp,"Node %i",iIndex);
sprintf(chTemp,"Node %i (%i meshes)",iIndex,pcNode->mNumMeshes);
}
else {
sprintf(chTemp,"%s (%i meshes)",pcNode->mName.data,pcNode->mNumMeshes);
}
else strcpy(chTemp,pcNode->mName.data);
TVITEMEXW tvi;
TVINSERTSTRUCTW sNew;
@ -207,6 +209,53 @@ int CDisplay::AddNodeToDisplayList(
this->AddNode(info);
return 1;
}
//-------------------------------------------------------------------------------
int CDisplay::AddMeshToDisplayList(unsigned int iIndex, HTREEITEM hRoot)
{
aiMesh* pcMesh = g_pcAsset->pcScene->mMeshes[iIndex];
char chTemp[MAXLEN];
if(0 == pcMesh->mName.length) {
sprintf(chTemp,"Mesh %i (%i faces)",iIndex,pcMesh->mNumFaces);
}
else {
sprintf(chTemp,"%s (%i faces)",pcMesh->mName.data,pcMesh->mNumFaces);
}
TVITEMEXW tvi;
TVINSERTSTRUCTW sNew;
wchar_t tmp[512];
int t = MultiByteToWideChar(CP_UTF8,0,chTemp,-1,tmp,512);
tvi.pszText = tmp;
tvi.cchTextMax = (int)t;
tvi.mask = TVIF_TEXT | TVIF_SELECTEDIMAGE | TVIF_IMAGE | TVIF_HANDLE | TVIF_PARAM;
tvi.iImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE];
tvi.iSelectedImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE];
tvi.lParam = (LPARAM)5;
sNew.itemex = tvi;
sNew.hInsertAfter = TVI_LAST;
sNew.hParent = hRoot;
// add the item to the list
HTREEITEM hTexture = (HTREEITEM)SendMessage(GetDlgItem(g_hDlg,IDC_TREE1),
TVM_INSERTITEMW,
0,
(LPARAM)(LPTVINSERTSTRUCT)&sNew);
// add the mesh to the list of all mesh entries in the scene browser
MeshInfo info;
info.hTreeItem = hTexture;
info.psMesh = pcMesh;
AddMesh(info);
return 1;
}
//-------------------------------------------------------------------------------
// Replace the currently selected texture by another one
int CDisplay::ReplaceCurrentTexture(const char* szPath)
@ -685,6 +734,10 @@ int CDisplay::FillDisplayList(void)
for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMaterials;++i)
AddMaterialToDisplayList(m_hRoot,i);
// add each mesh to the tree
for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i)
AddMeshToDisplayList(i,m_hRoot);
// now add all loaded nodes recursively
AddNodeToDisplayList(0,0,g_pcAsset->pcScene->mRootNode,m_hRoot);
@ -822,6 +875,7 @@ int CDisplay::Reset(void)
m_asMaterials.clear();
m_asTextures.clear();
m_asNodes.clear();
m_asMeshes.clear();
m_hRoot = NULL;
@ -1646,6 +1700,9 @@ int CDisplay::DrawHUD()
as[0].x -= 0.5f;as[1].x -= 0.5f;as[2].x -= 0.5f;as[3].x -= 0.5f;
as[0].y -= 0.5f;as[1].y -= 0.5f;as[2].y -= 0.5f;as[3].y -= 0.5f;
g_piDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
g_piDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);
// draw the screen-filling squad
DWORD dw2;g_piDevice->GetFVF(&dw2);
g_piDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_TEX1);

View File

@ -150,6 +150,17 @@ public:
HTREEITEM hTreeItem;
};
//------------------------------------------------------------------
// represents a mesh in the tree view
struct MeshInfo
{
// the mesh object
aiMesh* psMesh;
// corresponding tree view item
HTREEITEM hTreeItem;
};
//------------------------------------------------------------------
// represents a material in the tree view
struct MaterialInfo
@ -240,7 +251,7 @@ public:
//------------------------------------------------------------------
// Add a node to the display list
// Recusrivly add all subnodes
// Recusrivly adds all subnodes as well
// iIndex - Index of the node in the parent's child list
// iDepth - Current depth of the node
// pcNode - Node object
@ -251,6 +262,14 @@ public:
aiNode* pcNode,
HTREEITEM hRoot);
//------------------------------------------------------------------
// Add a mesh to the display list
// iIndex - Index of the mesh in the scene's mesh list
// hRoot - Parent tree view node
int AddMeshToDisplayList(
unsigned int iIndex,
HTREEITEM hRoot);
//------------------------------------------------------------------
// Load the image list for the tree view item
int LoadImageList(void);
@ -350,6 +369,13 @@ public:
this->m_asNodes.push_back(info);
}
//------------------------------------------------------------------
// add a new mesh to the list
inline void AddMesh(const MeshInfo& info)
{
this->m_asMeshes.push_back(info);
}
//------------------------------------------------------------------
// add a new material to the list
inline void AddMaterial(const MaterialInfo& info)
@ -469,6 +495,9 @@ private:
// List of all node in the display CB
std::vector<NodeInfo> m_asNodes;
// List of all node in the display CB
std::vector<MeshInfo> m_asMeshes;
// current Node or NULL if no Node is active
NodeInfo* m_pcCurrentNode;

View File

@ -412,7 +412,7 @@ void ToggleUIState()
DWORD dwValue;
if (BST_UNCHECKED == IsDlgButtonChecked(g_hDlg,IDC_BLUBB))
{
SetWindowPos(g_hDlg,NULL,0,0,sRect.right-188,sRect.bottom,
SetWindowPos(g_hDlg,NULL,0,0,sRect.right-214,sRect.bottom,
SWP_NOMOVE | SWP_NOZORDER);
dwValue = 0;
@ -421,7 +421,7 @@ void ToggleUIState()
}
else
{
SetWindowPos(g_hDlg,NULL,0,0,sRect.right+188,sRect.bottom,
SetWindowPos(g_hDlg,NULL,0,0,sRect.right+214,sRect.bottom,
SWP_NOMOVE | SWP_NOZORDER);
dwValue = 1;
@ -1027,7 +1027,7 @@ void InitUI()
sRect2.left -= sRect.left;
sRect2.top -= sRect.top;
SetWindowPos(g_hDlg,NULL,0,0,sRect.right-188,sRect.bottom,
SetWindowPos(g_hDlg,NULL,0,0,sRect.right-214,sRect.bottom,
SWP_NOMOVE | SWP_NOZORDER);
SetWindowText(GetDlgItem(g_hDlg,IDC_BLUBB),">>");
}
@ -1361,7 +1361,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->x * 255.0f);
g = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->y * 255.0f);
b = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->z * 255.0f);
szText = "B0";
szText = "Background #0";
}
else if (!g_pcAsset)
{
@ -1372,7 +1372,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)((g_avLightColors[0] >> 16) & 0xFF);
g = (unsigned char)((g_avLightColors[0] >> 8) & 0xFF);
b = (unsigned char)((g_avLightColors[0]) & 0xFF);
szText = "L0";
szText = "Light #0";
}
HBRUSH hbr = CreateSolidBrush(RGB(r,g,b));
@ -1381,7 +1381,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b));
SetBkMode(pcStruct->hDC,TRANSPARENT);
TextOut(pcStruct->hDC,4,1,szText,2);
TextOut(pcStruct->hDC,4,1,szText,strlen(szText));
bDraw = true;
}
else if(IDC_LCOLOR2 == pcStruct->CtlID)
@ -1394,7 +1394,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->x * 255.0f);
g = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->y * 255.0f);
b = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->z * 255.0f);
szText = "B1";
szText = "Background #1";
}
else if (!g_pcAsset)
{
@ -1405,14 +1405,14 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)((g_avLightColors[1] >> 16) & 0xFF);
g = (unsigned char)((g_avLightColors[1] >> 8) & 0xFF);
b = (unsigned char)((g_avLightColors[1]) & 0xFF);
szText = "L1";
szText = "Light #1";
}
HBRUSH hbr = CreateSolidBrush(RGB(r,g,b));
FillRect(pcStruct->hDC,&sRect,hbr);
SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b));
SetBkMode(pcStruct->hDC,TRANSPARENT);
TextOut(pcStruct->hDC,4,1,szText,2);
TextOut(pcStruct->hDC,4,1,szText,strlen(szText));
bDraw = true;
}
else if(IDC_LCOLOR3 == pcStruct->CtlID)
@ -1434,14 +1434,14 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)((g_avLightColors[2] >> 16) & 0xFF);
g = (unsigned char)((g_avLightColors[2] >> 8) & 0xFF);
b = (unsigned char)((g_avLightColors[2]) & 0xFF);
szText = "A0";
szText = "Ambient";
}
HBRUSH hbr = CreateSolidBrush(RGB(r,g,b));
FillRect(pcStruct->hDC,&sRect,hbr);
SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b));
SetBkMode(pcStruct->hDC,TRANSPARENT);
TextOut(pcStruct->hDC,4,1,szText,2);
TextOut(pcStruct->hDC,4,1,szText,strlen(szText));
bDraw = true;
}
// draw the black border around the rects

View File

@ -198,10 +198,10 @@ int LoadAsset(void)
char szTemp[MAX_PATH+64];
sprintf(szTemp,"Starting to load %s",g_szFileName);
CLogWindow::Instance().WriteLine(
"****************************************************************************");
"----------------------------------------------------------------------------");
CLogWindow::Instance().WriteLine(szTemp);
CLogWindow::Instance().WriteLine(
"****************************************************************************");
"----------------------------------------------------------------------------");
CLogWindow::Instance().SetAutoUpdate(false);
// create a helper thread to load the asset

View File

@ -1,7 +1,6 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#include "..\\..\\revision.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
@ -54,75 +53,67 @@ BEGIN
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,10,281,1
END
IDD_DIALOGMAIN DIALOGEX 0, 0, 594, 381
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES
IDD_DIALOGMAIN DIALOGEX 0, 0, 615, 485
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_TOPMOST | WS_EX_ACCEPTFILES | WS_EX_WINDOWEDGE
CAPTION "Open Asset Import Library - ModelViewer "
MENU IDR_MENU1
FONT 8, "MS Shell Dlg", 400, 0, 0x1
FONT 8, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN
CONTROL "",IDC_RT,"Static",SS_OWNERDRAW,3,5,462,351
CONTROL "Multisampling",IDC_TOGGLEMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,241,80,10
CONTROL "Wireframe",IDC_TOGGLEWIRE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,251,49,10
CONTROL "No materials",IDC_TOGGLEMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,261,55,10
LTEXT "Verts:",IDC_NUMVERTS,475,14,27,8
LTEXT "Faces:\t",IDC_NUMFACES,539,14,22,8
LTEXT "Mats:",IDC_NUMMATS,540,26,20,8
LTEXT "FPS:",IDC_FPS,540,51,20,8
CONTROL "Display normals",IDC_TOGGLENORMALS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,271,65,10
CONTROL "Toggle AutoRotate",IDC_AUTOROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,348,74,10
EDITTEXT IDC_EVERT,504,11,32,12,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EFACE,565,11,29,12,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EMAT,565,24,29,12,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EFPS,565,50,29,12,ES_AUTOHSCROLL | ES_READONLY
CONTROL "Rotate light sources",IDC_LIGHTROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,368,74,10
CONTROL "Two lights",IDC_3LIGHTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,281,48,10
LTEXT "Time:",IDC_LOADTIME,475,51,29,8
EDITTEXT IDC_ELOAD,504,50,32,12,ES_AUTOHSCROLL | ES_READONLY
CONTROL "Zoom/Rotate",IDC_ZOOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,358,58,10
CONTROL "Low quality",IDC_LOWQUALITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,291,74,10
CONTROL "No specular ",IDC_NOSPECULAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,301,74,10
LTEXT "Shd:",IDC_NUMSHADERS,476,40,23,8
EDITTEXT IDC_ESHADER,504,37,32,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "[M]",IDC_STATIC,553,241,11,8
LTEXT "[W]",IDC_STATIC,553,251,11,8
LTEXT "[D]",IDC_STATIC,553,261,11,8
LTEXT "[N]",IDC_STATIC,553,271,11,8
LTEXT "[L]",IDC_STATIC,553,281,11,8
LTEXT "[P]",IDC_STATIC,553,291,11,8
LTEXT "[S]",IDC_STATIC,553,301,11,8
LTEXT "[A]",IDC_STATIC,552,348,11,8
LTEXT "[Z]",IDC_STATIC,552,358,11,8
LTEXT "[R]",IDC_STATIC,552,368,11,8
COMBOBOX IDC_COMBO1,353,361,84,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,0,114,9
CONTROL 148,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,229,114,9
CONTROL 147,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,336,114,9
CONTROL 146,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,65,114,9
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,469,0,1,381
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,0,10,9
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,65,10,9
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,229,10,9
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,336,10,9
LTEXT "Nodes:",IDC_NUMNODES,476,26,24,8
EDITTEXT IDC_ENODEWND,504,24,32,12,ES_AUTOHSCROLL | ES_READONLY
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,471,74,123,155
LTEXT "Mesh:",IDC_NUMMESHES,540,39,20,8
EDITTEXT IDC_EMESH,565,37,29,12,ES_AUTOHSCROLL | ES_READONLY
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,567,238,1,93
CONTROL "Button1",IDC_LCOLOR1,"Button",BS_OWNERDRAW | WS_TABSTOP,570,242,21,17
CONTROL "Button1",IDC_LCOLOR2,"Button",BS_OWNERDRAW | WS_TABSTOP,570,262,21,17
CONTROL "Button1",IDC_LCOLOR3,"Button",BS_OWNERDRAW | WS_TABSTOP,570,282,21,17
PUSHBUTTON "R",IDC_LRESET,576,300,15,11,BS_BOTTOM
EDITTEXT IDC_VIEWMATRIX,475,24,61,38,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE
CONTROL "Show skeleton",IDC_SHOWSKELETON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,312,74,10
LTEXT "[K]",IDC_STATIC,553,312,11,8
CONTROL "<<",IDC_BLUBB,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,439,361,27,15
LTEXT "[C]",IDC_STATIC,553,323,11,8
CONTROL "",IDC_SLIDERANIM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,0,362,322,15
PUSHBUTTON "Play",IDC_PLAY,326,361,25,15
CONTROL "Backface culling",IDC_BFCULL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,323,74,10
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,358,470,1
CONTROL "Multisampling",IDC_TOGGLEMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,394,56,12
CONTROL "Wireframe",IDC_TOGGLEWIRE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,404,57,12
CONTROL "No materials",IDC_TOGGLEMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,415,64,12
LTEXT "Verts:",IDC_NUMVERTS,220,400,31,9
LTEXT "Faces:\t",IDC_NUMFACES,295,400,26,9
LTEXT "Mats:",IDC_NUMMATS,295,413,23,9
LTEXT "FPS:",IDC_FPS,295,442,23,9
CONTROL "Display normals",IDC_TOGGLENORMALS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,425,62,12
CONTROL "Toggle AutoRotate",IDC_AUTOROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,394,87,12
EDITTEXT IDC_EVERT,253,396,37,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EFACE,322,396,34,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EMAT,322,411,34,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EFPS,322,441,34,14,ES_AUTOHSCROLL | ES_READONLY
CONTROL "Rotate light sources",IDC_LIGHTROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,416,87,12
CONTROL "Two lights",IDC_3LIGHTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,427,56,12
LTEXT "Time:",IDC_LOADTIME,220,442,34,9
EDITTEXT IDC_ELOAD,253,441,37,14,ES_AUTOHSCROLL | ES_READONLY
CONTROL "Zoom/Rotate",IDC_ZOOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,405,68,12
CONTROL "Low quality",IDC_LOWQUALITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,435,48,12
CONTROL "No specular ",IDC_NOSPECULAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,446,50,12
LTEXT "Shd:",IDC_NUMSHADERS,221,430,27,9
EDITTEXT IDC_ESHADER,253,426,37,14,ES_AUTOHSCROLL | ES_READONLY
LTEXT "[M]",IDC_STATIC,84,394,13,9
LTEXT "[W]",IDC_STATIC,84,404,13,9
LTEXT "[D]",IDC_STATIC,84,470,13,9
LTEXT "[N]",IDC_STATIC,84,415,13,9
LTEXT "[L]",IDC_STATIC,194,428,13,9
LTEXT "[P]",IDC_STATIC,84,425,13,9
LTEXT "[S]",IDC_STATIC,84,437,13,9
LTEXT "[A]",IDC_STATIC,194,395,13,9
LTEXT "[Z]",IDC_STATIC,194,406,13,9
LTEXT "[R]",IDC_STATIC,194,417,13,9
COMBOBOX IDC_COMBO1,332,372,98,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
LTEXT "Nodes:",IDC_NUMNODES,221,413,28,9
EDITTEXT IDC_ENODEWND,253,411,37,14,ES_AUTOHSCROLL | ES_READONLY
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,473,0,142,484
LTEXT "Mesh:",IDC_NUMMESHES,295,428,23,9
EDITTEXT IDC_EMESH,322,426,34,14,ES_AUTOHSCROLL | ES_READONLY
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,100,392,1,87
CONTROL "Button1",IDC_LCOLOR1,"Button",BS_OWNERDRAW | WS_TABSTOP,400,396,59,20
CONTROL "Button1",IDC_LCOLOR2,"Button",BS_OWNERDRAW | WS_TABSTOP,400,418,59,20
CONTROL "Button1",IDC_LCOLOR3,"Button",BS_OWNERDRAW | WS_TABSTOP,400,440,59,20
PUSHBUTTON "Reset",IDC_LRESET,421,464,37,13,BS_BOTTOM
EDITTEXT IDC_VIEWMATRIX,220,411,71,44,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE
CONTROL "Show skeleton",IDC_SHOWSKELETON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,457,58,12
LTEXT "[K]",IDC_STATIC,84,447,13,9
CONTROL "<<",IDC_BLUBB,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,431,372,39,14
LTEXT "[C]",IDC_STATIC,84,459,13,9
CONTROL "",IDC_SLIDERANIM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,0,372,300,16
PUSHBUTTON "Play",IDC_PLAY,301,372,29,13
CONTROL "Backface culling",IDC_BFCULL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,468,65,12
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,209,392,1,70
CONTROL "",IDC_RT,"Static",SS_OWNERDRAW,0,0,473,370
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,388,469,1
END
IDD_LOADDIALOG DIALOGEX 0, 0, 143, 60
@ -205,8 +196,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,1,SVNRevision,0
PRODUCTVERSION 1,1,SVNRevision,1
FILEVERSION 1,1,700,0
PRODUCTVERSION 1,1,700,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -252,6 +243,11 @@ BEGIN
BOTTOMMARGIN, 138
END
IDD_DIALOGMAIN, DIALOG
BEGIN
BOTTOMMARGIN, 484
END
IDD_LOADDIALOG, DIALOG
BEGIN
LEFTMARGIN, 7

View File

@ -41,6 +41,7 @@
#define IDR_TXPOPUP 156
#define IDR_MATPOPUP 157
#define IDD_DIALOGSMOOTH 159
#define SVNRevision 700
#define IDC_CHECK1 1000
#define IDC_TOGGLEMS 1000
#define IDC_CHECK2 1001