]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texturecube.h
Pull in sized depth component formats from ARB_depth_texture
[libs/gl.git] / source / texturecube.h
index e775be1d31ec0ceb26d2fd47ee75597803caf969..fd4670469fd1ab0500b607a35e723fe7e9205b65 100644 (file)
@@ -1,12 +1,10 @@
 #ifndef MSP_GL_TEXTURECUBE_H_
 #define MSP_GL_TEXTURECUBE_H_
 
+#include <msp/gl/extensions/arb_texture_cube_map.h>
 #include <msp/graphics/image.h>
-#include "datatype.h"
-#include "pixelformat.h"
 #include "texture.h"
 #include "vector.h"
-#include <msp/gl/extensions/arb_texture_cube_map.h>
 
 namespace Msp {
 namespace GL {
@@ -40,7 +38,11 @@ public:
        {
        public:
                Loader(TextureCube &);
+               Loader(TextureCube &, Collection &);
        private:
+               void init();
+
+               void external_image(TextureCubeFace, const std::string &);
                void image_data(TextureCubeFace, const std::string &);
                void raw_data(TextureCubeFace, const std::string &);
                void storage(PixelFormat, unsigned);
@@ -77,7 +79,9 @@ public:
                int x, int y, unsigned w, unsigned h,
                PixelFormat fmt, DataType type, const void *data);
 
-       void image(TextureCubeFace, const Graphics::Image &);
+       void image(TextureCubeFace, const Graphics::Image &, bool = false);
+
+       virtual void image(const Graphics::Image &, bool = false);
 
        unsigned get_size() const { return size; }
 private:
@@ -99,6 +103,10 @@ public:
 
        /** Returns a vector pointing to the center a texel. */
        Vector3 get_texel_direction(TextureCubeFace, unsigned, unsigned);
+
+       virtual AsyncLoader *load(IO::Seekable &, const Resources * = 0) { return 0; }
+       virtual UInt64 get_data_size() const;
+       virtual void unload() { }
 };
 
 void operator>>(const LexicalConverter &, TextureCubeFace &);