Hash :
71c88b31
Author :
Date :
2017-09-14T22:20:29
Enable [[nodiscard]] for gl::Error. This forces all return values to be checked for gl::Error. Requires quite a bit of minor refactoring. I also added a macro to swallow an error without returning from a function. We could look at storing the errors in the Context at some point, since almost always when we're generating errors that we need to discard we have access to the Context as a parameter. BUG=angleproject:2150 Change-Id: I457e48a30c002eda0993acbcd3180ba87bf169fb Reviewed-on: https://chromium-review.googlesource.com/665173 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
//
// 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;
Error onDestroy(const Context *context) override { return NoError(); }
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;
void syncState(const Context *context);
private:
SamplerState mState;
rx::SamplerImpl *mImpl;
std::string mLabel;
};
} // namespace gl
#endif // LIBANGLE_SAMPLER_H_