Templates for new implementation

- added template of classes/structs for new implementation
- changed #include paths
- updated README files
dev-ui
Piotr Dziwinski 2012-06-22 16:31:55 +02:00
parent 4531ac88d3
commit 8bb223e679
148 changed files with 1892 additions and 455 deletions

View File

@ -2,8 +2,27 @@
add_subdirectory(CBot)
set(SOURCES
app/d3dapp.cpp
app/joystick.cpp
old/d3dapp.cpp
old/joystick.cpp
old/blitz.cpp
old/camera.cpp
old/cloud.cpp
old/light.cpp
old/model.cpp
old/particule.cpp
old/planet.cpp
old/pyro.cpp
old/terrain.cpp
old/text.cpp
old/water.cpp
old/d3dengine.cpp
old/d3denum.cpp
old/d3dframe.cpp
old/d3dtextr.cpp
old/d3dutil.cpp
old/d3dmath.cpp
old/math3d.cpp
app/app.cpp
common/event.cpp
common/iman.cpp
common/metafile.cpp
@ -11,24 +30,19 @@ common/misc.cpp
common/modfile.cpp
common/profile.cpp
common/restext.cpp
graphics/common/blitz.cpp
graphics/common/camera.cpp
graphics/common/cloud.cpp
graphics/common/color.cpp
graphics/common/engine.cpp
graphics/common/light.cpp
graphics/common/lightning.cpp
graphics/common/model.cpp
graphics/common/particule.cpp
graphics/common/particle.cpp
graphics/common/planet.cpp
graphics/common/pyro.cpp
graphics/common/terrain.cpp
graphics/common/text.cpp
graphics/common/water.cpp
graphics/d3d/d3dengine.cpp
graphics/d3d/d3denum.cpp
graphics/d3d/d3dframe.cpp
graphics/d3d/d3dtextr.cpp
graphics/d3d/d3dutil.cpp
math/old/d3dmath.cpp
math/old/math3d.cpp
object/auto/auto.cpp
object/auto/autobase.cpp
object/auto/autoconvert.cpp
@ -125,7 +139,7 @@ ui/window.cpp
add_definitions(-DSTRICT -DD3D_OVERLOADS)
# Change to DirectX SDK directory
set(DXSDK_DIR "/mnt/windows/dxsdk")
set(DXSDK_DIR "c:/dxsdk")
include_directories(${DXSDK_DIR}/include .)

View File

@ -1,3 +1,3 @@
src/app
Contains the main class of the application and joystick module (to be incorporated into application module once using SDL).
Contains the main class of the application.

23
src/app/app.cpp Normal file
View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// app.cpp
#include "app/app.h"
// TODO implementation

27
src/app/app.h Normal file
View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// app.h
#pragma once
class CApplication
{
// TODO
};

View File

@ -26,9 +26,9 @@
#include <d3d.h>
#include "common/struct.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "old/d3dutil.h"
#include "common/language.h"
#include "common/event.h"
#include "common/misc.h"

View File

@ -23,13 +23,13 @@
#include "common/struct.h"
#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "common/language.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "math/old/math3d.h"
#include "old/math3d.h"
#include "common/modfile.h"

View File

@ -20,7 +20,7 @@
#include "math/vector.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
class CInstanceManager;

View File

@ -17,7 +17,7 @@
#include <stdio.h>
#include "common/struct.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
#include "common/language.h"
#include "common/misc.h"
#include "common/event.h"

View File

@ -21,7 +21,7 @@
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
#include "common/event.h"

View File

@ -1,5 +1,3 @@
src/graphics
In the future, it will contain common interface to handling 3D graphics with concrete implementations for OpenGL and DirectX.
Currently, there is only the D3D interface.
Graphics engine

View File

@ -0,0 +1,5 @@
src/graphics/common
Universal structs and classes used in graphics engine
Concrete implementation in OpenGL is in graphics/opengl directory.

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// camera.cpp
#include "graphics/common/camera.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// camera.h
#pragma once
namespace Gfx {
// TODO CCamera
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// cloud.cpp
#include "graphics/common/cloud.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// cloud.h
#pragma once
namespace Gfx {
// TODO CCloud
}; // namespace Gfx

View File

@ -18,6 +18,8 @@
#include "graphics/common/color.h"
#include "math/func.h"
// Returns the color corresponding long.
@ -38,7 +40,7 @@ long Gfx::RetColor(float intensity)
// Returns the color corresponding long.
long Gfx::RetColor(Color intensity)
long Gfx::RetColor(Gfx::Color intensity)
{
long color;
@ -52,9 +54,9 @@ long Gfx::RetColor(Color intensity)
// Returns the color corresponding Color.
Color Gfx::RetColor(long intensity)
Gfx::Color Gfx::RetColor(long intensity)
{
Color color;
Gfx::Color color;
color.r = (float)((intensity>>16)&0xff)/256.0f;
color.g = (float)((intensity>>8 )&0xff)/256.0f;
@ -67,7 +69,7 @@ Color Gfx::RetColor(long intensity)
// RGB to HSV conversion.
void Gfx::RGB2HSV(Color src, ColorHSV &dest)
void Gfx::RGB2HSV(Gfx::Color src, Gfx::ColorHSV &dest)
{
float min, max, delta;
@ -107,7 +109,7 @@ void Gfx::RGB2HSV(Color src, ColorHSV &dest)
// HSV to RGB conversion.
void Gfx::HSV2RGB(ColorHSV src, Color &dest)
void Gfx::HSV2RGB(Gfx::ColorHSV src, Gfx::Color &dest)
{
int i;
float f,v,p,q,t;

View File

@ -19,20 +19,23 @@
#pragma once
// TODO
namespace Gfx {
struct Color
{
float r, g, b, a;
float r, g, b, a;
Color(float aR = 0.0f, float aG = 0.0f, float aB = 0.0f, float aA = 0.0f)
: r(aR), g(aG), b(aB), a(aA) {}
};
struct ColorHSV
{
float h,s,v;
float h, s, v;
ColorHSV(float aH = 0.0f, float aS = 0.0f, float aV = 0.0f)
: h(aH), s(aS), v(aV) {}
};
@ -40,8 +43,8 @@ long RetColor(float intensity);
long RetColor(Color intensity);
Color RetColor(long intensity);
void RGB2HSV(Color src, ColorHSV &dest);
void HSV2RGB(ColorHSV src, Color &dest);
void RGB2HSV(Color src, ColorHSV &dest);
void HSV2RGB(ColorHSV src, Color &dest);
};
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// engine.cpp
#include "graphics/common/engine.h"
// TODO implementation

View File

@ -0,0 +1,712 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// engine.h
#pragma once
#include "math/point.h"
#include "math/vector.h"
#include "math/matrix.h"
namespace Gfx {
/*
TODO
class CApplication;
class CInstanceManager;
class CObject;
class CLight;
class CText;
class CParticule;
class CWater;
class CCloud;
class CBlitz;
class CPlanet;
class CSound;
class CTerrain;
//const int MAXOBJECT = 1200;
//const int MAXSHADOW = 500;
//const int MAXGROUNDSPOT = 100;
enum ObjectType
{
//! Object doesn't exist
OBJTYPE_NULL = 0,
//! Terrain
OBJTYPE_TERRAIN = 1,
//! Fixed object
OBJTYPE_FIX = 2,
//! Moving object
OBJTYPE_VEHICULE = 3,
//! Part of a moving object
OBJTYPE_DESCENDANT = 4,
//! Fixed object type quartz
OBJTYPE_QUARTZ = 5,
//! Fixed object type metal
OBJTYPE_METAL = 6
};
enum TriangleType
{
//! triangles
TRIANGLE_TYPE_6T = 1,
//! surfaces
TRIANGLE_TYPE_6S = 2
};
enum Mapping
{
MAPPING_X = 1,
MAPPING_Y = 2,
MAPPING_Z = 3,
MAPPING_1X = 4,
MAPPING_1Y = 5,
MAPPING_1Z = 6
};
enum MouseType
{
MOUSE_HIDE = 0, // no mouse
MOUSE_NORM = 1,
MOUSE_WAIT = 2,
MOUSE_EDIT = 3,
MOUSE_HAND = 4,
MOUSE_CROSS = 5,
MOUSE_SHOW = 6,
MOUSE_NO = 7,
MOUSE_MOVE = 8, // +
MOUSE_MOVEH = 9, // -
MOUSE_MOVEV = 10, // |
MOUSE_MOVED = 11, // /
MOUSE_MOVEI = 12, // \ //
MOUSE_SCROLLL = 13, // <<
MOUSE_SCROLLR = 14, // >>
MOUSE_SCROLLU = 15, // ^
MOUSE_SCROLLD = 16, // v
MOUSE_TARGET = 17
};
enum ShadowType
{
SHADOW_NORM = 0,
SHADOW_WORM = 1
};
enum RenderState
{
//! Normal opaque materials
RSTATE_NORMAL = 0,
//! The transparent texture (black = no)
RSTATE_TTEXTURE_BLACK = (1<<0),
//! The transparent texture (white = no)
RSTATE_TTEXTURE_WHITE = (1<<1),
//! The transparent diffuse color
RSTATE_TDIFFUSE = (1<<2),
//! Texture wrap
RSTATE_WRAP = (1<<3),
//! Texture borders with solid color
RSTATE_CLAMP = (1<<4),
//! Light texture (ambient max)
RSTATE_LIGHT = (1<<5),
//! Double black texturing
RSTATE_DUAL_BLACK = (1<<6),
//! Double white texturing
RSTATE_DUAL_WHITE = (1<<7),
//! Part 1 (no change in. MOD!)
RSTATE_PART1 = (1<<8),
//! Part 2
RSTATE_PART2 = (1<<9),
//! Part 3
RSTATE_PART3 = (1<<10),
//! Part 4
RSTATE_PART4 = (1<<11),
//! Double-sided face
RSTATE_2FACE = (1<<12),
//! Image using alpha channel
RSTATE_ALPHA = (1<<13),
//! Always use 2nd floor texturing
RSTATE_SECOND = (1<<14),
//! Causes the fog
RSTATE_FOG = (1<<15),
//! The transparent color (black = no)
RSTATE_TCOLOR_BLACK = (1<<16),
//! The transparent color (white = no)
RSTATE_TCOLOR_WHITE = (1<<17)
};
struct Triangle
{
Gfx::VertexTex2 triangle[3];
Gfx::Material material;
int state;
char texName1[20];
char texName2[20];
};
struct ObjLevel6
{
int totalPossible;
int totalUsed;
Gfx::Material material;
int state;
Gfx::TriangleType type;
Math::VertexTex2 vertex[1];
};
struct ObjLevel5
{
int totalPossible;
int totalUsed;
int reserve;
Gfx::ObjLevel6* table[1];
};
struct ObjLevel4
{
int totalPossible;
int totalUsed;
float min, max;
Gfx::ObjLevel5* table[1];
};
struct ObjLevel3
{
int totalPossible;
int totalUsed;
int objRank;
Gfx::ObjLevel4* table[1];
};
struct ObjLevel2
{
int totalPossible;
int totalUsed;
char texName1[20];
char texName2[20];
Gfx::ObjLevel3* table[1];
};
struct ObjLevel1
{
int totalPossible;
int totalUsed;
Gfx::ObjLevel2* table[1];
};
struct Object
{
bool used; // true -> object exists
bool visible; // true -> visible object
bool drawWorld; // true -> shape behind the interface
bool drawFront; // true -> shape before the interface
int totalTriangle; // number of triangles used
Gfx::ObjectType type; // type of the object (TYPE*)
Math::Matrix transform; // transformation matrix
float distance; // distance point of view - original
Math::Vector bboxMin; // bounding box of the object
Math::Vector bboxMax; // (the origin 0, 0, 0 is always included)
float radius; // radius of the sphere at the origin
int shadowRank; // rank of the associated shadow
float transparency; // transparency of the object (0 .. 1)
};
struct Shadow
{
bool used; // true -> object exists
bool hide; // true -> invisible shadow (object carried by ex.)
int objRank; // rank of the object
Gfx::ShadowType type; // type of shadow
Math::Vector pos; // position for the shadow
Math::Vector normal; // normal terrain
float angle; // angle of the shadow
float radius; // radius of the shadow
float intensity; // intensity of the shadow
float height; // height from the ground
};
struct GroundSpot
{
bool used; // true -> object exists
Gfx::Color color; // color of the shadow
float min, max; // altitudes min / max
float smooth; // transition area
Math::Vector pos; // position for the shadow
float radius; // radius of the shadow
Math::Vector drawPos; // drawn to position the shade
float drawRadius; // radius of the shadow drawn
};
struct GroundMark
{
bool used; // true -> object exists
bool draw; // true -> drawn mark
int phase; // 1 = increase, 2 = fixed, 3 = decrease
float delay[3]; // time for 3 phases
float fix; // fixed time
Math::Vector pos; // position for marks
float radius; // radius of marks
float intensity; // color intensity
Math::Vector drawPos; // drawn in position marks
float drawRadius; // radius marks drawn
float drawIntensity; // current drawn
int dx, dy; // dimensions table
char* table; // pointer to the table
};
class CGfxEngine
{
public:
CGfxEngine(CInstanceManager *iMan, CApplication *app);
~CGfxEngine();
void SetDevice(Gfx::Device *device);
Gfx::Device* RetDevice();
void SetTerrain(Gfx::CTerrain* terrain);
bool WriteProfile();
void SetPause(bool bPause);
bool RetPause();
void SetMovieLock(bool bLock);
bool RetMovieLock();
void SetShowStat(bool bShow);
bool RetShowStat();
void SetRenderEnable(bool bEnable);
int OneTimeSceneInit();
int InitDeviceObjects();
int DeleteDeviceObjects();
int RestoreSurfaces();
int Render();
int FrameMove(float rTime);
void StepSimul(float rTime);
int FinalCleanup();
void AddStatisticTriangle(int nb);
int RetStatisticTriangle();
void SetHiliteRank(int *rankList);
bool GetHilite(Math::Point &p1, Math::Point &p2);
bool GetSpriteCoord(int &x, int &y);
void SetInfoText(int line, char* text);
char * RetInfoText(int line);
//LRESULT MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
void FirstExecuteAdapt(bool bFirst);
//int GetVidMemTotal();
//bool IsVideo8MB();
//bool IsVideo32MB();
bool EnumDevices(char *bufDevices, int lenDevices, char *bufModes, int lenModes, int &totalDevices, int &selectDevices, int &totalModes, int &selectModes);
bool RetFullScreen();
bool ChangeDevice(char *device, char *mode, bool bFull);
Math::Matrix* RetMatView();
Math::Matrix* RetMatLeftView();
Math::Matrix* RetMatRightView();
void TimeInit();
void TimeEnterGel();
void TimeExitGel();
float TimeGet();
int RetRestCreate();
int CreateObject();
void FlushObject();
bool DeleteObject(int objRank);
bool SetDrawWorld(int objRank, bool bDraw);
bool SetDrawFront(int objRank, bool bDraw);
bool AddTriangle(int objRank, Math::VertexTex2* vertex, int nb, const Gfx::Material &mat, int state, char* texName1, char* texName2, float min, float max, bool bGlobalUpdate);
bool AddSurface(int objRank, Math::VertexTex2* vertex, int nb, const Gfx::Material &mat, int state, char* texName1, char* texName2, float min, float max, bool bGlobalUpdate);
bool AddQuick(int objRank, Gfx::ObjLevel6* buffer, char* texName1, char* texName2, float min, float max, bool bGlobalUpdate);
Gfx::ObjLevel6* SearchTriangle(int objRank, const Gfx::Material &mat, int state, char* texName1, char* texName2, float min, float max);
void ChangeLOD();
bool ChangeSecondTexture(int objRank, char* texName2);
int RetTotalTriangles(int objRank);
int GetTriangles(int objRank, float min, float max, Gfx::Triangle* buffer, int size, float percent);
bool GetBBox(int objRank, Math::Vector &min, Math::Vector &max);
bool ChangeTextureMapping(int objRank, const Gfx::Material &mat, int state, char* texName1, char* texName2, float min, float max, Gfx::Maping mode, float au, float bu, float av, float bv);
bool TrackTextureMapping(int objRank, const Gfx::Material &mat, int state, char* texName1, char* texName2, float min, float max, Gfx::Maping mode, float pos, float factor, float tl, float ts, float tt);
bool SetObjectTransform(int objRank, const Math::Matrix &transform);
bool GetObjectTransform(int objRank, Math::Matrix &transform);
bool SetObjectType(int objRank, Gfx::ObjectType type);
Gfx::ObjectType RetObjectType(int objRank);
bool SetObjectTransparency(int objRank, float value);
bool ShadowCreate(int objRank);
void ShadowDelete(int objRank);
bool SetObjectShadowHide(int objRank, bool bHide);
bool SetObjectShadowType(int objRank, Gfx::ShadowType type);
bool SetObjectShadowPos(int objRank, const Math::Vector &pos);
bool SetObjectShadowNormal(int objRank, const Math::Vector &n);
bool SetObjectShadowAngle(int objRank, float angle);
bool SetObjectShadowRadius(int objRank, float radius);
bool SetObjectShadowIntensity(int objRank, float intensity);
bool SetObjectShadowHeight(int objRank, float h);
float RetObjectShadowRadius(int objRank);
void GroundSpotFlush();
int GroundSpotCreate();
void GroundSpotDelete(int rank);
bool SetObjectGroundSpotPos(int rank, const Math::Vector &pos);
bool SetObjectGroundSpotRadius(int rank, float radius);
bool SetObjectGroundSpotColor(int rank, const Gfx::Color &color);
bool SetObjectGroundSpotMinMax(int rank, float min, float max);
bool SetObjectGroundSpotSmooth(int rank, float smooth);
int GroundMarkCreate(Math::Vector pos, float radius, float delay1, float delay2, float delay3, int dx, int dy, char* table);
bool GroundMarkDelete(int rank);
void Update();
void SetViewParams(const Math::Vector &vEyePt, const Math::Vector &vLookatPt, const Math::Vector &vUpVec, float fEyeDistance);
bool FreeTexture(char* name);
bool LoadTexture(char* name, int stage=0);
bool LoadAllTexture();
void SetLimitLOD(int rank, float limit);
float RetLimitLOD(int rank, bool bLast=false);
void SetTerrainVision(float vision);
void SetGroundSpot(bool bMode);
bool RetGroundSpot();
void SetShadow(bool bMode);
bool RetShadow();
void SetDirty(bool bMode);
bool RetDirty();
void SetFog(bool bMode);
bool RetFog();
bool RetStateColor();
void SetSecondTexture(int texNum);
int RetSecondTexture();
void SetRankView(int rank);
int RetRankView();
void SetDrawWorld(bool bDraw);
void SetDrawFront(bool bDraw);
void SetAmbiantColor(const Gfx::Color &color, int rank=0);
Gfx::Color RetAmbiantColor(int rank=0);
void SetWaterAddColor(const Gfx::Color &color);
Gfx::Color RetWaterAddColor();
void SetFogColor(const Gfx::Color &color, int rank=0);
Gfx::Color RetFogColor(int rank=0);
void SetDeepView(float length, int rank=0, bool bRef=false);
float RetDeepView(int rank=0);
void SetFogStart(float start, int rank=0);
float RetFogStart(int rank=0);
void SetBackground(char *name, Gfx::Color up=0, Gfx::Color down=0, Gfx::Color cloudUp=0, Gfx::Color cloudDown=0, bool bFull=false, bool bQuarter=false);
void RetBackground(char *name, Gfx::Color &up, Gfx::Color &down, Gfx::Color &cloudUp, Gfx::Color &cloudDown, bool &bFull, bool &bQuarter);
void SetFrontsizeName(char *name);
void SetOverFront(bool bFront);
void SetOverColor(const Gfx::Color &color=0, int mode=RSTATE_TCOLOR_BLACK);
void SetParticuleDensity(float value);
float RetParticuleDensity();
float ParticuleAdapt(float factor);
void SetClippingDistance(float value);
float RetClippingDistance();
void SetObjectDetail(float value);
float RetObjectDetail();
void SetGadgetQuantity(float value);
float RetGadgetQuantity();
void SetTextureQuality(int value);
int RetTextureQuality();
void SetTotoMode(bool bPresent);
bool RetTotoMode();
void SetLensMode(bool bPresent);
bool RetLensMode();
void SetWaterMode(bool bPresent);
bool RetWaterMode();
void SetBlitzMode(bool bPresent);
bool RetBlitzMode();
void SetSkyMode(bool bPresent);
bool RetSkyMode();
void SetBackForce(bool bPresent);
bool RetBackForce();
void SetPlanetMode(bool bPresent);
bool RetPlanetMode();
void SetLightMode(bool bPresent);
bool RetLightMode();
void SetEditIndentMode(bool bAuto);
bool RetEditIndentMode();
void SetEditIndentValue(int value);
int RetEditIndentValue();
void SetSpeed(float speed);
float RetSpeed();
void SetTracePrecision(float factor);
float RetTracePrecision();
void SetFocus(float focus);
float RetFocus();
Math::Vector RetEyePt();
Math::Vector RetLookatPt();
float RetEyeDirH();
float RetEyeDirV();
Math::Point RetDim();
void UpdateMatProj();
void ApplyChange();
void FlushPressKey();
void ResetKey();
void SetKey(int keyRank, int option, int key);
int RetKey(int keyRank, int option);
void SetJoystick(bool bEnable);
bool RetJoystick();
void SetDebugMode(bool bMode);
bool RetDebugMode();
bool RetSetupMode();
bool IsVisiblePoint(const Math::Vector &pos);
int DetectObject(Math::Point mouse);
void SetState(int state, Gfx::Color color=0xffffffff);
void SetTexture(char *name, int stage=0);
void SetMaterial(const Gfx::Material &mat);
void MoveMousePos(Math::Point pos);
void SetMousePos(Math::Point pos);
Math::Point RetMousePos();
void SetMouseType(Gfx::MouseType type);
Gfx::MouseType RetMouseType();
void SetMouseHide(bool bHide);
bool RetMouseHide();
void SetNiceMouse(bool bNice);
bool RetNiceMouse();
bool RetNiceMouseCap();
CText* RetText();
bool ChangeColor(char *name, Gfx::Color colorRef1, Gfx::Color colorNew1, Gfx::Color colorRef2, Gfx::Color colorNew2, float tolerance1, float tolerance2, Math::Point ts, Math::Point ti, Math::Point *pExclu=0, float shift=0.0f, bool bHSV=false);
bool OpenImage(char *name);
bool CopyImage();
bool LoadImage();
bool ScrollImage(int dx, int dy);
bool SetDot(int x, int y, Gfx::Color color);
bool CloseImage();
bool WriteScreenShot(char *filename, int width, int height);
//bool GetRenderDC(HDC &hDC);
//bool ReleaseRenderDC(HDC &hDC);
//PBITMAPINFO CreateBitmapInfoStruct(HBITMAP hBmp);
//bool CreateBMPFile(LPTSTR pszFile, PBITMAPINFO pbi, HBITMAP hBMP, HDC hDC);
protected:
void MemSpace1(Gfx::ObjLevel1 *&p, int nb);
void MemSpace2(Gfx::ObjLevel2 *&p, int nb);
void MemSpace3(Gfx::ObjLevel3 *&p, int nb);
void MemSpace4(Gfx::ObjLevel4 *&p, int nb);
void MemSpace5(Gfx::ObjLevel5 *&p, int nb);
void MemSpace6(Gfx::ObjLevel6 *&p, int nb);
Gfx::ObjLevel2* AddLevel1(Gfx::ObjLevel1 *&p1, char* texName1, char* texName2);
Gfx::ObjLevel3* AddLevel2(Gfx::ObjLevel2 *&p2, int objRank);
Gfx::ObjLevel4* AddLevel3(Gfx::ObjLevel3 *&p3, float min, float max);
Gfx::ObjLevel5* AddLevel4(Gfx::ObjLevel4 *&p4, int reserve);
Gfx::ObjLevel6* AddLevel5(Gfx::ObjLevel5 *&p5, Gfx::TriangleType type, const Gfx::Material &mat, int state, int nb);
bool IsVisible(int objRank);
bool DetectBBox(int objRank, Math::Point mouse);
bool DetectTriangle(Math::Point mouse, Math::VertexTex2 *triangle, int objRank, float &dist);
bool TransformPoint(Math::Vector &p2D, int objRank, Math::Vector p3D);
void ComputeDistance();
void UpdateGeometry();
void RenderGroundSpot();
void DrawShadow();
void DrawBackground();
void DrawBackgroundGradient(Gfx::Color up, Gfx::Color down);
void DrawBackgroundImageQuarter(Math::Point p1, Math::Point p2, char *name);
void DrawBackgroundImage();
void DrawPlanet();
void DrawFrontsize();
void DrawOverColor();
bool GetBBox2D(int objRank, Math::Point &min, Math::Point &max);
void DrawHilite();
void DrawMouse();
void DrawSprite(Math::Point pos, Math::Point dim, int icon);
protected:
CInstanceManager* m_iMan;
CApplication* m_app;
Gfx::Device* m_device;
CText* m_text;
CLight* m_light;
CParticule* m_particule;
CWater* m_water;
CCloud* m_cloud;
CBlitz* m_blitz;
CPlanet* m_planet;
CSound* m_sound;
CTerrain* m_terrain;
int m_blackSrcBlend[2];
int m_blackDestBlend[2];
int m_whiteSrcBlend[2];
int m_whiteDestBlend[2];
int m_diffuseSrcBlend[2];
int m_diffuseDestBlend[2];
int m_alphaSrcBlend[2];
int m_alphaDestBlend[2];
Math::Matrix m_matProj;
Math::Matrix m_matLeftView;
Math::Matrix m_matRightView;
Math::Matrix m_matView;
float m_focus;
Math::Matrix m_matWorldInterface;
Math::Matrix m_matProjInterface;
Math::Matrix m_matViewInterface;
long m_baseTime;
long m_stopTime;
float m_absTime;
float m_lastTime;
float m_speed;
bool m_bPause;
bool m_bRender;
bool m_bMovieLock;
POINT m_dim;
POINT m_lastDim;
Gfx::ObjLevel1* m_objectPointer;
int m_objectParamTotal;
Gfx::Object* m_objectParam;
int m_shadowTotal;
Gfx::Shadow* m_shadow;
Gfx::GroundSpot* m_groundSpot;
Gfx::GroundMark m_groundMark;
Math::Vector m_eyePt;
Math::Vector m_lookatPt;
float m_eyeDirH;
float m_eyeDirV;
int m_rankView;
Gfx::Color m_ambiantColor[2];
Gfx::Color m_backColor[2];
Gfx::Color m_fogColor[2];
float m_deepView[2];
float m_fogStart[2];
Gfx::Color m_waterAddColor;
int m_statisticTriangle;
bool m_bUpdateGeometry;
char m_infoText[10][200];
int m_alphaMode;
bool m_bStateColor;
bool m_bForceStateColor;
bool m_bGroundSpot;
bool m_bShadow;
bool m_bDirty;
bool m_bFog;
bool m_bFirstGroundSpot;
int m_secondTexNum;
char m_backgroundName[50];
Gfx::Color m_backgroundColorUp;
Gfx::Color m_backgroundColorDown;
Gfx::Color m_backgroundCloudUp;
Gfx::Color m_backgroundCloudDown;
bool m_bBackgroundFull;
bool m_bBackgroundQuarter;
bool m_bOverFront;
Gfx::Color m_overColor;
int m_overMode;
char m_frontsizeName[50];
bool m_bDrawWorld;
bool m_bDrawFront;
float m_limitLOD[2];
float m_particuleDensity;
float m_clippingDistance;
float m_lastClippingDistance;
float m_objectDetail;
float m_lastObjectDetail;
float m_terrainVision;
float m_gadgetQuantity;
int m_textureQuality;
bool m_bTotoMode;
bool m_bLensMode;
bool m_bWaterMode;
bool m_bSkyMode;
bool m_bBackForce;
bool m_bPlanetMode;
bool m_bLightMode;
bool m_bEditIndentMode;
int m_editIndentValue;
float m_tracePrecision;
int m_hiliteRank[100];
bool m_bHilite;
Math::Point m_hiliteP1;
Math::Point m_hiliteP2;
int m_lastState;
Gfx::Color m_lastColor;
char m_lastTexture[2][50];
Gfx::Material m_lastMaterial;
Math::Point m_mousePos;
Gfx::MouseType m_mouseType;
bool m_bMouseHide;
bool m_bNiceMouse;
//LPDIRECTDRAWSURFACE7 m_imageSurface;
//DDSURFACEDESC2 m_imageDDSD;
//WORD* m_imageCopy;
//int m_imageDX;
//int m_imageDY;
};*/
}; // namespace Gfx

View File

@ -0,0 +1,22 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// light.cpp
#include "graphics/common/light.h"
// TODO implementation

108
src/graphics/common/light.h Normal file
View File

@ -0,0 +1,108 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// light.h
#pragma once
namespace Gfx {
/** \enum LightType Type of light */
enum LightType
{
LT_Point,
LT_Spot,
LT_Directional
};
/**
* \struct Light Light
*
* This structure was created as analog to DirectX's D3DLIGHT.
*
* It contains analogous fields as the D3DLIGHT struct.
*/
struct Light
{
//! Type of light source
Gfx::LightType type;
//! Color of light
Gfx::Color color;
//! Position in world space
Math::Vector position;
//! Direction in world space
Math::Vector direction;
//! Cutoff range
float range;
//! Falloff
float falloff;
//! Constant attenuation
float attenuation0;
//! Linear attenuation
float attenuation1;
//! Quadratic attenuation
float attenuation2;
//! Inner angle of spotlight cone
float theta;
//! Outer angle of spotlight cone
float phi;
Light() : type(LT_Point), range(0.0f), falloff(0.0f),
attenuation0(0.0f), attenuation1(0.0f), attenuation2(0.0f),
theta(0.0f), phi(0.0f) {}
};
struct LightProg
{
float starting;
float ending;
float current;
float progress;
float speed;
};
/**
* \struct SceneLight Dynamic light in 3D scene
*
* TODO documentation
*/
struct SceneLight
{
//! true -> light exists
bool used;
//! true -> light turned on
bool enable;
//! Type of all objects included
D3DTypeObj incluType;
//! Type of all objects excluded
D3DTypeObj excluType;
//! Configuration of the light
Gfx::Light light;
//! intensity (0 .. 1)
Gfx::LightProg intensity;
Gfx::LightProg colorRed;
Gfx::LightProg colorGreen;
Gfx::LightProg colorBlue;
};
// TODO CLight
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// lightning.cpp (aka blitz.cpp)
#include "graphics/common/lightning.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// lightning.h (aka blitz.h)
#pragma once
namespace Gfx {
// TODO CLightning (aka CBlitz)
}; // namespace Gfx

View File

@ -0,0 +1,26 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// material.h
#pragma once
namespace Gfx {
// TODO struct Material
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// model.cpp
#include "graphics/common/model.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// model.h
#pragma once
namespace Gfx {
// TODO CModel
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// particle.cpp (aka particule.cpp)
#include "graphics/common/particle.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// particle.h (aka particule.h)
#pragma once
namespace Gfx {
// TODO CParticle (aka CParticule)
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// planet.cpp
#include "graphics/common/planet.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// planet.h
#pragma once
namespace Gfx {
// TODO CPlanet
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// pyro.cpp
#include "graphics/common/pyro.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// pyro.h
#pragma once
namespace Gfx {
// TODO CPyro
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// terrain.cpp
#include "graphics/common/terrain.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// terrain.h
#pragma once
namespace Gfx {
// TODO CTerrain
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// text.cpp
#include "graphics/common/text.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// text.h
#pragma once
namespace Gfx {
// TODO CText
}; // namespace Gfx

View File

@ -1,5 +1,24 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// vertex.h
#pragma once
#include "math/vector.h"
#include "math/point.h"
@ -44,4 +63,4 @@ struct VertexTex2 : public Gfx::Vertex
: Vertex(aCoord, aNormal, aTexCoord), texCoord2(aTexCoord2) {}
};
};
}; // namespace Gfx

View File

@ -0,0 +1,23 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// water.cpp
#include "graphics/common/water.h"
// TODO implementation

View File

@ -0,0 +1,27 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// water.h
#pragma once
namespace Gfx {
// TODO CWater
}; // namespace Gfx

View File

@ -0,0 +1,3 @@
src/graphics/d3d
Possible future DirectX implementation of graphics engine

View File

@ -0,0 +1,6 @@
src/graphics/opengl
OpenGL engine implementation
Contains the concreate implementation using OpenGL of functions
of grahpics engine in graphics/common.

View File

@ -0,0 +1,32 @@
// * This file is part of the COLOBOT source code
// * Copyright (C) 2012, Polish Portal of Colobot (PPC)
// *
// * This program is free software: you can redistribute it and/or modify
// * it under the terms of the GNU General Public License as published by
// * the Free Software Foundation, either version 3 of the License, or
// * (at your option) any later version.
// *
// * This program is distributed in the hope that it will be useful,
// * but WITHOUT ANY WARRANTY; without even the implied warranty of
// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// * GNU General Public License for more details.
// *
// * You should have received a copy of the GNU General Public License
// * along with this program. If not, see http://www.gnu.org/licenses/.
// glengine.h
#pragma once
#include "graphics/common/engine.h"
namespace Gfx
{
class CGLEngine : public Gfx::CEngine
{
// TODO
};
};

View File

@ -13,7 +13,8 @@ add_test(matrix_test ./matrix_test)
add_test(vector_test ./vector_test)
add_test(geometry_test ./geometry_test)
include_directories(c:/dxsdk/include)
# Change to DirectX SDK directory
include_directories("c:/dxsdk/include")
add_definitions(-DSTRICT -DD3D_OVERLOADS)

View File

@ -21,8 +21,8 @@
#include "../func.h"
#include "../geometry.h"
#include "../conv.h"
#include "../old/math3d.h"
#include "../../graphics/d3d/d3dutil.h"
#include "../../old/math3d.h"
#include "../../old/d3dutil.h"
#include <d3d.h>
#include <cstdio>

View File

@ -20,10 +20,10 @@
#include "object/auto/autobase.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "graphics/common/cloud.h"
#include "graphics/common/planet.h"
#include "graphics/common/blitz.h"
#include "old/terrain.h"
#include "old/cloud.h"
#include "old/planet.h"
#include "old/blitz.h"
#include "math/geometry.h"
#include "object/robotmain.h"
#include "physics/physics.h"

View File

@ -20,7 +20,7 @@
#include "object/auto/autoderrick.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "old/terrain.h"
#include "math/geometry.h"
#include "script/cmdtoken.h"
#include "ui/interface.h"

View File

@ -20,7 +20,7 @@
#include "object/auto/autoenergy.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "old/terrain.h"
#include "math/geometry.h"
#include "script/cmdtoken.h"
#include "ui/interface.h"

View File

@ -20,7 +20,7 @@
#include "object/auto/autoflag.h"
#include "math/geometry.h"
#include "graphics/common/terrain.h"
#include "old/terrain.h"

View File

@ -20,7 +20,7 @@
#include "object/auto/auto.h"
#include "graphics/common/particule.h"
#include "old/particule.h"

View File

@ -19,8 +19,8 @@
#include "object/auto/autokid.h"
#include "graphics/common/particule.h"
#include "graphics/common/water.h"
#include "old/particule.h"
#include "old/water.h"

View File

@ -20,7 +20,7 @@
#include "object/auto/autonest.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "old/terrain.h"
#include "script/cmdtoken.h"

View File

@ -19,8 +19,8 @@
#include "object/auto/autoroot.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "math/geometry.h"

View File

@ -20,8 +20,8 @@
#include "object/auto/autostation.h"
#include "common/iman.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "math/geometry.h"
#include "ui/interface.h"
#include "ui/gauge.h"

View File

@ -23,24 +23,24 @@
#include "common/struct.h"
#include "math/geometry.h"
#include "math/const.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "common/language.h"
#include "common/global.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "common/restext.h"
#include "math/old/math3d.h"
#include "old/math3d.h"
#include "object/robotmain.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "graphics/common/camera.h"
#include "old/terrain.h"
#include "old/water.h"
#include "old/camera.h"
#include "object/object.h"
#include "physics/physics.h"
#include "object/motion/motion.h"
#include "object/motion/motionspider.h"
#include "graphics/common/pyro.h"
#include "old/pyro.h"
#include "object/task/taskmanager.h"
#include "object/task/task.h"
#include "object/task/taskmanip.h"
@ -61,9 +61,9 @@
#include "ui/target.h"
#include "ui/window.h"
#include "ui/displaytext.h"
#include "graphics/common/text.h"
#include "old/text.h"
#include "sound/sound.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "script/cmdtoken.h"

View File

@ -22,7 +22,7 @@
#include "object/motion/motionant.h"
#include "common/modfile.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "physics/physics.h"

View File

@ -22,8 +22,8 @@
#include "object/motion/motionhuman.h"
#include "common/modfile.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "old/terrain.h"
#include "old/water.h"
#include "math/geometry.h"
#include "object/robotmain.h"
#include "physics/physics.h"

View File

@ -22,7 +22,7 @@
#include "object/motion/motionspider.h"
#include "common/modfile.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "physics/physics.h"

View File

@ -22,8 +22,8 @@
#include "object/motion/motiontoto.h"
#include "math/geometry.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "old/terrain.h"
#include "old/water.h"
#include "common/modfile.h"
#include "object/robotmain.h"

View File

@ -22,8 +22,8 @@
#include "object/motion/motionvehicle.h"
#include "common/modfile.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "math/geometry.h"
#include "object/brain.h"
#include "physics/physics.h"

View File

@ -22,8 +22,8 @@
#include "object/motion/motionworm.h"
#include "common/modfile.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "math/geometry.h"
#include "physics/physics.h"

View File

@ -25,23 +25,23 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "old/d3dutil.h"
#include "common/global.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "common/restext.h"
#include "math/old/math3d.h"
#include "old/math3d.h"
#include "object/mainmovie.h"
#include "object/robotmain.h"
#include "graphics/common/light.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "graphics/common/blitz.h"
#include "graphics/common/camera.h"
#include "graphics/common/particule.h"
#include "old/light.h"
#include "old/terrain.h"
#include "old/water.h"
#include "old/blitz.h"
#include "old/camera.h"
#include "old/particule.h"
#include "physics/physics.h"
#include "object/brain.h"
#include "object/motion/motion.h"
@ -81,7 +81,7 @@
#include "object/auto/automush.h"
#include "object/auto/autokid.h"
#include "object/task/task.h"
#include "graphics/common/pyro.h"
#include "old/pyro.h"
#include "ui/displaytext.h"
#include "script/cmdtoken.h"
#include "script/cbottoken.h"

View File

@ -19,8 +19,8 @@
#pragma once
#include "graphics/d3d/d3dengine.h"
#include "graphics/common/camera.h"
#include "old/d3dengine.h"
#include "old/camera.h"
#include "sound/sound.h"

View File

@ -26,8 +26,8 @@
#include "math/const.h"
#include "math/geometry.h"
#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "common/language.h"
#include "common/global.h"
#include "common/event.h"
@ -35,24 +35,24 @@
#include "common/profile.h"
#include "common/iman.h"
#include "common/restext.h"
#include "math/old/math3d.h"
#include "graphics/common/light.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "graphics/common/cloud.h"
#include "graphics/common/blitz.h"
#include "graphics/common/planet.h"
#include "old/math3d.h"
#include "old/light.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "old/water.h"
#include "old/cloud.h"
#include "old/blitz.h"
#include "old/planet.h"
#include "object/object.h"
#include "object/motion/motion.h"
#include "object/motion/motiontoto.h"
#include "object/motion/motionhuman.h"
#include "physics/physics.h"
#include "object/brain.h"
#include "graphics/common/pyro.h"
#include "old/pyro.h"
#include "common/modfile.h"
#include "graphics/common/model.h"
#include "graphics/common/camera.h"
#include "old/model.h"
#include "old/camera.h"
#include "object/task/task.h"
#include "object/task/taskmanip.h"
#include "object/task/taskbuild.h"
@ -68,7 +68,7 @@
#include "ui/window.h"
#include "ui/edit.h"
#include "ui/displaytext.h"
#include "graphics/common/text.h"
#include "old/text.h"
#include "sound/sound.h"
#include "script/cbottoken.h"
#include "script/cmdtoken.h"

View File

@ -22,11 +22,11 @@
#include <stdio.h>
#include "common/misc.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
#include "object/object.h"
#include "object/mainmovie.h"
#include "graphics/common/camera.h"
#include "graphics/common/particule.h"
#include "old/camera.h"
#include "old/particule.h"
enum Phase

View File

@ -22,9 +22,9 @@
#include "object/task/taskbuild.h"
#include "common/iman.h"
#include "graphics/common/light.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "old/light.h"
#include "old/terrain.h"
#include "old/water.h"
#include "math/geometry.h"
#include "object/auto/auto.h"
#include "object/motion/motionhuman.h"

View File

@ -21,7 +21,7 @@
#include "object/task/taskfire.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "math/geometry.h"
#include "physics/physics.h"

View File

@ -21,7 +21,7 @@
#include "object/task/taskfireant.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "math/geometry.h"
#include "object/motion/motionant.h"
#include "physics/physics.h"

View File

@ -23,8 +23,8 @@
#include "math/geometry.h"
#include "common/iman.h"
#include "graphics/common/water.h"
#include "graphics/common/pyro.h"
#include "old/water.h"
#include "old/pyro.h"
#include "physics/physics.h"
#include "object/motion/motionhuman.h"

View File

@ -23,8 +23,8 @@
#include "common/event.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "old/terrain.h"
#include "old/water.h"
#include "math/geometry.h"
#include "physics/physics.h"

View File

@ -22,7 +22,7 @@
#include "object/task/taskinfo.h"
#include "common/iman.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "object/auto/autoinfo.h"

View File

@ -22,8 +22,8 @@
#include "object/task/taskmanip.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "graphics/common/pyro.h"
#include "old/terrain.h"
#include "old/pyro.h"
#include "math/geometry.h"
#include "object/robotmain.h"
#include "physics/physics.h"

View File

@ -21,7 +21,7 @@
#include "object/task/taskpen.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "math/geometry.h"
#include "object/object.h"

View File

@ -23,7 +23,7 @@
#include "math/geometry.h"
#include "common/iman.h"
#include "graphics/common/particule.h"
#include "old/particule.h"
#include "physics/physics.h"
#include "ui/displaytext.h"

View File

@ -23,8 +23,8 @@
#include "math/geometry.h"
#include "common/iman.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "physics/physics.h"
#include "ui/displaytext.h"

View File

@ -22,8 +22,8 @@
#include "object/task/taskshield.h"
#include "common/iman.h"
#include "graphics/common/light.h"
#include "graphics/common/particule.h"
#include "old/light.h"
#include "old/particule.h"
#include "math/geometry.h"
#include "object/brain.h"
#include "physics/physics.h"

View File

@ -21,7 +21,7 @@
#include "object/task/taskspiderexplo.h"
#include "graphics/common/pyro.h"
#include "old/pyro.h"
#include "object/motion/motionspider.h"
#include "physics/physics.h"

View File

@ -22,8 +22,8 @@
#include "object/task/tasktake.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "old/terrain.h"
#include "old/water.h"
#include "math/geometry.h"
#include "object/motion/motionhuman.h"
#include "object/robotmain.h"

View File

@ -23,10 +23,10 @@
#include "math/geometry.h"
#include "common/iman.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "physics/physics.h"
#include "graphics/common/pyro.h"
#include "old/pyro.h"
#include "object/brain.h"
#include "object/motion/motionant.h"
#include "object/motion/motionspider.h"

View File

@ -21,7 +21,7 @@
#include "object/task/taskturn.h"
#include "graphics/common/terrain.h"
#include "old/terrain.h"
#include "physics/physics.h"

View File

@ -21,7 +21,7 @@
#include "object/task/taskwait.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"

View File

@ -1,3 +1,3 @@
Contains files that are to be removed.
The resources (cursors, etc.) cannot be included using windows rc files - they must be moved to .dat files.
Contains old files that will be removed:
- old code modules - will be replaced by new implementation
- resources (cursors, etc.) - will be included in .dat files

View File

@ -23,20 +23,20 @@
#include "math/const.h"
#include "math/geometry.h"
#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "old/d3dutil.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "graphics/common/terrain.h"
#include "math/old/math3d.h"
#include "old/terrain.h"
#include "old/math3d.h"
#include "object/object.h"
#include "graphics/common/camera.h"
#include "old/camera.h"
#include "object/auto/auto.h"
#include "object/auto/autopara.h"
#include "sound/sound.h"
#include "graphics/common/blitz.h"
#include "old/blitz.h"

View File

@ -21,7 +21,7 @@
#include "common/misc.h"
#include "math/point.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
class CObject;

View File

@ -22,18 +22,18 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "common/language.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "math/old/math3d.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "old/math3d.h"
#include "old/terrain.h"
#include "old/water.h"
#include "object/object.h"
#include "physics/physics.h"
#include "graphics/common/camera.h"
#include "old/camera.h"

View File

@ -21,7 +21,7 @@
#include "common/event.h"
#include "math/point.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
class CInstanceManager;

View File

@ -22,16 +22,16 @@
#include "common/struct.h"
#include "math/geometry.h"
#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "old/d3dutil.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "math/old/math3d.h"
#include "graphics/common/terrain.h"
#include "old/math3d.h"
#include "old/terrain.h"
#include "object/object.h"
#include "graphics/common/cloud.h"
#include "old/cloud.h"

View File

@ -21,7 +21,7 @@
#include "common/event.h"
#include "math/point.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
class CInstanceManager;

View File

@ -25,18 +25,18 @@
#include <dinput.h>
#include "common/struct.h"
#include "graphics/d3d/d3dtextr.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dtextr.h"
#include "old/d3dengine.h"
#include "common/language.h"
#include "common/event.h"
#include "common/profile.h"
#include "common/iman.h"
#include "common/restext.h"
#include "math/old/math3d.h"
#include "app/joystick.h"
#include "old/math3d.h"
#include "old/joystick.h"
#include "object/robotmain.h"
#include "sound/sound.h"
#include "app/d3dapp.h"
#include "old/d3dapp.h"
// fix for "MSH_MOUSEWHEEL undefined" error
#ifdef UNICODE

View File

@ -23,10 +23,10 @@
#include <d3d.h>
#include "math/vector.h"
#include "graphics/d3d/d3dengine.h"
#include "graphics/d3d/d3dframe.h"
#include "graphics/d3d/d3denum.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dengine.h"
#include "old/d3dframe.h"
#include "old/d3denum.h"
#include "old/d3dutil.h"
#include "old/d3dres.h"
#include "common/misc.h"
#include "common/struct.h"

View File

@ -24,26 +24,26 @@
#include "math/const.h"
#include "math/geometry.h"
#include "math/conv.h"
#include "app/d3dapp.h"
#include "graphics/d3d/d3dtextr.h"
#include "graphics/d3d/d3dutil.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dapp.h"
#include "old/d3dtextr.h"
#include "old/d3dutil.h"
#include "old/d3dmath.h"
#include "old/d3dengine.h"
#include "common/language.h"
#include "common/iman.h"
#include "common/event.h"
#include "common/profile.h"
#include "math/old/math3d.h"
#include "old/math3d.h"
#include "object/object.h"
#include "ui/interface.h"
#include "graphics/common/light.h"
#include "graphics/common/text.h"
#include "graphics/common/particule.h"
#include "graphics/common/terrain.h"
#include "graphics/common/water.h"
#include "graphics/common/cloud.h"
#include "graphics/common/blitz.h"
#include "graphics/common/planet.h"
#include "old/light.h"
#include "old/text.h"
#include "old/particule.h"
#include "old/terrain.h"
#include "old/water.h"
#include "old/cloud.h"
#include "old/blitz.h"
#include "old/planet.h"
#include "sound/sound.h"

View File

@ -24,8 +24,8 @@
#include <windowsx.h>
#include <stdio.h>
#include <tchar.h>
#include "graphics/d3d/d3denum.h"
#include "graphics/d3d/d3dutil.h" // For DEBUG_MSG
#include "old/d3denum.h"
#include "old/d3dutil.h" // For DEBUG_MSG
#include "old/d3dres.h" // For dialog controls

View File

@ -24,8 +24,8 @@
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include "graphics/d3d/d3dframe.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dframe.h"
#include "old/d3dutil.h"

View File

@ -30,8 +30,8 @@
#include <stdio.h>
#include <algorithm>
using std::min;
#include "graphics/d3d/d3dtextr.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dtextr.h"
#include "old/d3dutil.h"
#include "common/language.h"
#include "common/misc.h"

View File

@ -25,7 +25,7 @@
#include <math.h>
#include <stdio.h>
#include <tchar.h>
#include "graphics/d3d/d3dutil.h"
#include "old/d3dutil.h"

View File

@ -22,7 +22,7 @@
#include <dinput.h>
#include <stdio.h>
#include "app/joystick.h"
#include "old/joystick.h"

View File

@ -25,12 +25,12 @@
#include "math/const.h"
#include "math/geometry.h"
#include "math/conv.h"
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "math/old/math3d.h"
#include "graphics/common/light.h"
#include "old/math3d.h"
#include "old/light.h"

View File

@ -19,7 +19,7 @@
#pragma once
#include "graphics/d3d/d3dengine.h"
#include "old/d3dengine.h"
#include "graphics/common/color.h"
@ -57,93 +57,6 @@ struct Light
};
// temporary!
namespace Gfx {
/** \enum LightType Type of light */
enum LightType
{
LT_Point,
LT_Spot,
LT_Directional
};
/**
* \struct Light Light
*
* This structure was created as analog to DirectX's D3DLIGHT.
*
* It contains analogous fields as the D3DLIGHT struct.
*/
struct Light
{
//! Type of light source
Gfx::LightType type;
//! Color of light
Gfx::Color color;
//! Position in world space
Math::Vector position;
//! Direction in world space
Math::Vector direction;
//! Cutoff range
float range;
//! Falloff
float falloff;
//! Constant attenuation
float attenuation0;
//! Linear attenuation
float attenuation1;
//! Quadratic attenuation
float attenuation2;
//! Inner angle of spotlight cone
float theta;
//! Outer angle of spotlight cone
float phi;
Light() : type(LT_Point), range(0.0f), falloff(0.0f),
attenuation0(0.0f), attenuation1(0.0f), attenuation2(0.0f),
theta(0.0f), phi(0.0f) {}
};
struct LightProg
{
float starting;
float ending;
float current;
float progress;
float speed;
};
/**
* \struct SceneLight Dynamic light in 3D scene
*
* TODO documentation
*/
struct SceneLight
{
//! true -> light exists
bool used;
//! true -> light turned on
bool enable;
//! Type of all objects included
D3DTypeObj incluType;
//! Type of all objects excluded
D3DTypeObj excluType;
//! Configuration of the light
Gfx::Light light;
//! intensity (0 .. 1)
Gfx::LightProg intensity;
Gfx::LightProg colorRed;
Gfx::LightProg colorGreen;
Gfx::LightProg colorBlue;
};
}; // namespace Gfx
class CLight
{

View File

@ -23,10 +23,10 @@
#include <stdio.h>
#include <d3d.h>
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dutil.h"
#include "math/old/math3d.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "old/d3dutil.h"
#include "old/math3d.h"
// Old defines

View File

@ -24,20 +24,20 @@
#include "common/struct.h"
#include "math/const.h"
#include "math/geometry.h"
#include "graphics/d3d/d3dengine.h"
#include "math/old/d3dmath.h"
#include "old/d3dengine.h"
#include "old/d3dmath.h"
#include "common/event.h"
#include "common/misc.h"
#include "common/iman.h"
#include "math/old/math3d.h"
#include "graphics/common/water.h"
#include "old/math3d.h"
#include "old/water.h"
#include "object/robotmain.h"
#include "ui/interface.h"
#include "ui/edit.h"
#include "ui/button.h"
#include "script/cmdtoken.h"
#include "common/modfile.h"
#include "graphics/common/model.h"
#include "old/model.h"

View File

@ -25,22 +25,22 @@
#include "math/const.h"
#include "math/geometry.h"
#include "math/conv.h"
#include "math/old/d3dmath.h"
#include "graphics/d3d/d3dtextr.h"
#include "graphics/d3d/d3dengine.h"
#include "graphics/d3d/d3dutil.h"
#include "old/d3dmath.h"
#include "old/d3dtextr.h"
#include "old/d3dengine.h"
#include "old/d3dutil.h"
#include "common/language.h"
#include "common/iman.h"
#include "math/old/math3d.h"
#include "old/math3d.h"
#include "common/event.h"
#include "object/object.h"
#include "physics/physics.h"
#include "object/auto/auto.h"
#include "object/robotmain.h"
#include "graphics/common/terrain.h"
#include "old/terrain.h"
#include "sound/sound.h"
#include "graphics/common/water.h"
#include "graphics/common/particule.h"
#include "old/water.h"
#include "old/particule.h"

Some files were not shown because too many files have changed in this diff Show More