summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsProgramStore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/rs/rsProgramStore.cpp')
-rw-r--r--libs/rs/rsProgramStore.cpp163
1 files changed, 0 insertions, 163 deletions
diff --git a/libs/rs/rsProgramStore.cpp b/libs/rs/rsProgramStore.cpp
deleted file mode 100644
index 7e25a22..0000000
--- a/libs/rs/rsProgramStore.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2009 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.
- */
-
-#include "rsContext.h"
-#include "rsProgramStore.h"
-
-using namespace android;
-using namespace android::renderscript;
-
-
-ProgramStore::ProgramStore(Context *rsc,
- bool colorMaskR, bool colorMaskG, bool colorMaskB, bool colorMaskA,
- bool depthMask, bool ditherEnable,
- RsBlendSrcFunc srcFunc, RsBlendDstFunc destFunc,
- RsDepthFunc depthFunc) : ProgramBase(rsc) {
- memset(&mHal, 0, sizeof(mHal));
-
- mHal.state.ditherEnable = ditherEnable;
-
- mHal.state.colorRWriteEnable = colorMaskR;
- mHal.state.colorGWriteEnable = colorMaskG;
- mHal.state.colorBWriteEnable = colorMaskB;
- mHal.state.colorAWriteEnable = colorMaskA;
- mHal.state.blendSrc = srcFunc;
- mHal.state.blendDst = destFunc;
-
- mHal.state.depthWriteEnable = depthMask;
- mHal.state.depthFunc = depthFunc;
-}
-
-void ProgramStore::preDestroy() const {
- for (uint32_t ct = 0; ct < mRSC->mStateFragmentStore.mStorePrograms.size(); ct++) {
- if (mRSC->mStateFragmentStore.mStorePrograms[ct] == this) {
- mRSC->mStateFragmentStore.mStorePrograms.removeAt(ct);
- break;
- }
- }
-}
-
-ProgramStore::~ProgramStore() {
- mRSC->mHal.funcs.store.destroy(mRSC, this);
-}
-
-void ProgramStore::setup(const Context *rsc, ProgramStoreState *state) {
- if (state->mLast.get() == this) {
- return;
- }
- state->mLast.set(this);
-
- rsc->mHal.funcs.store.setActive(rsc, this);
-}
-
-void ProgramStore::serialize(OStream *stream) const {
-}
-
-ProgramStore *ProgramStore::createFromStream(Context *rsc, IStream *stream) {
- return NULL;
-}
-
-void ProgramStore::init() {
- mRSC->mHal.funcs.store.init(mRSC, this);
-}
-
-ProgramStoreState::ProgramStoreState() {
-}
-
-ProgramStoreState::~ProgramStoreState() {
-}
-
-ObjectBaseRef<ProgramStore> ProgramStore::getProgramStore(Context *rsc,
- bool colorMaskR,
- bool colorMaskG,
- bool colorMaskB,
- bool colorMaskA,
- bool depthMask, bool ditherEnable,
- RsBlendSrcFunc srcFunc,
- RsBlendDstFunc destFunc,
- RsDepthFunc depthFunc) {
- ObjectBaseRef<ProgramStore> returnRef;
- ObjectBase::asyncLock();
- for (uint32_t ct = 0; ct < rsc->mStateFragmentStore.mStorePrograms.size(); ct++) {
- ProgramStore *existing = rsc->mStateFragmentStore.mStorePrograms[ct];
- if (existing->mHal.state.ditherEnable != ditherEnable) continue;
- if (existing->mHal.state.colorRWriteEnable != colorMaskR) continue;
- if (existing->mHal.state.colorGWriteEnable != colorMaskG) continue;
- if (existing->mHal.state.colorBWriteEnable != colorMaskB) continue;
- if (existing->mHal.state.colorAWriteEnable != colorMaskA) continue;
- if (existing->mHal.state.blendSrc != srcFunc) continue;
- if (existing->mHal.state.blendDst != destFunc) continue;
- if (existing->mHal.state.depthWriteEnable != depthMask) continue;
- if (existing->mHal.state.depthFunc != depthFunc) continue;
-
- returnRef.set(existing);
- ObjectBase::asyncUnlock();
- return returnRef;
- }
- ObjectBase::asyncUnlock();
-
- ProgramStore *pfs = new ProgramStore(rsc,
- colorMaskR, colorMaskG, colorMaskB, colorMaskA,
- depthMask, ditherEnable,
- srcFunc, destFunc, depthFunc);
- returnRef.set(pfs);
-
- pfs->init();
-
- ObjectBase::asyncLock();
- rsc->mStateFragmentStore.mStorePrograms.push(pfs);
- ObjectBase::asyncUnlock();
-
- return returnRef;
-}
-
-
-
-void ProgramStoreState::init(Context *rsc) {
- mDefault.set(ProgramStore::getProgramStore(rsc,
- true, true, true, true,
- true, true,
- RS_BLEND_SRC_ONE, RS_BLEND_DST_ZERO,
- RS_DEPTH_FUNC_LESS).get());
-}
-
-void ProgramStoreState::deinit(Context *rsc) {
- mDefault.clear();
- mLast.clear();
-}
-
-
-namespace android {
-namespace renderscript {
-
-RsProgramStore rsi_ProgramStoreCreate(Context *rsc,
- bool colorMaskR, bool colorMaskG, bool colorMaskB, bool colorMaskA,
- bool depthMask, bool ditherEnable,
- RsBlendSrcFunc srcFunc, RsBlendDstFunc destFunc,
- RsDepthFunc depthFunc) {
-
-
- ObjectBaseRef<ProgramStore> ps = ProgramStore::getProgramStore(rsc,
- colorMaskR, colorMaskG,
- colorMaskB, colorMaskA,
- depthMask, ditherEnable,
- srcFunc, destFunc, depthFunc);
- ps->incUserRef();
- return ps.get();
-}
-
-}
-}