skia2/include/gpu/GrTexture.h
Brian Osman 7b8400dad2 Rename SkSourceGammaTreatment to SkDestinationSurfaceColorMode
This is much more explicit about what that type represents (are we in
legacy mode or not), which also makes it suitable for other (upcoming)
usage.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4529

Change-Id: Iacb397c34e7765f1ca86c0195bc622b2be4d9acf
Reviewed-on: https://skia-review.googlesource.com/4529
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2016-11-09 01:05:07 +00:00

75 lines
1.9 KiB
C++

/*
* Copyright 2011 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef GrTexture_DEFINED
#define GrTexture_DEFINED
#include "GrSurface.h"
#include "GrTextureParams.h"
#include "SkPoint.h"
#include "SkRefCnt.h"
class GrTexturePriv;
class GrTexture : virtual public GrSurface {
public:
GrTexture* asTexture() override { return this; }
const GrTexture* asTexture() const override { return this; }
/**
* Return the native ID or handle to the texture, depending on the
* platform. e.g. on OpenGL, return the texture ID.
*/
virtual GrBackendObject getTextureHandle() const = 0;
/**
* This function indicates that the texture parameters (wrap mode, filtering, ...) have been
* changed externally to Skia.
*/
virtual void textureParamsModified() = 0;
#ifdef SK_DEBUG
void validate() const {
this->INHERITED::validate();
this->validateDesc();
}
#endif
/** Access methods that are only to be used within Skia code. */
inline GrTexturePriv texturePriv();
inline const GrTexturePriv texturePriv() const;
protected:
GrTexture(GrGpu*, const GrSurfaceDesc&, GrSLType samplerType,
GrTextureParams::FilterMode highestFilterMode, bool wasMipMapDataProvided);
void validateDesc() const;
private:
void computeScratchKey(GrScratchKey*) const override;
size_t onGpuMemorySize() const override;
void dirtyMipMaps(bool mipMapsDirty);
enum MipMapsStatus {
kNotAllocated_MipMapsStatus,
kAllocated_MipMapsStatus,
kValid_MipMapsStatus
};
GrSLType fSamplerType;
GrTextureParams::FilterMode fHighestFilterMode;
MipMapsStatus fMipMapsStatus;
int fMaxMipMapLevel;
SkDestinationSurfaceColorMode fMipColorMode;
friend class GrTexturePriv;
typedef GrSurface INHERITED;
};
#endif