diff options
Diffstat (limited to 'libs/rs/rsContext.h')
-rw-r--r-- | libs/rs/rsContext.h | 274 |
1 files changed, 0 insertions, 274 deletions
diff --git a/libs/rs/rsContext.h b/libs/rs/rsContext.h deleted file mode 100644 index de110c6..0000000 --- a/libs/rs/rsContext.h +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ANDROID_RS_CONTEXT_H -#define ANDROID_RS_CONTEXT_H - -#include "rsUtils.h" -#include "rs_hal.h" - -#include "rsThreadIO.h" -#include "rsScriptC.h" -#include "rsSampler.h" -#include "rsFont.h" -#include "rsPath.h" -#include "rsProgramFragment.h" -#include "rsProgramStore.h" -#include "rsProgramRaster.h" -#include "rsProgramVertex.h" -#include "rsFBOCache.h" - -// --------------------------------------------------------------------------- -namespace android { - -namespace renderscript { - -class Device; - -#if 0 -#define CHECK_OBJ(o) { \ - GET_TLS(); \ - if (!ObjectBase::isValid(rsc, (const ObjectBase *)o)) { \ - ALOGE("Bad object %p at %s, %i", o, __FILE__, __LINE__); \ - } \ -} -#define CHECK_OBJ_OR_NULL(o) { \ - GET_TLS(); \ - if (o && !ObjectBase::isValid(rsc, (const ObjectBase *)o)) { \ - ALOGE("Bad object %p at %s, %i", o, __FILE__, __LINE__); \ - } \ -} -#else -#define CHECK_OBJ(o) -#define CHECK_OBJ_OR_NULL(o) -#endif - -class Context { -public: - struct Hal { - void * drv; - - RsdHalFunctions funcs; - }; - Hal mHal; - - static Context * createContext(Device *, const RsSurfaceConfig *sc); - static Context * createContextLite(); - ~Context(); - - static pthread_mutex_t gInitMutex; - // Library mutex (for providing thread-safe calls from the runtime) - static pthread_mutex_t gLibMutex; - - class PushState { - public: - PushState(Context *); - ~PushState(); - - private: - ObjectBaseRef<ProgramFragment> mFragment; - ObjectBaseRef<ProgramVertex> mVertex; - ObjectBaseRef<ProgramStore> mStore; - ObjectBaseRef<ProgramRaster> mRaster; - ObjectBaseRef<Font> mFont; - Context *mRsc; - }; - - RsSurfaceConfig mUserSurfaceConfig; - - ElementState mStateElement; - TypeState mStateType; - SamplerState mStateSampler; - ProgramFragmentState mStateFragment; - ProgramStoreState mStateFragmentStore; - ProgramRasterState mStateRaster; - ProgramVertexState mStateVertex; - FontState mStateFont; - - ScriptCState mScriptC; - FBOCache mFBOCache; - - void swapBuffers(); - void setRootScript(Script *); - void setProgramRaster(ProgramRaster *); - void setProgramVertex(ProgramVertex *); - void setProgramFragment(ProgramFragment *); - void setProgramStore(ProgramStore *); - void setFont(Font *); - - void updateSurface(void *sur); - - ProgramFragment * getProgramFragment() {return mFragment.get();} - ProgramStore * getProgramStore() {return mFragmentStore.get();} - ProgramRaster * getProgramRaster() {return mRaster.get();} - ProgramVertex * getProgramVertex() {return mVertex.get();} - Font * getFont() {return mFont.get();} - - bool setupCheck(); - void setupProgramStore(); - - void pause(); - void resume(); - void setSurface(uint32_t w, uint32_t h, RsNativeWindow sur); - void setPriority(int32_t p); - void destroyWorkerThreadResources(); - - void assignName(ObjectBase *obj, const char *name, uint32_t len); - void removeName(ObjectBase *obj); - - RsMessageToClientType peekMessageToClient(size_t *receiveLen, uint32_t *subID); - RsMessageToClientType getMessageToClient(void *data, size_t *receiveLen, uint32_t *subID, size_t bufferLen); - bool sendMessageToClient(const void *data, RsMessageToClientType cmdID, uint32_t subID, size_t len, bool waitForSpace) const; - uint32_t runScript(Script *s); - - void initToClient(); - void deinitToClient(); - - ProgramFragment * getDefaultProgramFragment() const { - return mStateFragment.mDefault.get(); - } - ProgramVertex * getDefaultProgramVertex() const { - return mStateVertex.mDefault.get(); - } - ProgramStore * getDefaultProgramStore() const { - return mStateFragmentStore.mDefault.get(); - } - ProgramRaster * getDefaultProgramRaster() const { - return mStateRaster.mDefault.get(); - } - Font* getDefaultFont() const { - return mStateFont.mDefault.get(); - } - - uint32_t getWidth() const {return mWidth;} - uint32_t getHeight() const {return mHeight;} - - uint32_t getCurrentSurfaceWidth() const; - uint32_t getCurrentSurfaceHeight() const; - - mutable ThreadIO mIO; - - // Timers - enum Timers { - RS_TIMER_IDLE, - RS_TIMER_INTERNAL, - RS_TIMER_SCRIPT, - RS_TIMER_CLEAR_SWAP, - _RS_TIMER_TOTAL - }; - uint64_t getTime() const; - void timerInit(); - void timerReset(); - void timerSet(Timers); - void timerPrint(); - void timerFrame(); - - struct { - bool mLogTimes; - bool mLogScripts; - bool mLogObjects; - bool mLogShaders; - bool mLogShadersAttr; - bool mLogShadersUniforms; - bool mLogVisual; - uint32_t mDebugMaxThreads; - } props; - - mutable struct { - bool inRoot; - const char *command; - const char *file; - uint32_t line; - } watchdog; - static void printWatchdogInfo(void *ctx); - void setWatchdogGL(const char *cmd, uint32_t line, const char *file) const { - watchdog.command = cmd; - watchdog.file = file; - watchdog.line = line; - } - - void dumpDebug() const; - void setError(RsError e, const char *msg = NULL) const; - - mutable const ObjectBase * mObjHead; - - uint32_t getDPI() const {return mDPI;} - void setDPI(uint32_t dpi) {mDPI = dpi;} - - uint32_t getTargetSdkVersion() const {return mTargetSdkVersion;} - void setTargetSdkVersion(uint32_t sdkVer) {mTargetSdkVersion = sdkVer;} - - Device *mDev; -protected: - - uint32_t mTargetSdkVersion; - uint32_t mDPI; - uint32_t mWidth; - uint32_t mHeight; - int32_t mThreadPriority; - bool mIsGraphicsContext; - - bool mRunning; - bool mExit; - bool mPaused; - mutable RsError mError; - - pthread_t mThreadId; - pid_t mNativeThreadId; - - ObjectBaseRef<Script> mRootScript; - ObjectBaseRef<ProgramFragment> mFragment; - ObjectBaseRef<ProgramVertex> mVertex; - ObjectBaseRef<ProgramStore> mFragmentStore; - ObjectBaseRef<ProgramRaster> mRaster; - ObjectBaseRef<Font> mFont; - - void displayDebugStats(); - -private: - Context(); - bool initContext(Device *, const RsSurfaceConfig *sc); - - - bool initGLThread(); - void deinitEGL(); - - uint32_t runRootScript(); - - static void * threadProc(void *); - static void * helperThreadProc(void *); - - bool mHasSurface; - bool mIsContextLite; - - Vector<ObjectBase *> mNames; - - uint64_t mTimers[_RS_TIMER_TOTAL]; - Timers mTimerActive; - uint64_t mTimeLast; - uint64_t mTimeFrame; - uint64_t mTimeLastFrame; - uint32_t mTimeMSLastFrame; - uint32_t mTimeMSLastScript; - uint32_t mTimeMSLastSwap; - uint32_t mAverageFPSFrameCount; - uint64_t mAverageFPSStartTime; - uint32_t mAverageFPS; -}; - -} // renderscript -} // android -#endif |