X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fsampler.h;h=b2011d3bed3db8dc7631fc3224c37c6011d39c3f;hb=24b24e2203c776aacd9744bb947f5cf47b03d328;hp=ff9201860e69bc4c7cc6ed8af2dc512940ac5615;hpb=9b3bce7ae76ff8c0c81315d2505ea96bf422a318;p=libs%2Fgl.git diff --git a/source/core/sampler.h b/source/core/sampler.h index ff920186..b2011d3b 100644 --- a/source/core/sampler.h +++ b/source/core/sampler.h @@ -3,7 +3,6 @@ #include #include "color.h" -#include "gl.h" #include "predicate.h" namespace Msp { @@ -12,42 +11,40 @@ namespace GL { enum TextureFilter { /// No filtering - NEAREST = GL_NEAREST, + NEAREST, /// Bilinear filtering - LINEAR = GL_LINEAR, + LINEAR, /// Mipmapping without filtering - NEAREST_MIPMAP_NEAREST = GL_NEAREST_MIPMAP_NEAREST, + NEAREST_MIPMAP_NEAREST, /// Linear filtering between two mipmap levels - NEAREST_MIPMAP_LINEAR = GL_NEAREST_MIPMAP_LINEAR, + NEAREST_MIPMAP_LINEAR, /// Bilinear filtering on the closest mipmap level - LINEAR_MIPMAP_NEAREST = GL_LINEAR_MIPMAP_NEAREST, + LINEAR_MIPMAP_NEAREST, /// Trilinear filtering between two mipmap levels - LINEAR_MIPMAP_LINEAR = GL_LINEAR_MIPMAP_LINEAR + LINEAR_MIPMAP_LINEAR }; enum TextureWrap { /// Tile the texture infinitely - REPEAT = GL_REPEAT, + REPEAT, /// Extend the texels at the edge of the texture to infinity - CLAMP_TO_EDGE = GL_CLAMP_TO_EDGE, + CLAMP_TO_EDGE, /// Sampling outside the texture will return border color - CLAMP_TO_BORDER = GL_CLAMP_TO_BORDER, + CLAMP_TO_BORDER, /// Tile the texture, with every other repetition mirrored - MIRRORED_REPEAT = GL_MIRRORED_REPEAT + MIRRORED_REPEAT }; -class Texture; - /** Samplers are used to access texture data in shaders. To use a sampler with a @@ -65,6 +62,8 @@ wrapping is applied. The default for all directions is REPEAT. */ class Sampler { + friend class PipelineState; + public: class Loader: public DataFile::ObjectLoader { @@ -115,9 +114,6 @@ public: private: void update() const; - void set_parameter_i(unsigned, int) const; - void set_parameter_f(unsigned, float) const; - void set_parameter_fv(unsigned, const float *) const; public: void set_min_filter(TextureFilter); @@ -157,13 +153,13 @@ public: void refresh() const { if(dirty_params) update(); } - unsigned get_id() const { return id; } - void set_debug_name(const std::string &); }; bool is_mipmapped(TextureFilter); +unsigned get_gl_filter(TextureFilter); +unsigned get_gl_wrap(TextureWrap); void operator>>(const LexicalConverter &, TextureFilter &); void operator>>(const LexicalConverter &, TextureWrap &);