]> git.tdb.fi Git - libs/gl.git/commitdiff
Move Image to mspgbase
authorMikko Rasa <tdb@tdb.fi>
Sun, 17 Aug 2008 22:16:15 +0000 (22:16 +0000)
committerMikko Rasa <tdb@tdb.fi>
Sun, 17 Aug 2008 22:16:15 +0000 (22:16 +0000)
Do not define GL_GLEXT_PROTOTYPES in blend.cpp since glBlendEquation is to be used through the extension mechanism
Update svn:ignore

Build
source/blend.cpp
source/ilwrap.cpp [deleted file]
source/ilwrap.h [deleted file]
source/pixelformat.cpp
source/pixelformat.h
source/texture2d.cpp
source/texture2d.h
source/texture3d.cpp

diff --git a/Build b/Build
index 829b15f5d87f331f12bf9800df6513553cd2a692..06505b582a2300153992e026f6d2aba43a9f95da 100644 (file)
--- a/Build
+++ b/Build
@@ -8,16 +8,6 @@ package "mspgl"
        require "mspdatafile";
        require "opengl";
 
-       feature "devil" "Include DevIL support for loading image files";
-       if "with_devil"
-       {
-               require "devil";
-               build_info
-               {
-                       library "ILU";
-               };
-       };
-
        library "mspgl"
        {
                source "source";
index 899ccf599c255e8141fb14c2e3046af6fceaddbc..841d88b86e1f7e8070edf60c6c390f010f8c33dc 100644 (file)
@@ -5,7 +5,6 @@ Copyright © 2008  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
-#define GL_GLEXT_PROTOTYPES
 #include "blend.h"
 #include "extension.h"
 #include "version_1_2.h"
diff --git a/source/ilwrap.cpp b/source/ilwrap.cpp
deleted file mode 100644 (file)
index b9fb499..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
-#ifdef WITH_DEVIL
-#include <IL/il.h>
-#endif
-#include <msp/core/except.h>
-#include "ilwrap.h"
-
-using namespace std;
-
-namespace Msp {
-namespace GL {
-
-Image::Image()
-{
-#ifdef WITH_DEVIL
-       static bool init_done=false;
-
-       if(!init_done)
-       {
-               ilInit();
-               ilEnable(IL_ORIGIN_SET);
-               ilOriginFunc(IL_ORIGIN_LOWER_LEFT);
-               init_done=true;
-       }
-
-       ilGenImages(1, &id);
-#else
-       throw Exception("DevIL support not compiled in");
-#endif
-}
-
-Image::~Image()
-{
-#ifdef WITH_DEVIL
-       ilDeleteImages(1, &id);
-#endif
-}
-
-void Image::load_file(const string &fn)
-{
-#ifdef WITH_DEVIL
-       ilBindImage(id);
-       if(!ilLoadImage(const_cast<char *>(fn.c_str())))
-               throw Exception("Error loading image "+fn);
-#else
-       (void)fn;
-#endif
-}
-
-void Image::load_lump(const void *data, unsigned size)
-{
-#ifdef WITH_DEVIL
-       ilBindImage(id);
-       if(!ilLoadL(IL_TYPE_UNKNOWN, const_cast<void *>(data), size))
-               throw Exception("Error loading image from lump");
-#else
-       (void)data; (void)size;
-#endif
-}
-
-PixelFormat Image::get_format() const
-{
-#ifdef WITH_DEVIL
-       switch(ilGetInteger(IL_IMAGE_FORMAT))
-       {
-       case IL_COLOR_INDEX: return COLOR_INDEX;
-       case IL_LUMINANCE: return LUMINANCE;
-       case IL_LUMINANCE_ALPHA: return LUMINANCE_ALPHA;
-       case IL_RGB: return RGB;
-       case IL_RGBA: return RGBA;
-       case IL_BGR: return BGR;
-       case IL_BGRA: return BGRA;
-       default: throw InvalidParameterValue("Unknown pixel format in image");
-       }
-#else
-       return RGB;
-#endif
-}
-
-unsigned Image::get_width() const
-{
-#ifdef WITH_DEVIL
-       return ilGetInteger(IL_IMAGE_WIDTH);
-#else
-       return 0;
-#endif
-}
-
-unsigned Image::get_height() const
-{
-#ifdef WITH_DEVIL
-       return ilGetInteger(IL_IMAGE_HEIGHT);
-#else
-       return 0;
-#endif
-}
-
-const void *Image::get_data() const
-{
-#ifdef WITH_DEVIL
-       return ilGetData();
-#else
-       return 0;
-#endif
-}
-
-} // namespace GL
-} // namespace Msp
diff --git a/source/ilwrap.h b/source/ilwrap.h
deleted file mode 100644 (file)
index 331cfd3..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
-#ifndef MSP_GL_ILWRAP_H_
-#define MSP_GL_ILWRAP_H_
-
-#include "pixelformat.h"
-
-namespace Msp {
-namespace GL {
-
-class Image
-{
-private:
-       unsigned id;
-
-public:
-       Image();
-       ~Image();
-
-       void load_file(const std::string &);
-       void load_lump(const void *, unsigned);
-       PixelFormat get_format() const;
-       unsigned get_width() const;
-       unsigned get_height() const;
-       const void *get_data() const;
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif
index 738b796c5981fa307c2f9e3f15bc4f94fed1b789..d968917b25956440bf0f8f096baffec4dcba7737 100644 (file)
@@ -5,6 +5,7 @@ Copyright © 2007  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
+#include "except.h"
 #include "pixelformat.h"
 
 using namespace std;
@@ -49,5 +50,20 @@ istream &operator>>(istream &in, PixelFormat &fmt)
        return in;
 }
 
+PixelFormat pixelformat_from_graphics(Graphics::PixelFormat pf)
+{
+       switch(pf)
+       {
+       case Graphics::COLOR_INDEX: return COLOR_INDEX;
+       case Graphics::LUMINANCE: return LUMINANCE;
+       case Graphics::LUMINANCE_ALPHA: return LUMINANCE_ALPHA;
+       case Graphics::RGB: return RGB;
+       case Graphics::RGBA: return RGBA;
+       case Graphics::BGR: return BGR;
+       case Graphics::BGRA: return BGRA;
+       default: throw InvalidParameterValue("Unknown Graphics::PixelFormat");
+       }
+}
+
 } // namespace GL
 } // namespace Msp
index 6980ec8a959513b047d6372375d743824481e4ed..d61788a630ecb702359605afb8b23ba42bf60c78 100644 (file)
@@ -9,6 +9,7 @@ Distributed under the LGPL
 #define MSP_GL_PIXELFORMAT_H_
 
 #include <istream>
+#include <msp/gbase/pixelformat.h>
 #include "gl.h"
 
 namespace Msp {
@@ -33,6 +34,8 @@ enum PixelFormat
 
 std::istream &operator>>(std::istream &, PixelFormat &);
 
+PixelFormat pixelformat_from_graphics(Graphics::PixelFormat);
+
 } // namespace GL
 } // namespace Msp
 
index baee22eefc56b31f9fe41c44c53a888598c3cbba..b8f2f26b7076320f78f5ef792dc69a9acd7e1b82 100644 (file)
@@ -6,7 +6,6 @@ Distributed under the LGPL
 */
 
 #include "except.h"
-#include "ilwrap.h"
 #include "texture2d.h"
 
 using namespace std;
@@ -57,17 +56,17 @@ void Texture2D::sub_image(int level, int x, int y, sizei wd, sizei ht, PixelForm
 
 void Texture2D::load_image(const string &fn)
 {
-       Image img;
+       Graphics::Image img;
        img.load_file(fn);
 
        image(img);
 }
 
-void Texture2D::image(const Image &img)
+void Texture2D::image(const Graphics::Image &img)
 {
        unsigned w=img.get_width();
        unsigned h=img.get_height();
-       PixelFormat fmt=img.get_format();
+       PixelFormat fmt=pixelformat_from_graphics(img.get_format());
        if(width==0)
                storage(fmt, w, h, 0);
        else if(w!=width || h!=height)
@@ -87,8 +86,8 @@ Texture2D::Loader::Loader(Texture2D &t):
 
 void Texture2D::Loader::image_data(const string &data)
 {
-       Image img;
-       img.load_lump(data.data(), data.size());
+       Graphics::Image img;
+       img.load_memory(data.data(), data.size());
 
        static_cast<Texture2D &>(tex).image(img);
 }
index 13073a2d74ea98cade27a9212229a365137e7175..f1b76783f7e5c5a242c96bb3528d7e7a8929ec40 100644 (file)
@@ -10,14 +10,13 @@ Distributed under the LGPL
 
 #include <string>
 #include <msp/datafile/loader.h>
+#include <msp/gbase/image.h>
 #include "pixelformat.h"
 #include "texture.h"
 
 namespace Msp {
 namespace GL {
 
-class Image;
-
 /**
 Two-dimensional texture class.  This is the most common type of texture.
 */
@@ -72,7 +71,7 @@ public:
        sizei get_height() const { return height; }
 
 private:
-       void image(const Image &);
+       void image(const Graphics::Image &);
 };
 
 } // namespace GL
index a2d371e7856c108b6c7eac2de3284119bc735e1a..2fc4f997396e3dcf7f3f1a9417532c8cd3364f9c 100644 (file)
@@ -6,9 +6,9 @@ Distributed under the LGPL
 */
 
 #include <cmath>
+#include <msp/gbase/image.h>
 #include "except.h"
 #include "extension.h"
-#include "ilwrap.h"
 #include "texture3d.h"
 #include "version_1_2.h"
 
@@ -52,7 +52,7 @@ void Texture3D::image(int level, PixelFormat fmt, DataType type, const void *dat
 
 void Texture3D::load_image(const string &fn, int dp)
 {
-       Image img;
+       Graphics::Image img;
        img.load_file(fn);
 
        unsigned w=img.get_width();
@@ -77,7 +77,7 @@ void Texture3D::load_image(const string &fn, int dp)
        else if(dp>0)
                d=dp;
 
-       PixelFormat fmt=img.get_format();
+       PixelFormat fmt=pixelformat_from_graphics(img.get_format());
        if(width==0)
                storage(fmt, w, h, d, 0);
        else if(w!=width || h!=height || d!=depth)