summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsAllocation.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/rs/rsAllocation.h')
-rw-r--r--libs/rs/rsAllocation.h30
1 files changed, 20 insertions, 10 deletions
diff --git a/libs/rs/rsAllocation.h b/libs/rs/rsAllocation.h
index e63c7ab..4a5f3da 100644
--- a/libs/rs/rsAllocation.h
+++ b/libs/rs/rsAllocation.h
@@ -30,7 +30,6 @@ class Allocation : public ObjectBase {
public:
Allocation(Context *rsc, const Type *, uint32_t usages);
- Allocation(Context *rsc, const Type *, void *bmp, void *callbackData, RsBitmapCallback_t callback);
virtual ~Allocation();
@@ -46,7 +45,7 @@ public:
void syncAll(Context *rsc, RsAllocationUsageType src);
- void deferedUploadToTexture(const Context *rsc, bool genMipmap, uint32_t lodOffset);
+ void deferedUploadToTexture(const Context *rsc);
void uploadToTexture(const Context *rsc);
uint32_t getTextureID() const {return mTextureID;}
@@ -88,14 +87,25 @@ public:
virtual void uploadCheck(Context *rsc);
- bool getIsTexture() const {return mIsTexture;}
- bool getIsBufferObject() const {return mIsVertexBuffer;}
+ bool getIsScript() const {
+ return (mUsageFlags & RS_ALLOCATION_USAGE_SCRIPT) != 0;
+ }
+ bool getIsTexture() const {
+ return (mUsageFlags & RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE) != 0;
+ }
+ bool getIsBufferObject() const {
+ return (mUsageFlags & RS_ALLOCATION_USAGE_GRAPHICS_VERTEX) != 0;
+ }
void incRefs(const void *ptr, size_t ct, size_t startOff = 0) const;
void decRefs(const void *ptr, size_t ct, size_t startOff = 0) const;
void sendDirty() const;
- bool getHasGraphicsMipmaps() const {return mTextureGenMipmap;}
+ bool getHasGraphicsMipmaps() const {
+ return mMipmapControl != RS_ALLOCATION_MIPMAP_NONE;
+ }
+
+ void upload2DTexture(bool isFirstUpload, const void *ptr);
protected:
ObjectBaseRef<const Type> mType;
@@ -115,6 +125,7 @@ protected:
bool mGpuRead;
uint32_t mUsageFlags;
+ RsAllocationMipmapControl mMipmapControl;
// more usage hint data from the application
// which can be used by a driver to pick the best memory type.
@@ -125,23 +136,22 @@ protected:
// Is this a legal structure to be used as a texture source.
// Initially this will require 1D or 2D and color data
- bool mIsTexture;
- bool mTextureGenMipmap;
- uint32_t mTextureLOD;
uint32_t mTextureID;
// Is this a legal structure to be used as a vertex source.
// Initially this will require 1D and x(yzw). Additional per element data
// is allowed.
- bool mIsVertexBuffer;
uint32_t mBufferID;
bool mUploadDefered;
private:
void init(Context *rsc, const Type *);
- void upload2DTexture(bool isFirstUpload);
void uploadCubeTexture(bool isFirstUpload);
+
+ void allocScriptMemory();
+ void freeScriptMemory();
+
};
}