diff options
Diffstat (limited to 'gfx/angle/src/libANGLE/Sampler.h')
-rwxr-xr-x | gfx/angle/src/libANGLE/Sampler.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/gfx/angle/src/libANGLE/Sampler.h b/gfx/angle/src/libANGLE/Sampler.h new file mode 100755 index 000000000..156d61f66 --- /dev/null +++ b/gfx/angle/src/libANGLE/Sampler.h @@ -0,0 +1,82 @@ +// +// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// Sampler.h : Defines the Sampler class, which represents a GLES 3 +// sampler object. Sampler objects store some state needed to sample textures. + +#ifndef LIBANGLE_SAMPLER_H_ +#define LIBANGLE_SAMPLER_H_ + +#include "libANGLE/angletypes.h" +#include "libANGLE/Debug.h" +#include "libANGLE/RefCountObject.h" + +namespace rx +{ +class GLImplFactory; +class SamplerImpl; +} + +namespace gl +{ + +class Sampler final : public RefCountObject, public LabeledObject +{ + public: + Sampler(rx::GLImplFactory *factory, GLuint id); + ~Sampler() override; + + void setLabel(const std::string &label) override; + const std::string &getLabel() const override; + + void setMinFilter(GLenum minFilter); + GLenum getMinFilter() const; + + void setMagFilter(GLenum magFilter); + GLenum getMagFilter() const; + + void setWrapS(GLenum wrapS); + GLenum getWrapS() const; + + void setWrapT(GLenum wrapT); + GLenum getWrapT() const; + + void setWrapR(GLenum wrapR); + GLenum getWrapR() const; + + void setMaxAnisotropy(float maxAnisotropy); + float getMaxAnisotropy() const; + + void setMinLod(GLfloat minLod); + GLfloat getMinLod() const; + + void setMaxLod(GLfloat maxLod); + GLfloat getMaxLod() const; + + void setCompareMode(GLenum compareMode); + GLenum getCompareMode() const; + + void setCompareFunc(GLenum compareFunc); + GLenum getCompareFunc() const; + + void setSRGBDecode(GLenum sRGBDecode); + GLenum getSRGBDecode() const; + + const SamplerState &getSamplerState() const; + + rx::SamplerImpl *getImplementation() const; + + private: + rx::SamplerImpl *mImpl; + + std::string mLabel; + + SamplerState mSamplerState; +}; + +} + +#endif // LIBANGLE_SAMPLER_H_ |