This commit is contained in:
Daveo 2000-10-30 21:16:48 +00:00
parent 4ced8e9af2
commit bd07373b05
6 changed files with 41 additions and 14 deletions

View file

@ -130,8 +130,8 @@ float YOfs=0;
RECT ThisRect; RECT ThisRect;
ParentWindow->GetWindowRect(&ThisRect); ParentWindow->GetWindowRect(&ThisRect);
XS=MapPos.z*Layers[ActiveLayer]->GetLayerZPos(); XS=MapPos.z*2;//*Layers[ActiveLayer]->GetLayerZPos();
YS=MapPos.z*Layers[ActiveLayer]->GetLayerZPos(); YS=MapPos.z*2;//*Layers[ActiveLayer]->GetLayerZPos();
XS/=((ThisRect.right-ThisRect.left)); XS/=((ThisRect.right-ThisRect.left));
YS/=((ThisRect.bottom-ThisRect.top)); YS/=((ThisRect.bottom-ThisRect.top));

View file

@ -45,6 +45,8 @@ public:
void UpdateView(float XOfs,float YOfs,float ZOfs); void UpdateView(float XOfs,float YOfs,float ZOfs);
void SetMouseMode(MOUSE_MODE CurrentMode,MOUSE_MODE NewMode); void SetMouseMode(MOUSE_MODE CurrentMode,MOUSE_MODE NewMode);
Vec &GetMapPos() {return(MapPos);}
// Layers // Layers
void LayerSetActive(int Layer); void LayerSetActive(int Layer);
int LayerGetActive(); int LayerGetActive();

View file

@ -70,10 +70,19 @@ CLayer::~CLayer()
/*****************************************************************************/ /*****************************************************************************/
void CLayer::Render(Vec &MapPos,BOOL Is3d) void CLayer::Render(Vec &MapPos,BOOL Is3d)
{ {
/*
if (Is3d && CanRender3d()) if (Is3d && CanRender3d())
Render3d(MapPos); Render3d(MapPos);
else else
Render2d(MapPos); Render2d(MapPos);
*/
Vec ZeroPos(0,0,0);
if (Is3d && CanRender3d())
Render3d(ZeroPos);
else
Render2d(ZeroPos);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -102,24 +111,16 @@ return;
float asd=0; float asd=0;
void CLayer::Render3d(Vec &MapPos) void CLayer::Render3d(Vec &MapPos)
{ {
float ZOfs=GetLayerZPos();
float XYDiv=GetLayerZPosDiv(); float XYDiv=GetLayerZPosDiv();
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
glLoadIdentity(); glLoadIdentity();
glTranslatef(MapPos.x/XYDiv,MapPos.y/XYDiv,MapPos.z-ZOfs); glTranslatef(MapPos.x/XYDiv,MapPos.y/XYDiv,MapPos.z);
glRotatef(asd,0,1,0); glRotatef(asd,0,1,0);
asd+=0.5; asd+=0.5;
/*
glBegin(GL_QUADS);
SetTestColor();
BuildGLBox(-1,LayerWidth+1,-1,0,0,0+1); // Bottom
BuildGLBox(-1,LayerWidth+1,LayerHeight+1,LayerHeight,0,0+1); // Top
BuildGLBox(-1,0,LayerHeight,0,0,0+1); // Left
BuildGLBox(LayerWidth,LayerWidth+1,LayerHeight,0,0,0+1); // Right
glEnd();
*/
glCallList(TestTile); glCallList(TestTile);
} }

View file

@ -36,7 +36,6 @@ virtual void Render2d(Vec &MapPos);
virtual void Render3d(Vec &MapPos); virtual void Render3d(Vec &MapPos);
virtual float GetLayerZPosDiv()=0; virtual float GetLayerZPosDiv()=0;
virtual float GetLayerZPos()=0;
virtual BOOL CanRender3d()=0; virtual BOOL CanRender3d()=0;
virtual void SetTestColor()=0; virtual void SetTestColor()=0;

View file

@ -69,6 +69,7 @@ void CMapEditView::OnCreateGL()
glClearDepth(1.0f); // Depth Buffer Setup glClearDepth(1.0f); // Depth Buffer Setup
glEnable(GL_DEPTH_TEST); // Enables Depth Testing glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do
// glDepthRange(-100000,+100000);
glEnable(GL_LIGHT0); // Quick And Dirty Lighting (Assumes Light0 Is SetUp) glEnable(GL_LIGHT0); // Quick And Dirty Lighting (Assumes Light0 Is SetUp)
glEnable(GL_LIGHTING); // Enable Lighting glEnable(GL_LIGHTING); // Enable Lighting
glEnable(GL_COLOR_MATERIAL); // Enable Material Coloring glEnable(GL_COLOR_MATERIAL); // Enable Material Coloring
@ -78,6 +79,27 @@ void CMapEditView::OnCreateGL()
} }
/////////////////////////////////////////////////////////////////////////////
void CMapEditView::OnSizeGL(int cx, int cy)
{
// set correspondence between window and OGL viewport
glViewport(0,0,cx,cy);
}
void CMapEditView::UpdateCamera()
{
//Vec &CamPos=Core
// update the camera
glPushMatrix();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0,m_dAspectRatio,0.1f, 10.0f);
glTranslatef(0.0f,0.0f,-4.f);
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
}
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
void CMapEditView::OnDrawGL() void CMapEditView::OnDrawGL()
{ {

View file

@ -21,6 +21,9 @@ public:
CMapEditDoc* GetDocument(); CMapEditDoc* GetDocument();
void OnCreateGL(); void OnCreateGL();
void OnDrawGL(); void OnDrawGL();
void OnSizeGL(int cx, int cy);
void UpdateCamera();
// Operations // Operations
public: public: