/**
* @return the width of the rendertarget
*/
- int width() const { return fWidth; }
+ int width() const { return fDesc.fWidth; }
/**
* @return the height of the rendertarget
*/
- int height() const { return fHeight; }
+ int height() const { return fDesc.fHeight; }
/**
* @return the pixel config. Can be kUnknown_GrPixelConfig
* if client asked us to render to a target that has a pixel
* config that isn't equivalent with one of our configs.
*/
- GrPixelConfig config() const { return fConfig; }
+ GrPixelConfig config() const { return fDesc.fConfig; }
/**
* @return the texture associated with the rendertarget, may be NULL.
/**
* @return true if the render target is multisampled, false otherwise
*/
- bool isMultisampled() const { return 0 != fSampleCnt; }
+ bool isMultisampled() const { return 0 != fDesc.fSampleCnt; }
/**
* @return the number of samples-per-pixel or zero if non-MSAA.
*/
- int numSamples() const { return fSampleCnt; }
+ int numSamples() const { return fDesc.fSampleCnt; }
/**
* Call to indicate the multisample contents were modified such that the
int sampleCnt)
: INHERITED(gpu)
, fStencilBuffer(NULL)
- , fTexture(texture)
- , fWidth(width)
- , fHeight(height)
- , fConfig(config)
- , fSampleCnt(sampleCnt) {
+ , fTexture(texture) {
fResolveRect.setLargestInverted();
+
+ fDesc.fWidth = width;
+ fDesc.fHeight = height;
+ fDesc.fConfig = config;
+ fDesc.fSampleCnt = sampleCnt;
}
friend class GrTexture;
private:
GrStencilBuffer* fStencilBuffer;
GrTexture* fTexture; // not ref'ed
- int fWidth;
- int fHeight;
- GrPixelConfig fConfig;
- int fSampleCnt;
+
+ GrTextureDesc fDesc;
+
GrIRect fResolveRect;
typedef GrResource INHERITED;
size_t GrRenderTarget::sizeInBytes() const {
int colorBits;
- if (kUnknown_GrPixelConfig == fConfig) {
+ if (kUnknown_GrPixelConfig == fDesc.fConfig) {
colorBits = 32; // don't know, make a guess
} else {
- colorBits = GrBytesPerPixel(fConfig);
+ colorBits = GrBytesPerPixel(fDesc.fConfig);
}
- uint64_t size = fWidth;
- size *= fHeight;
+ uint64_t size = fDesc.fWidth;
+ size *= fDesc.fHeight;
size *= colorBits;
- size *= GrMax(1,fSampleCnt);
+ size *= GrMax(1, fDesc.fSampleCnt);
return (size_t)(size / 8);
}