Comments (4)
I have temporarily fixed it by modifying CCTextureCache::addImageAsyncCallBack(ccTime dt)
void CCTextureCache::addImageAsyncCallBack(ccTime dt)
{
// the image is generated in loading thread
std::queue<ImageInfo*> *imagesQueue = s_pImageQueue;
pthread_mutex_lock(&s_ImageInfoMutex);
if (imagesQueue->empty())
{
pthread_mutex_unlock(&s_ImageInfoMutex);
}
else
{
ImageInfo *pImageInfo = imagesQueue->front();
imagesQueue->pop();
pthread_mutex_unlock(&s_ImageInfoMutex);
AsyncStruct *pAsyncStruct = pImageInfo->asyncStruct;
CCImage *pImage = pImageInfo->image;
SelectorProtocol *target = pAsyncStruct->target;
SEL_CallFuncO selector = pAsyncStruct->selector;
const char* filename = pAsyncStruct->filename.c_str();
// generate texture in render thread
CCTexture2D *texture = new CCTexture2D();
texture->initWithImage(pImage);
// cache the texture
m_pTextures->setObject(texture, filename);
texture->autorelease();
if (target && selector)
{
#if CC_ENABLE_CACHE_TEXTTURE_DATA
if ( std::string::npos != pImageInfo->asyncStruct->filename.find( ".jpg" )
|| std::string::npos != pImageInfo->asyncStruct->filename.find( ".jpeg" ) )
{
VolatileTexture::addImageTexture(texture, pImageInfo->asyncStruct->filename.c_str(), CCImage::kFmtJpg);
}
else if ( std::string::npos != pImageInfo->asyncStruct->filename.find( ".pvr" ) )
{
// ?
}
else
{
VolatileTexture::addImageTexture(texture, pImageInfo->asyncStruct->filename.c_str(), CCImage::kFmtPng);
}
#endif
(target->*selector)(texture);
target->selectorProtocolRelease();
}
delete pImage;
delete pAsyncStruct;
delete pImageInfo;
}
}
from cocos2d-x.
It caches data in addImageAsyncCallBack(), may be your code is too old.
Yes, addImageAsync() donesn't support pvr format now.
from cocos2d-x.
Oh yes, oops. Looks like I have an older version.
But for my last point, when removing unused textures for example, I don't see any calls to removing the texture from the "textures" container containing the VolatileTexture objects.
from cocos2d-x.
Neveremind..I see the call to remove it inside the CCTexture2D descructor.
from cocos2d-x.
Related Issues (20)
- Want Cocos2d-x v4 Mac to use openGL rendering,what can i do HOT 2
- Is project dead? HOT 5
- Where is CCGLProgram.cpp ? HOT 1
- A iOS crash occurs when we replace the network module with cocos-engine/native/cocos/network.
- [Feature Request] Build external libs from source HOT 1
- Compiling with Ninja Generator and CLION
- Null Image Data In RenderTexture::newImage Callback
- 错误:找不到 <js> 模板。 HOT 1
- cocos run -p mac出错,只能web,编译也是,平台只能web,其他都会报错
- 4.0是不是不支持js了??? HOT 1
- libMiniCL.a link error when building for iOS Simulator
- Failed to build from source on Ubuntu 22.04 HOT 3
- cocos2d游戏项目在IOS上真机调试
- cocos2dx-lua 还有计划支持国产系统吗? HOT 1
- Packaging iOS applications in the GitHub Actions workflow HOT 1
- An error when Build apk at Apple Silicon
- Issue in AudioResamplerPublic
- Creating simple label raises TypeError: bad operand type for unary -: 'str' HOT 1
- #20704
- Black screen when compiling to Android with cocos2d-x js version 3.17.2 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cocos2d-x.