misc 3dviewer work. still not worth using

This commit is contained in:
zeromus 2009-12-16 08:52:03 +00:00
parent 55f60d5496
commit 7b7bb56ba2
8 changed files with 459 additions and 68 deletions

View File

@ -23,6 +23,7 @@
#include "driver.h" #include "driver.h"
#include "rasterize.h" #include "rasterize.h"
#include "gfx3d.h" #include "gfx3d.h"
#include "texcache.h"
#ifdef HAVE_WX #ifdef HAVE_WX
@ -55,14 +56,17 @@ public:
void NewFrame() void NewFrame()
{ {
listPolys->SetItemCount(viewer3d_state.polylist.count); listPolys->SetItemCount(viewer3d_state.polylist.count);
labelFrameCounter->SetLabel(wxString::Format("%s: %d",_("Frame"),viewer3d_state.frameNumber));
labelUserPolycount->SetLabel(wxString::Format("%s: %d",_("User Polys"),viewer3d_state.polylist.count)); labelUserPolycount->SetLabel(wxString::Format("%s: %d",_("User Polys"),viewer3d_state.polylist.count));
labelFinalPolycount->SetLabel(wxString::Format("%s: %d",_("Final Polys"),viewer3d_state.polylist.count)); labelFinalPolycount->SetLabel(wxString::Format("%s: %d",_("Final Polys"),viewer3d_state.polylist.count));
tree->DeleteAllItems(); //tree->DeleteAllItems();
wxTreeItemId root = tree->AddRoot(""); //tree->Freeze();
for(int i=0;i<viewer3d_state.polylist.count;i++) //wxTreeItemId root = tree->AddRoot("");
{ //for(int i=0;i<viewer3d_state.polylist.count;i++)
tree->AppendItem(root,"hai kirin"); //{
} // tree->AppendItem(root,"hai kirin");
//}
//tree->Thaw();
} }
virtual wxString OnGetItemText(const wxListCtrl* list, long item, long column) const virtual wxString OnGetItemText(const wxListCtrl* list, long item, long column) const
@ -70,6 +74,12 @@ public:
return "hi"; return "hi";
} }
virtual void OnListPolysSelected( wxListEvent& event )
{
panelTexture->Refresh(false);
engine._debug_drawClippedUserPoly = GetSelectedListviewItem(listPolys);
}
void RedrawPanel(wxClientDC* dc) void RedrawPanel(wxClientDC* dc)
{ {
//------------ //------------
@ -114,6 +124,48 @@ public:
wxPaintDC dc(wxDynamicCast(event.GetEventObject(), wxWindow)); wxPaintDC dc(wxDynamicCast(event.GetEventObject(), wxWindow));
RedrawPanel(&dc); RedrawPanel(&dc);
} }
int GetSelectedListviewItem(wxListCtrl* list)
{
return list->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
}
virtual void OnPaintPanelTexture( wxPaintEvent& event )
{
wxPaintDC dc(wxDynamicCast(event.GetEventObject(), wxWindow));
dc.SetBackground(*wxBLACK_BRUSH); dc.Clear();
int selection = GetSelectedListviewItem(listPolys);
if(selection < 0) return;
if(selection>=viewer3d_state.polylist.count) return;
POLY& poly = viewer3d_state.polylist.list[selection];
TexCacheItem* texkey = TexCache_SetTexture(TexFormat_32bpp,poly.texParam,poly.texPalette);
const u32 w = texkey->sizeX;
const u32 h = texkey->sizeY;
u8* const bmpdata = new u8[w*h*4];
for(int i=0;i<w*h;i++) {
bmpdata[i*3] = texkey->decoded[i*4];
bmpdata[i*3+1] = texkey->decoded[i*4+1];
bmpdata[i*3+2] = texkey->decoded[i*4+2];
}
for(int i=0;i<w*h;i++)
bmpdata[w*h*3+i] = texkey->decoded[i*4+3];
wxImage image(w,h,false);
image.InitAlpha();
image.SetData(bmpdata,true);
image.SetAlpha(bmpdata+w*h*3,true);
wxBitmap bitmap(image);
double xscale = (double)panelTexture->GetSize().x / w;
double yscale = (double)panelTexture->GetSize().y / h;
dc.SetUserScale(xscale,yscale);
dc.DrawBitmap(bitmap,0,0);
delete[] bmpdata;
}
}; };
class VIEW3D_Driver_WX : public VIEW3D_Driver class VIEW3D_Driver_WX : public VIEW3D_Driver

View File

@ -44,6 +44,7 @@
#include "NDSSystem.h" #include "NDSSystem.h"
#include "readwrite.h" #include "readwrite.h"
#include "FIFO.h" #include "FIFO.h"
#include "movie.h" //only for currframecounter which really ought to be moved into the core emu....
#include <queue> #include <queue>
/* /*
@ -1978,6 +1979,7 @@ static void gfx3d_doFlush()
if(driver->view3d->IsRunning()) if(driver->view3d->IsRunning())
{ {
viewer3d_state.frameNumber = currFrameCounter;
viewer3d_state.state = gfx3d.state; viewer3d_state.state = gfx3d.state;
viewer3d_state.polylist = *gfx3d.polylist; viewer3d_state.polylist = *gfx3d.polylist;
viewer3d_state.vertlist = *gfx3d.vertlist; viewer3d_state.vertlist = *gfx3d.vertlist;

View File

@ -346,6 +346,7 @@ struct GFX3D_State
struct Viewer3d_State struct Viewer3d_State
{ {
int frameNumber;
GFX3D_State state; GFX3D_State state;
VERTLIST vertlist; VERTLIST vertlist;
POLYLIST polylist; POLYLIST polylist;

View File

@ -346,8 +346,10 @@ class RasterizerUnit
public: public:
int SLI_MASK, SLI_VALUE; int SLI_MASK, SLI_VALUE;
bool _debug_thisPoly;
RasterizerUnit() RasterizerUnit()
: _debug_thisPoly(false)
{ {
} }
@ -739,15 +741,77 @@ public:
//runs several scanlines, until an edge is finished //runs several scanlines, until an edge is finished
template<bool SLI> template<bool SLI>
void runscanlines(edge_fx_fl *left, edge_fx_fl *right) void runscanlines(edge_fx_fl *left, edge_fx_fl *right,bool horizontal)
{ {
//oh lord, hack city for edge drawing
//do not overstep either of the edges //do not overstep either of the edges
int Height = min(left->Height,right->Height); int Height = min(left->Height,right->Height);
bool first=true;
static int runctr=0;
runctr++;
while(Height--) { while(Height--) {
if(!SLI || (left->Y & SLI_MASK) == SLI_VALUE) bool draw = (!SLI || (left->Y & SLI_MASK) == SLI_VALUE);
drawscanline(left,right); if(draw) drawscanline(left,right);
const int xl = left->X;
const int xr = right->X;
const int y = left->Y;
left->Step(); left->Step();
right->Step(); right->Step();
if(!RENDERER && _debug_thisPoly)
{
//debug drawing
bool top = (horizontal&&first);
bool bottom = (!Height&&horizontal);
if(Height || top || bottom)
{
if(draw)
{
int nxl = left->X;
int nxr = right->X;
if(top) {
int xs = min(xl,xr);
int xe = max(xl,xr);
for(int x=xs;x<=xe;x++) {
int adr = (y*engine->width)+x;
engine->screenColor[adr].r = 63;
engine->screenColor[adr].g = 0;
engine->screenColor[adr].b = 0;
}
} else if(bottom) {
int xs = min(xl,xr);
int xe = max(xl,xr);
for(int x=xs;x<=xe;x++) {
int adr = (y*engine->width)+x;
engine->screenColor[adr].r = 63;
engine->screenColor[adr].g = 0;
engine->screenColor[adr].b = 0;
}
} else
{
int xs = min(xl,nxl);
int xe = max(xl,nxl);
for(int x=xs;x<=xe;x++) {
int adr = (y*engine->width)+x;
engine->screenColor[adr].r = 63;
engine->screenColor[adr].g = 0;
engine->screenColor[adr].b = 0;
}
xs = min(xr,nxr);
xe = max(xr,nxr);
for(int x=xs;x<=xe;x++) {
int adr = (y*engine->width)+x;
engine->screenColor[adr].r = 63;
engine->screenColor[adr].g = 0;
engine->screenColor[adr].b = 0;
}
}
}
}
first = false;
}
} }
} }
@ -789,6 +853,7 @@ public:
//This function can handle any convex N-gon up to octagons //This function can handle any convex N-gon up to octagons
//verts must be clockwise. //verts must be clockwise.
//I didnt reference anything for this algorithm but it seems like I've seen it somewhere before. //I didnt reference anything for this algorithm but it seems like I've seen it somewhere before.
//Maybe it is like crow's algorithm
template<bool SLI> template<bool SLI>
void shape_engine(int type, bool backwards) void shape_engine(int type, bool backwards)
{ {
@ -826,8 +891,9 @@ public:
//handle a failure in the edge setup due to nutty polys //handle a failure in the edge setup due to nutty polys
if(failure) if(failure)
return; return;
runscanlines<SLI>(&left,&right); bool horizontal = left.Y == right.Y;
runscanlines<SLI>(&left,&right,horizontal);
//if we ran out of an edge, step to the next one //if we ran out of an edge, step to the next one
if(right.Height == 0) { if(right.Height == 0) {
@ -862,6 +928,7 @@ public:
//iterate over polys //iterate over polys
for(int i=0;i<engine->clippedPolyCounter;i++) for(int i=0;i<engine->clippedPolyCounter;i++)
{ {
if(!RENDERER) _debug_thisPoly = (i==engine->_debug_drawClippedUserPoly);
if(!engine->polyVisible[i]) continue; if(!engine->polyVisible[i]) continue;
GFX3D_Clipper::TClippedPoly &clippedPoly = engine->clippedPolys[i]; GFX3D_Clipper::TClippedPoly &clippedPoly = engine->clippedPolys[i];
@ -1150,6 +1217,7 @@ void SoftRasterizerEngine::updateFloatColors()
} }
SoftRasterizerEngine::SoftRasterizerEngine() SoftRasterizerEngine::SoftRasterizerEngine()
: _debug_drawClippedUserPoly(-1)
{ {
this->clippedPolys = clipper.clippedPolys = new GFX3D_Clipper::TClippedPoly[POLYLIST_SIZE*2]; this->clippedPolys = clipper.clippedPolys = new GFX3D_Clipper::TClippedPoly[POLYLIST_SIZE*2];
} }
@ -1368,6 +1436,9 @@ void SoftRasterizerEngine::setupTextures(const bool skipBackfacing)
polyAttr.setup(poly->polyAttr); polyAttr.setup(poly->polyAttr);
//make sure all the textures we'll need are cached //make sure all the textures we'll need are cached
//(otherwise on a multithreaded system there will be multiple writers--
//this SHOULD be read-only, although some day the texcache may collect statistics or something
//and then it won't be safe.
if(needInitTexture || lastTextureFormat != poly->texParam || lastTexturePalette != poly->texPalette) if(needInitTexture || lastTextureFormat != poly->texParam || lastTexturePalette != poly->texPalette)
{ {
lastTexKey = TexCache_SetTexture(TexFormat_15bpp,poly->texParam,poly->texPalette); lastTexKey = TexCache_SetTexture(TexFormat_15bpp,poly->texParam,poly->texPalette);

View File

@ -57,6 +57,9 @@ class TexCacheItem;
class SoftRasterizerEngine class SoftRasterizerEngine
{ {
public: public:
//debug:
int _debug_drawClippedUserPoly;
SoftRasterizerEngine(); SoftRasterizerEngine();
void initFramebuffer(const int width, const int height, const bool clearImage); void initFramebuffer(const int width, const int height, const bool clearImage);

View File

@ -21,7 +21,7 @@
<bool name="use_two_step_construction">0</bool> <bool name="use_two_step_construction">0</bool>
<bool name="use_enums">0</bool> <bool name="use_enums">0</bool>
<bool name="generate_for_xrced">0</bool> <bool name="generate_for_xrced">0</bool>
<bool name="generate_virtual_eventhandlers">0</bool> <bool name="generate_virtual_eventhandlers">1</bool>
<string name="current_platform">"&lt;All platforms&gt;"</string> <string name="current_platform">"&lt;All platforms&gt;"</string>
<string name="target_wx_version">"2.8.10"</string> <string name="target_wx_version">"2.8.10"</string>
<string name="app_kind">"Standard"</string> <string name="app_kind">"Standard"</string>
@ -379,7 +379,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document> <document>
<string name="title">"wxCheckBox: ID_MATERIALINTERPOLATE"</string> <string name="title">"wxCheckBox: ID_CheckMaterialInterpolate"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"checkbox"</string> <string name="icon-name">"checkbox"</string>
@ -389,7 +389,7 @@
<long name="locked">0</long> <long name="locked">0</long>
<string name="proxy-type">"wbCheckBoxProxy"</string> <string name="proxy-type">"wbCheckBoxProxy"</string>
<string name="event-handler-0">"wxEVT_COMMAND_CHECKBOX_CLICKED|OnMaterialInterpolateClick|NONE||wxdlg3dViewer"</string> <string name="event-handler-0">"wxEVT_COMMAND_CHECKBOX_CLICKED|OnMaterialInterpolateClick|NONE||wxdlg3dViewer"</string>
<string name="proxy-Id name">"ID_MATERIALINTERPOLATE"</string> <string name="proxy-Id name">"ID_CheckMaterialInterpolate"</string>
<long name="proxy-Id value">10004</long> <long name="proxy-Id value">10004</long>
<string name="proxy-Name">""</string> <string name="proxy-Name">""</string>
<string name="proxy-Class">"wxCheckBox"</string> <string name="proxy-Class">"wxCheckBox"</string>
@ -560,10 +560,153 @@
<bool name="proxy-wxSHAPED">0</bool> <bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<document>
<string name="title">"wxWindow: ID_PanelTexture"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"foreign"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="proxy-type">"wbForeignCtrlProxy"</string>
<string name="event-handler-0">"wxEVT_PAINT|OnPaintPanelTexture|NONE||wxdlg3dViewer"</string>
<string name="event-handler-1">"wxEVT_ERASE_BACKGROUND|OnDoNotEraseBackground|NONE||wxdlg3dViewer"</string>
<string name="proxy-Id name">"ID_PanelTexture"</string>
<long name="proxy-Id value">10001</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxWindow"</string>
<string name="proxy-Base class">"wxWindow"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"panelTexture"</string>
<bool name="proxy-Create in situ">1</bool>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">1</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxBORDER_THEME">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxCLIP_CHILDREN">0</bool>
<bool name="proxy-wxHSCROLL">0</bool>
<bool name="proxy-wxVSCROLL">0</bool>
<bool name="proxy-wxWS_EX_VALIDATE_RECURSIVELY">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">64</long>
<long name="proxy-Height">64</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
<string name="proxy-Event sources">""</string>
</document>
<document>
<string name="title">"wxStaticText: wxID_STATIC"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"statictext"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">""</string>
<string name="proxy-Label">"3dviewer is unstable.
dont use it."</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool>
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxBORDER_THEME">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Centre"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">5</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
</document> </document>
</document> </document>
<document> <document>
<string name="title">"wxWindow: ID_VIEWPORT"</string> <string name="title">"wxWindow: ID_PanelViewport"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"foreign"</string> <string name="icon-name">"foreign"</string>
@ -573,8 +716,8 @@
<long name="locked">0</long> <long name="locked">0</long>
<string name="proxy-type">"wbForeignCtrlProxy"</string> <string name="proxy-type">"wbForeignCtrlProxy"</string>
<string name="event-handler-0">"wxEVT_PAINT|OnPanelPaint|NONE||wxdlg3dViewer"</string> <string name="event-handler-0">"wxEVT_PAINT|OnPanelPaint|NONE||wxdlg3dViewer"</string>
<string name="event-handler-1">"wxEVT_ERASE_BACKGROUND|OnPanelEraseBackground|NONE||wxdlg3dViewer"</string> <string name="event-handler-1">"wxEVT_ERASE_BACKGROUND|OnDoNotEraseBackground|NONE||wxdlg3dViewer"</string>
<string name="proxy-Id name">"ID_VIEWPORT"</string> <string name="proxy-Id name">"ID_PanelViewport"</string>
<long name="proxy-Id value">10002</long> <long name="proxy-Id value">10002</long>
<string name="proxy-Name">""</string> <string name="proxy-Name">""</string>
<string name="proxy-Class">"wxWindow"</string> <string name="proxy-Class">"wxWindow"</string>
@ -938,6 +1081,76 @@
<bool name="proxy-wxADJUST_MINSIZE">0</bool> <bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string> <string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<document>
<string name="title">"wxStaticText: wxID_STATIC"</string>
<string name="type">"dialog-control-document"</string>
<string name="filename">""</string>
<string name="icon-name">"statictext"</string>
<long name="is-transient">0</long>
<long name="owns-file">1</long>
<long name="title-mode">0</long>
<long name="locked">0</long>
<string name="proxy-type">"wbStaticTextProxy"</string>
<string name="proxy-Id name">"wxID_STATIC"</string>
<long name="proxy-Id value">5105</long>
<string name="proxy-Name">""</string>
<string name="proxy-Class">"wxStaticText"</string>
<string name="proxy-Base class">"wxStaticText"</string>
<bool name="proxy-External implementation">1</bool>
<bool name="proxy-Separate files">0</bool>
<string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"labelFrameCounter"</string>
<string name="proxy-Label">"Frame: 9999999"</string>
<long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string>
<string name="proxy-Background colour">""</string>
<string name="proxy-Foreground colour">""</string>
<string name="proxy-Font">""</string>
<bool name="proxy-Hidden">0</bool>
<bool name="proxy-Enabled">1</bool>
<string name="proxy-Platform">"&lt;Any platform&gt;"</string>
<string name="proxy-Data variable">""</string>
<string name="proxy-Data validator">""</string>
<string name="proxy-Data source">""</string>
<string name="proxy-Data class name">""</string>
<string name="proxy-Data class implementation filename">""</string>
<string name="proxy-Data class header filename">""</string>
<string name="proxy-Data class manager window">""</string>
<bool name="proxy-wxALIGN_LEFT">0</bool>
<bool name="proxy-wxALIGN_RIGHT">0</bool>
<bool name="proxy-wxALIGN_CENTRE">0</bool>
<bool name="proxy-wxST_NO_AUTORESIZE">0</bool>
<bool name="proxy-wxNO_BORDER">0</bool>
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
<bool name="proxy-wxBORDER_THEME">0</bool>
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
<bool name="proxy-wxRAISED_BORDER">0</bool>
<bool name="proxy-wxSTATIC_BORDER">0</bool>
<bool name="proxy-wxWANTS_CHARS">0</bool>
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
<string name="proxy-Custom styles">""</string>
<long name="proxy-X">-1</long>
<long name="proxy-Y">-1</long>
<long name="proxy-Width">-1</long>
<long name="proxy-Height">-1</long>
<string name="proxy-AlignH">"Left"</string>
<string name="proxy-AlignV">"Centre"</string>
<long name="proxy-Stretch factor">0</long>
<long name="proxy-Border">1</long>
<bool name="proxy-wxLEFT">1</bool>
<bool name="proxy-wxRIGHT">1</bool>
<bool name="proxy-wxTOP">1</bool>
<bool name="proxy-wxBOTTOM">1</bool>
<bool name="proxy-wxSHAPED">0</bool>
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
<string name="proxy-Custom arguments">""</string>
<string name="proxy-Custom ctor arguments">""</string>
</document>
<document> <document>
<string name="title">"wxStaticText: wxID_STATIC"</string> <string name="title">"wxStaticText: wxID_STATIC"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
@ -958,7 +1171,7 @@
<string name="proxy-Implementation filename">""</string> <string name="proxy-Implementation filename">""</string>
<string name="proxy-Header filename">""</string> <string name="proxy-Header filename">""</string>
<string name="proxy-Member variable name">"labelUserPolycount"</string> <string name="proxy-Member variable name">"labelUserPolycount"</string>
<string name="proxy-Label">"User Polys"</string> <string name="proxy-Label">"User Polys: 999999"</string>
<long name="proxy-Wrapping width">-1</long> <long name="proxy-Wrapping width">-1</long>
<string name="proxy-Help text">""</string> <string name="proxy-Help text">""</string>
<string name="proxy-Tooltip text">""</string> <string name="proxy-Tooltip text">""</string>
@ -1136,7 +1349,7 @@
<bool name="proxy-wxFIXED_MINSIZE">0</bool> <bool name="proxy-wxFIXED_MINSIZE">0</bool>
</document> </document>
<document> <document>
<string name="title">"wxDesmumeListCtrl: ID_DESMUMELISTCTRL1"</string> <string name="title">"wxDesmumeListCtrl: ID_ListPolys"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"listctrl"</string> <string name="icon-name">"listctrl"</string>
@ -1145,7 +1358,8 @@
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">0</long> <long name="locked">0</long>
<string name="proxy-type">"wbListCtrlProxy"</string> <string name="proxy-type">"wbListCtrlProxy"</string>
<string name="proxy-Id name">"ID_DESMUMELISTCTRL1"</string> <string name="event-handler-0">"wxEVT_COMMAND_LIST_ITEM_SELECTED|OnListPolysSelected|NONE||wxdlg3dViewer"</string>
<string name="proxy-Id name">"ID_ListPolys"</string>
<long name="proxy-Id value">10009</long> <long name="proxy-Id value">10009</long>
<string name="proxy-Name">""</string> <string name="proxy-Name">""</string>
<string name="proxy-Class">"wxDesmumeListCtrl"</string> <string name="proxy-Class">"wxDesmumeListCtrl"</string>
@ -1219,7 +1433,7 @@
<string name="proxy-Event sources">""</string> <string name="proxy-Event sources">""</string>
</document> </document>
<document> <document>
<string name="title">"wxTreeCtrl: ID_TREECTRL"</string> <string name="title">"wxTreeCtrl: ID_Tree"</string>
<string name="type">"dialog-control-document"</string> <string name="type">"dialog-control-document"</string>
<string name="filename">""</string> <string name="filename">""</string>
<string name="icon-name">"treectrl"</string> <string name="icon-name">"treectrl"</string>
@ -1228,7 +1442,7 @@
<long name="title-mode">0</long> <long name="title-mode">0</long>
<long name="locked">0</long> <long name="locked">0</long>
<string name="proxy-type">"wbTreeCtrlProxy"</string> <string name="proxy-type">"wbTreeCtrlProxy"</string>
<string name="proxy-Id name">"ID_TREECTRL"</string> <string name="proxy-Id name">"ID_Tree"</string>
<long name="proxy-Id value">10003</long> <long name="proxy-Id value">10003</long>
<string name="proxy-Name">""</string> <string name="proxy-Name">""</string>
<string name="proxy-Class">"wxTreeCtrl"</string> <string name="proxy-Class">"wxTreeCtrl"</string>

View File

@ -48,7 +48,9 @@ BEGIN_EVENT_TABLE( wxdlg3dViewer, wxDialog )
////@begin wxdlg3dViewer event table entries ////@begin wxdlg3dViewer event table entries
EVT_CLOSE( wxdlg3dViewer::OnCloseWindow ) EVT_CLOSE( wxdlg3dViewer::OnCloseWindow )
EVT_CHECKBOX( ID_MATERIALINTERPOLATE, wxdlg3dViewer::OnMaterialInterpolateClick ) EVT_CHECKBOX( ID_CheckMaterialInterpolate, wxdlg3dViewer::OnMaterialInterpolateClick )
EVT_LIST_ITEM_SELECTED( ID_ListPolys, wxdlg3dViewer::OnListPolysSelected )
////@end wxdlg3dViewer event table entries ////@end wxdlg3dViewer event table entries
@ -113,7 +115,9 @@ void wxdlg3dViewer::Init()
{ {
////@begin wxdlg3dViewer member initialisation ////@begin wxdlg3dViewer member initialisation
checkMaterialInterpolate = NULL; checkMaterialInterpolate = NULL;
panelTexture = NULL;
panelViewport = NULL; panelViewport = NULL;
labelFrameCounter = NULL;
labelUserPolycount = NULL; labelUserPolycount = NULL;
labelFinalPolycount = NULL; labelFinalPolycount = NULL;
listPolys = NULL; listPolys = NULL;
@ -146,7 +150,7 @@ void wxdlg3dViewer::CreateControls()
wxStaticBoxSizer* itemStaticBoxSizer4 = new wxStaticBoxSizer(itemStaticBoxSizer4Static, wxVERTICAL); wxStaticBoxSizer* itemStaticBoxSizer4 = new wxStaticBoxSizer(itemStaticBoxSizer4Static, wxVERTICAL);
itemBoxSizer3->Add(itemStaticBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemBoxSizer3->Add(itemStaticBoxSizer4, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
checkMaterialInterpolate = new wxCheckBox( itemDialog1, ID_MATERIALINTERPOLATE, _("Material clip interpolation"), wxDefaultPosition, wxDefaultSize, 0 ); checkMaterialInterpolate = new wxCheckBox( itemDialog1, ID_CheckMaterialInterpolate, _("Material clip interpolation"), wxDefaultPosition, wxDefaultSize, 0 );
checkMaterialInterpolate->SetValue(false); checkMaterialInterpolate->SetValue(false);
itemStaticBoxSizer4->Add(checkMaterialInterpolate, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemStaticBoxSizer4->Add(checkMaterialInterpolate, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
@ -159,55 +163,66 @@ void wxdlg3dViewer::CreateControls()
wxFlexGridSizer* itemFlexGridSizer8 = new wxFlexGridSizer(0, 2, 0, 0); wxFlexGridSizer* itemFlexGridSizer8 = new wxFlexGridSizer(0, 2, 0, 0);
itemBoxSizer3->Add(itemFlexGridSizer8, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemBoxSizer3->Add(itemFlexGridSizer8, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
panelViewport = new wxWindow( itemDialog1, ID_VIEWPORT, wxDefaultPosition, wxSize(256, 192), wxSIMPLE_BORDER ); panelTexture = new wxWindow( itemDialog1, ID_PanelTexture, wxDefaultPosition, wxSize(64, 64), wxSIMPLE_BORDER );
itemFlexGridSizer8->Add(panelTexture, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticText* itemStaticText10 = new wxStaticText( itemDialog1, wxID_STATIC, _("3dviewer is unstable.\ndont use it."), wxDefaultPosition, wxDefaultSize, 0 );
itemFlexGridSizer8->Add(itemStaticText10, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
panelViewport = new wxWindow( itemDialog1, ID_PanelViewport, wxDefaultPosition, wxSize(256, 192), wxSIMPLE_BORDER );
itemFlexGridSizer2->Add(panelViewport, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); itemFlexGridSizer2->Add(panelViewport, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxFlexGridSizer* itemFlexGridSizer10 = new wxFlexGridSizer(3, 1, 0, 0); wxFlexGridSizer* itemFlexGridSizer12 = new wxFlexGridSizer(3, 1, 0, 0);
itemFlexGridSizer10->AddGrowableRow(1); itemFlexGridSizer12->AddGrowableRow(1);
itemFlexGridSizer2->Add(itemFlexGridSizer10, 1, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); itemFlexGridSizer2->Add(itemFlexGridSizer12, 1, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5);
wxStaticBox* itemStaticBoxSizer11Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Choose One")); wxStaticBox* itemStaticBoxSizer13Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Choose One"));
wxStaticBoxSizer* itemStaticBoxSizer11 = new wxStaticBoxSizer(itemStaticBoxSizer11Static, wxVERTICAL); wxStaticBoxSizer* itemStaticBoxSizer13 = new wxStaticBoxSizer(itemStaticBoxSizer13Static, wxVERTICAL);
itemFlexGridSizer10->Add(itemStaticBoxSizer11, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_BOTTOM|wxALL, 5); itemFlexGridSizer12->Add(itemStaticBoxSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_BOTTOM|wxALL, 5);
wxRadioButton* itemRadioButton12 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON, _("Final Polylist"), wxDefaultPosition, wxDefaultSize, 0 ); wxRadioButton* itemRadioButton14 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON, _("Final Polylist"), wxDefaultPosition, wxDefaultSize, 0 );
itemRadioButton12->SetValue(true); itemRadioButton14->SetValue(true);
itemStaticBoxSizer11->Add(itemRadioButton12, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemStaticBoxSizer13->Add(itemRadioButton14, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxRadioButton* itemRadioButton13 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON1, _("User Polylist"), wxDefaultPosition, wxDefaultSize, 0 ); wxRadioButton* itemRadioButton15 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON1, _("User Polylist"), wxDefaultPosition, wxDefaultSize, 0 );
itemRadioButton13->SetValue(false); itemRadioButton15->SetValue(false);
itemRadioButton13->Enable(false); itemRadioButton15->Enable(false);
itemStaticBoxSizer11->Add(itemRadioButton13, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemStaticBoxSizer13->Add(itemRadioButton15, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
wxRadioButton* itemRadioButton14 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON2, _("Display List"), wxDefaultPosition, wxDefaultSize, 0 ); wxRadioButton* itemRadioButton16 = new wxRadioButton( itemDialog1, ID_RADIOBUTTON2, _("Display List"), wxDefaultPosition, wxDefaultSize, 0 );
itemRadioButton14->SetValue(false); itemRadioButton16->SetValue(false);
itemRadioButton14->Enable(false); itemRadioButton16->Enable(false);
itemStaticBoxSizer11->Add(itemRadioButton14, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); itemStaticBoxSizer13->Add(itemRadioButton16, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
itemFlexGridSizer10->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5); itemFlexGridSizer12->Add(5, 5, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxStaticBox* itemStaticBoxSizer16Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Statistics")); wxStaticBox* itemStaticBoxSizer18Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Statistics"));
wxStaticBoxSizer* itemStaticBoxSizer16 = new wxStaticBoxSizer(itemStaticBoxSizer16Static, wxVERTICAL); wxStaticBoxSizer* itemStaticBoxSizer18 = new wxStaticBoxSizer(itemStaticBoxSizer18Static, wxVERTICAL);
itemFlexGridSizer10->Add(itemStaticBoxSizer16, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5); itemFlexGridSizer12->Add(itemStaticBoxSizer18, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5);
labelUserPolycount = new wxStaticText( itemDialog1, wxID_STATIC, _("User Polys"), wxDefaultPosition, wxDefaultSize, 0 ); labelFrameCounter = new wxStaticText( itemDialog1, wxID_STATIC, _("Frame: 9999999"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer16->Add(labelUserPolycount, 0, wxALIGN_LEFT|wxALL, 1); itemStaticBoxSizer18->Add(labelFrameCounter, 0, wxALIGN_LEFT|wxALL, 1);
labelUserPolycount = new wxStaticText( itemDialog1, wxID_STATIC, _("User Polys: 999999"), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer18->Add(labelUserPolycount, 0, wxALIGN_LEFT|wxALL, 1);
labelFinalPolycount = new wxStaticText( itemDialog1, wxID_STATIC, _("Final Polys: "), wxDefaultPosition, wxDefaultSize, 0 ); labelFinalPolycount = new wxStaticText( itemDialog1, wxID_STATIC, _("Final Polys: "), wxDefaultPosition, wxDefaultSize, 0 );
itemStaticBoxSizer16->Add(labelFinalPolycount, 0, wxALIGN_LEFT|wxALL, 1); itemStaticBoxSizer18->Add(labelFinalPolycount, 0, wxALIGN_LEFT|wxALL, 1);
wxStaticLine* itemStaticLine19 = new wxStaticLine( itemDialog1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); wxStaticLine* itemStaticLine22 = new wxStaticLine( itemDialog1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
itemFlexGridSizer2->Add(itemStaticLine19, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); itemFlexGridSizer2->Add(itemStaticLine22, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5);
listPolys = new wxDesmumeListCtrl( itemDialog1, ID_DESMUMELISTCTRL1, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_VIRTUAL ); listPolys = new wxDesmumeListCtrl( itemDialog1, ID_ListPolys, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_VIRTUAL );
itemFlexGridSizer2->Add(listPolys, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); itemFlexGridSizer2->Add(listPolys, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5);
tree = new wxTreeCtrl( itemDialog1, ID_TREECTRL, wxDefaultPosition, wxSize(99, 99), wxTR_HAS_BUTTONS |wxTR_HIDE_ROOT|wxTR_ROW_LINES|wxTR_SINGLE ); tree = new wxTreeCtrl( itemDialog1, ID_Tree, wxDefaultPosition, wxSize(99, 99), wxTR_HAS_BUTTONS |wxTR_HIDE_ROOT|wxTR_ROW_LINES|wxTR_SINGLE );
itemFlexGridSizer2->Add(tree, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5); itemFlexGridSizer2->Add(tree, 0, wxALIGN_CENTER_HORIZONTAL|wxGROW|wxALL, 5);
// Connect events and objects // Connect events and objects
panelViewport->Connect(ID_VIEWPORT, wxEVT_PAINT, wxPaintEventHandler(wxdlg3dViewer::OnPanelPaint), NULL, this); panelTexture->Connect(ID_PanelTexture, wxEVT_PAINT, wxPaintEventHandler(wxdlg3dViewer::OnPaintPanelTexture), NULL, this);
panelViewport->Connect(ID_VIEWPORT, wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(wxdlg3dViewer::OnPanelEraseBackground), NULL, this); panelTexture->Connect(ID_PanelTexture, wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(wxdlg3dViewer::OnDoNotEraseBackground), NULL, this);
panelViewport->Connect(ID_PanelViewport, wxEVT_PAINT, wxPaintEventHandler(wxdlg3dViewer::OnPanelPaint), NULL, this);
panelViewport->Connect(ID_PanelViewport, wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(wxdlg3dViewer::OnDoNotEraseBackground), NULL, this);
////@end wxdlg3dViewer content construction ////@end wxdlg3dViewer content construction
} }
@ -285,7 +300,7 @@ void wxdlg3dViewer::OnPanelPaint( wxPaintEvent& event )
* wxEVT_ERASE_BACKGROUND event handler for ID_PANEL * wxEVT_ERASE_BACKGROUND event handler for ID_PANEL
*/ */
void wxdlg3dViewer::OnPanelEraseBackground( wxEraseEvent& event ) void wxdlg3dViewer::OnDoNotEraseBackground( wxEraseEvent& event )
{ {
//blank to block background clearing //blank to block background clearing
} }
@ -374,3 +389,27 @@ void wxDesmumeListCtrl::CreateControls()
} }
/*
* wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_LISTPOLYS
*/
void wxdlg3dViewer::OnListPolysSelected( wxListEvent& event )
{
////@begin wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_LISTPOLYS in wxdlg3dViewer.
// Before editing this code, remove the block markers.
event.Skip();
////@end wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_LISTPOLYS in wxdlg3dViewer.
}
/*
* wxEVT_PAINT event handler for ID_PanelTexture
*/
void wxdlg3dViewer::OnPaintPanelTexture( wxPaintEvent& event )
{
////@begin wxEVT_PAINT event handler for ID_PanelTexture in wxdlg3dViewer.
// Before editing this code, remove the block markers.
wxPaintDC dc(wxDynamicCast(event.GetEventObject(), wxWindow));
////@end wxEVT_PAINT event handler for ID_PanelTexture in wxdlg3dViewer.
}

View File

@ -48,21 +48,22 @@ class wxTreeCtrl;
////@begin control identifiers ////@begin control identifiers
#define ID_X 10000 #define ID_X 10000
#define ID_MATERIALINTERPOLATE 10004 #define ID_CheckMaterialInterpolate 10004
#define ID_CHECKBOX1 10008 #define ID_CHECKBOX1 10008
#define ID_VIEWPORT 10002 #define ID_PanelTexture 10001
#define ID_PanelViewport 10002
#define ID_RADIOBUTTON 10005 #define ID_RADIOBUTTON 10005
#define ID_RADIOBUTTON1 10006 #define ID_RADIOBUTTON1 10006
#define ID_RADIOBUTTON2 10007 #define ID_RADIOBUTTON2 10007
#define ID_DESMUMELISTCTRL1 10009 #define ID_ListPolys 10009
#define ID_TREECTRL 10003 #define ID_Tree 10003
#define SYMBOL_WXDLG3DVIEWER_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxDIALOG_NO_PARENT|wxCLOSE_BOX|wxTAB_TRAVERSAL #define SYMBOL_WXDLG3DVIEWER_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxDIALOG_NO_PARENT|wxCLOSE_BOX|wxTAB_TRAVERSAL
#define SYMBOL_WXDLG3DVIEWER_TITLE _("3D Viewer") #define SYMBOL_WXDLG3DVIEWER_TITLE _("3D Viewer")
#define SYMBOL_WXDLG3DVIEWER_IDNAME ID_X #define SYMBOL_WXDLG3DVIEWER_IDNAME ID_X
#define SYMBOL_WXDLG3DVIEWER_SIZE wxSize(399, 300) #define SYMBOL_WXDLG3DVIEWER_SIZE wxSize(399, 300)
#define SYMBOL_WXDLG3DVIEWER_POSITION wxDefaultPosition #define SYMBOL_WXDLG3DVIEWER_POSITION wxDefaultPosition
#define SYMBOL_WXDESMUMELISTCTRL_STYLE wxLC_REPORT|wxLC_VIRTUAL #define SYMBOL_WXDESMUMELISTCTRL_STYLE wxLC_REPORT|wxLC_VIRTUAL
#define SYMBOL_WXDESMUMELISTCTRL_IDNAME ID_DESMUMELISTCTRL1 #define SYMBOL_WXDESMUMELISTCTRL_IDNAME ID_ListPolys
#define SYMBOL_WXDESMUMELISTCTRL_SIZE wxDefaultSize #define SYMBOL_WXDESMUMELISTCTRL_SIZE wxDefaultSize
#define SYMBOL_WXDESMUMELISTCTRL_POSITION wxDefaultPosition #define SYMBOL_WXDESMUMELISTCTRL_POSITION wxDefaultPosition
////@end control identifiers ////@end control identifiers
@ -103,16 +104,22 @@ public:
////@begin wxdlg3dViewer event handler declarations ////@begin wxdlg3dViewer event handler declarations
/// wxEVT_CLOSE_WINDOW event handler for ID_X /// wxEVT_CLOSE_WINDOW event handler for ID_X
void OnCloseWindow( wxCloseEvent& event ); virtual void OnCloseWindow( wxCloseEvent& event );
/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_MATERIALINTERPOLATE /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CheckMaterialInterpolate
void OnMaterialInterpolateClick( wxCommandEvent& event ); virtual void OnMaterialInterpolateClick( wxCommandEvent& event );
/// wxEVT_PAINT event handler for ID_VIEWPORT /// wxEVT_PAINT event handler for ID_PanelTexture
void OnPanelPaint( wxPaintEvent& event ); virtual void OnPaintPanelTexture( wxPaintEvent& event );
/// wxEVT_ERASE_BACKGROUND event handler for ID_VIEWPORT /// wxEVT_ERASE_BACKGROUND event handler for ID_PanelTexture
void OnPanelEraseBackground( wxEraseEvent& event ); virtual void OnDoNotEraseBackground( wxEraseEvent& event );
/// wxEVT_PAINT event handler for ID_PanelViewport
virtual void OnPanelPaint( wxPaintEvent& event );
/// wxEVT_COMMAND_LIST_ITEM_SELECTED event handler for ID_ListPolys
virtual void OnListPolysSelected( wxListEvent& event );
////@end wxdlg3dViewer event handler declarations ////@end wxdlg3dViewer event handler declarations
@ -130,7 +137,9 @@ public:
////@begin wxdlg3dViewer member variables ////@begin wxdlg3dViewer member variables
wxCheckBox* checkMaterialInterpolate; wxCheckBox* checkMaterialInterpolate;
wxWindow* panelTexture;
wxWindow* panelViewport; wxWindow* panelViewport;
wxStaticText* labelFrameCounter;
wxStaticText* labelUserPolycount; wxStaticText* labelUserPolycount;
wxStaticText* labelFinalPolycount; wxStaticText* labelFinalPolycount;
wxDesmumeListCtrl* listPolys; wxDesmumeListCtrl* listPolys;