diff options
Diffstat (limited to 'src/graphics/core')
-rw-r--r-- | src/graphics/core/README.txt | 13 | ||||
-rw-r--r-- | src/graphics/core/color.h | 11 | ||||
-rw-r--r-- | src/graphics/core/device.h | 27 | ||||
-rw-r--r-- | src/graphics/core/light.h | 5 | ||||
-rw-r--r-- | src/graphics/core/material.h | 5 | ||||
-rw-r--r-- | src/graphics/core/texture.h | 9 | ||||
-rw-r--r-- | src/graphics/core/vertex.h | 5 |
7 files changed, 52 insertions, 23 deletions
diff --git a/src/graphics/core/README.txt b/src/graphics/core/README.txt index 12beef9..ca3768c 100644 --- a/src/graphics/core/README.txt +++ b/src/graphics/core/README.txt @@ -1,6 +1,7 @@ -src/graphics/core - -Abstract core of graphics engine - -Core types, enums, structs and CDevice abstract class that define -the abstract graphics device used in graphics engine +/** + * \dir graphics/core + * \brief Abstract core of graphics engine + * + * Core types, enums, structs and CDevice abstract class that define + * the abstract graphics device used in graphics engine + */
\ No newline at end of file diff --git a/src/graphics/core/color.h b/src/graphics/core/color.h index 6973644..ff8a2eb 100644 --- a/src/graphics/core/color.h +++ b/src/graphics/core/color.h @@ -14,11 +14,13 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// color.h +/** + * \file graphics/core/color.h + * \brief Color structs and related functions + */ #pragma once - #include <sstream> @@ -66,6 +68,11 @@ struct Color { return r == other.r && g == other.g && b == other.b && a == other.a; } + + inline bool operator!=(const Gfx::Color &other) const + { + return ! this->operator==(other); + } }; /** diff --git a/src/graphics/core/device.h b/src/graphics/core/device.h index c10b853..a3d0208 100644 --- a/src/graphics/core/device.h +++ b/src/graphics/core/device.h @@ -15,7 +15,10 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// device.h +/** + * \file graphics/core/device.h + * \brief Abstract graphics device - Gfx::CDevice class and related structs/enums + */ #pragma once @@ -25,13 +28,14 @@ #include "graphics/core/material.h" #include "graphics/core/texture.h" #include "graphics/core/vertex.h" -#include "math/intsize.h" +#include "math/intpoint.h" #include "math/matrix.h" #include <string> class CImage; +struct ImageData; namespace Gfx { @@ -45,7 +49,7 @@ namespace Gfx { struct DeviceConfig { //! Screen size - Math::IntSize size; + Math::IntPoint size; //! Bits per pixel int bpp; //! Full screen @@ -63,7 +67,7 @@ struct DeviceConfig //! Loads the default values inline void LoadDefault() { - size = Math::IntSize(800, 600); + size = Math::IntPoint(800, 600); bpp = 32; fullScreen = false; resizeable = false; @@ -149,9 +153,9 @@ enum FogMode \brief Culling mode for polygons */ enum CullMode { - //! Cull clockwise side + //! Cull clockwise faces CULL_CW, - //! Cull counter-clockwise side + //! Cull counter-clockwise faces CULL_CCW }; @@ -274,13 +278,14 @@ class CDevice public: virtual ~CDevice() {} + //! Provides a hook to debug graphics code (implementation-specific) + virtual void DebugHook() = 0; + //! Initializes the device, setting the initial state virtual bool Create() = 0; //! Destroys the device, releasing every acquired resource virtual void Destroy() = 0; - //! Returns whether the device has been initialized - virtual bool GetWasInit() = 0; //! Returns the last encountered error virtual std::string GetError() = 0; @@ -317,6 +322,8 @@ public: //! Creates a texture from image; the image can be safely removed after that virtual Gfx::Texture CreateTexture(CImage *image, const Gfx::TextureCreateParams ¶ms) = 0; + //! Creates a texture from raw image data; image data can be freed after that + virtual Gfx::Texture CreateTexture(ImageData *data, const Gfx::TextureCreateParams ¶ms) = 0; //! Deletes a given texture, freeing it from video memory virtual void DestroyTexture(const Gfx::Texture &texture) = 0; //! Deletes all textures created so far @@ -324,8 +331,10 @@ public: //! Returns the maximum number of multitexture stages virtual int GetMaxTextureCount() = 0; - //! Sets the (multi)texture at given index + //! Sets the texture at given texture stage virtual void SetTexture(int index, const Gfx::Texture &texture) = 0; + //! Sets the texture image by ID at given texture stage + virtual void SetTexture(int index, unsigned int textureId) = 0; //! Returns the (multi)texture at given index virtual Gfx::Texture GetTexture(int index) = 0; //! Enables/disables the given texture stage diff --git a/src/graphics/core/light.h b/src/graphics/core/light.h index b787cb2..a39d1f5 100644 --- a/src/graphics/core/light.h +++ b/src/graphics/core/light.h @@ -15,7 +15,10 @@ // * 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 +/** + * \file graphics/core/light.h + * \brief Light struct and related enums + */ #pragma once diff --git a/src/graphics/core/material.h b/src/graphics/core/material.h index 31b42f3..eb73c50 100644 --- a/src/graphics/core/material.h +++ b/src/graphics/core/material.h @@ -14,7 +14,10 @@ // * 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 +/** + * \file graphics/core/material.h + * \brief Material struct + */ #pragma once diff --git a/src/graphics/core/texture.h b/src/graphics/core/texture.h index 8d6b082..c36b6c6 100644 --- a/src/graphics/core/texture.h +++ b/src/graphics/core/texture.h @@ -14,11 +14,14 @@ // * You should have received a copy of the GNU General Public License // * along with this program. If not, see http://www.gnu.org/licenses/. -// texture.h +/** + * \file graphics/core/texture.h + * \brief Texture struct and related enums + */ #pragma once -#include "math/intsize.h" +#include "math/intpoint.h" namespace Gfx { @@ -194,7 +197,7 @@ struct Texture //! ID of the texture in graphics engine unsigned int id; //! Size of texture - Math::IntSize size; + Math::IntPoint size; //! Whether the texture has alpha channel bool alpha; diff --git a/src/graphics/core/vertex.h b/src/graphics/core/vertex.h index b7fab1c..53dd642 100644 --- a/src/graphics/core/vertex.h +++ b/src/graphics/core/vertex.h @@ -14,7 +14,10 @@ // * 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 +/** + * \file graphics/core/vertex.h + * \brief Vertex structs + */ #pragma once |