blob: 257bc25d22a6802e14c54d878497fffe0f6ef8ef [file] [log] [blame]
//
// 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 LIBGLESV2_SAMPLER_H_
#define LIBGLESV2_SAMPLER_H_
#include "common/RefCountObject.h"
namespace gl
{
struct SamplerState;
class Sampler : public RefCountObject
{
public:
Sampler(GLuint id);
void setMinFilter(GLenum minFilter) { mMinFilter = minFilter; }
void setMagFilter(GLenum magFilter) { mMagFilter = magFilter; }
void setWrapS(GLenum wrapS) { mWrapS = wrapS; }
void setWrapT(GLenum wrapT) { mWrapT = wrapT; }
void setWrapR(GLenum wrapR) { mWrapR = wrapR; }
void setMinLod(GLfloat minLod) { mMinLod = minLod; }
void setMaxLod(GLfloat maxLod) { mMaxLod = maxLod; }
void setComparisonMode(GLenum comparisonMode) { mComparisonMode = comparisonMode; }
void setComparisonFunc(GLenum comparisonFunc) { mComparisonFunc = comparisonFunc; }
GLenum getMinFilter() const { return mMinFilter; }
GLenum getMagFilter() const { return mMagFilter; }
GLenum getWrapS() const { return mWrapS; }
GLenum getWrapT() const { return mWrapT; }
GLenum getWrapR() const { return mWrapR; }
GLfloat getMinLod() const { return mMinLod; }
GLfloat getMaxLod() const { return mMaxLod; }
GLenum getComparisonMode() const { return mComparisonMode; }
GLenum getComparisonFunc() const { return mComparisonFunc; }
void getState(SamplerState *samplerState) const;
private:
GLenum mMinFilter;
GLenum mMagFilter;
GLenum mWrapS;
GLenum mWrapT;
GLenum mWrapR;
GLfloat mMinLod;
GLfloat mMaxLod;
GLenum mComparisonMode;
GLenum mComparisonFunc;
};
}
#endif // LIBGLESV2_SAMPLER_H_