diff options
Diffstat (limited to 'libs/rs/rsProgramRaster.cpp')
-rw-r--r-- | libs/rs/rsProgramRaster.cpp | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/libs/rs/rsProgramRaster.cpp b/libs/rs/rsProgramRaster.cpp deleted file mode 100644 index 94bfe4275abe..000000000000 --- a/libs/rs/rsProgramRaster.cpp +++ /dev/null @@ -1,114 +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 "rsProgramRaster.h" - -using namespace android; -using namespace android::renderscript; - - -ProgramRaster::ProgramRaster(Context *rsc, bool pointSprite, RsCullMode cull) - : ProgramBase(rsc) { - - memset(&mHal, 0, sizeof(mHal)); - mHal.state.pointSprite = pointSprite; - mHal.state.cull = cull; - rsc->mHal.funcs.raster.init(rsc, this); -} - -void ProgramRaster::preDestroy() const { - for (uint32_t ct = 0; ct < mRSC->mStateRaster.mRasterPrograms.size(); ct++) { - if (mRSC->mStateRaster.mRasterPrograms[ct] == this) { - mRSC->mStateRaster.mRasterPrograms.removeAt(ct); - break; - } - } -} - -ProgramRaster::~ProgramRaster() { - mRSC->mHal.funcs.raster.destroy(mRSC, this); -} - -void ProgramRaster::setup(const Context *rsc, ProgramRasterState *state) { - if (state->mLast.get() == this && !mDirty) { - return; - } - state->mLast.set(this); - mDirty = false; - - rsc->mHal.funcs.raster.setActive(rsc, this); -} - -void ProgramRaster::serialize(OStream *stream) const { -} - -ProgramRaster *ProgramRaster::createFromStream(Context *rsc, IStream *stream) { - return NULL; -} - -ProgramRasterState::ProgramRasterState() { -} - -ProgramRasterState::~ProgramRasterState() { -} - -void ProgramRasterState::init(Context *rsc) { - mDefault.set(ProgramRaster::getProgramRaster(rsc, false, RS_CULL_BACK).get()); -} - -void ProgramRasterState::deinit(Context *rsc) { - mDefault.clear(); - mLast.clear(); -} - -ObjectBaseRef<ProgramRaster> ProgramRaster::getProgramRaster(Context *rsc, - bool pointSprite, - RsCullMode cull) { - ObjectBaseRef<ProgramRaster> returnRef; - ObjectBase::asyncLock(); - for (uint32_t ct = 0; ct < rsc->mStateRaster.mRasterPrograms.size(); ct++) { - ProgramRaster *existing = rsc->mStateRaster.mRasterPrograms[ct]; - if (existing->mHal.state.pointSprite != pointSprite) continue; - if (existing->mHal.state.cull != cull) continue; - returnRef.set(existing); - ObjectBase::asyncUnlock(); - return returnRef; - } - ObjectBase::asyncUnlock(); - - ProgramRaster *pr = new ProgramRaster(rsc, pointSprite, cull); - returnRef.set(pr); - - ObjectBase::asyncLock(); - rsc->mStateRaster.mRasterPrograms.push(pr); - ObjectBase::asyncUnlock(); - - return returnRef; -} - -namespace android { -namespace renderscript { - -RsProgramRaster rsi_ProgramRasterCreate(Context * rsc, bool pointSprite, RsCullMode cull) { - ObjectBaseRef<ProgramRaster> pr = ProgramRaster::getProgramRaster(rsc, pointSprite, cull); - pr->incUserRef(); - return pr.get(); -} - -} -} - |