diff options
Diffstat (limited to 'libs/rs/rsAllocation.h')
| -rw-r--r-- | libs/rs/rsAllocation.h | 30 |
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(); + }; } |
