SL-16202: Use WorkQueue::postTo() for texture create/post handshake.
That is, when LLViewerFetchedTexture::scheduleCreateTexture() wants to call createTexture() on the LLImageGLThread, but postCreateTexture() on the main thread, use the "mainloop" WorkQueue to set up the handshake. Give ThreadPool a public virtual run() method so a subclass can override with desired behavior. This necessitates a virtual destructor. Add accessors for embedded WorkQueue (for post calls), ThreadPool name and width (in threads). Allow LLSimpleton::createInstance() to forward arguments to the subject constructor. Make LLImageGLThread an LLSimpleton - that abstraction didn't yet exist at the time LLImageGLThread was coded. Also derive from ThreadPool rather than LLThread. Make it a single-thread "pool" with a very large queue capacity.
Showing
- indra/llcommon/llsingleton.h 11 additions, 9 deletionsindra/llcommon/llsingleton.h
- indra/llcommon/threadpool.cpp 6 additions, 1 deletionindra/llcommon/threadpool.cpp
- indra/llcommon/threadpool.h 17 additions, 1 deletionindra/llcommon/threadpool.h
- indra/llrender/llimagegl.cpp 11 additions, 11 deletionsindra/llrender/llimagegl.cpp
- indra/llrender/llimagegl.h 4 additions, 7 deletionsindra/llrender/llimagegl.h
- indra/newview/llviewertexture.cpp 23 additions, 11 deletionsindra/newview/llviewertexture.cpp
- indra/newview/llviewertexture.h 4 additions, 0 deletionsindra/newview/llviewertexture.h
Loading
Please register or sign in to comment