summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/Sampler.h
blob: 257bc25d22a6802e14c54d878497fffe0f6ef8ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// 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_