summaryrefslogtreecommitdiffstats
path: root/libs/rs/driver/rsdPath.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/rs/driver/rsdPath.cpp')
-rw-r--r--libs/rs/driver/rsdPath.cpp185
1 files changed, 0 insertions, 185 deletions
diff --git a/libs/rs/driver/rsdPath.cpp b/libs/rs/driver/rsdPath.cpp
deleted file mode 100644
index e04bc02..0000000
--- a/libs/rs/driver/rsdPath.cpp
+++ /dev/null
@@ -1,185 +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.
- */
-
-#include <GLES/gl.h>
-#include <GLES2/gl2.h>
-#include <GLES/glext.h>
-
-#include <rs_hal.h>
-#include <rsContext.h>
-#include <rsPath.h>
-
-#include "rsdCore.h"
-#include "rsdPath.h"
-#include "rsdAllocation.h"
-#include "rsdGL.h"
-#include "rsdVertexArray.h"
-#include "rsdShaderCache.h"
-
-using namespace android;
-using namespace android::renderscript;
-
-class DrvPath {
-protected:
- DrvPath();
-public:
- virtual ~DrvPath();
- virtual void draw(Context *) = 0;
-};
-
-class DrvPathStatic : public DrvPath {
-public:
- typedef struct {
- float x1, xc, x2;
- float y1, yc, y2;
- } segment_t;
-
- segment_t *mSegments;
- uint32_t mSegmentCount;
-
- DrvPathStatic(const Allocation *vtx, const Allocation *loops);
- virtual ~DrvPathStatic();
-
- virtual void draw(Context *);
-};
-
-class DrvPathDynamic : public DrvPath {
-public:
- DrvPathDynamic();
- virtual ~DrvPathDynamic();
-};
-
-static void cleanup(const Context *rsc, const Path *m) {
- DrvPath *dp = (DrvPath *)m->mHal.drv;
- if (dp) {
- delete dp;
- }
-}
-
-bool rsdPathInitStatic(const Context *rsc, const Path *m,
- const Allocation *vtx, const Allocation *loops) {
- DrvPathStatic *drv = NULL;
- cleanup(rsc, m);
-
- DrvPathStatic *dps = new DrvPathStatic(vtx, loops);
- //LOGE("init path m %p, %p", m, dps);
- m->mHal.drv = dps;
- return dps != NULL;
-}
-
-bool rsdPathInitDynamic(const Context *rsc, const Path *m) {
- return false;
-}
-
-
-void rsdPathDraw(const Context *rsc, const Path *m) {
- //LOGE("render m=%p", m);
-
- DrvPath *drv = (DrvPath *)m->mHal.drv;
- if(drv) {
- //LOGE("render 2 drv=%p", drv);
- drv->draw((Context *)rsc);
- }
-}
-
-void rsdPathDestroy(const Context *rsc, const Path *m) {
- cleanup(rsc, m);
- m->mHal.drv = NULL;
-}
-
-
-
-
-DrvPath::DrvPath() {
-}
-
-DrvPath::~DrvPath() {
-}
-
-DrvPathStatic::DrvPathStatic(const Allocation *vtx, const Allocation *loops) {
- mSegmentCount = vtx->getType()->getDimX() / 3;
- mSegments = new segment_t[mSegmentCount];
-
- const float *fin = (const float *)vtx->getPtr();
- for (uint32_t ct=0; ct < mSegmentCount; ct++) {
- segment_t *s = &mSegments[ct];
- s->x1 = fin[0];
- s->y1 = fin[1];
-
- s->xc = fin[2];
- s->yc = fin[3];
-
- s->x2 = fin[4];
- s->y2 = fin[5];
- fin += 6;
- }
-}
-
-DrvPathStatic::~DrvPathStatic() {
-}
-
-void DrvPathStatic::draw(Context *rsc) {
- const static float color[24] = {
- 1.f, 0.f, 0.f, 1.f, 0.5f, 0.f, 0.f, 1.f,
- 1.f, 0.f, 0.f, 1.f, 0.5f, 0.f, 0.f, 1.f,
- 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f};
- float vtx[12];
-
- //LOGE("draw");
- if (!rsc->setupCheck()) {
- return;
- }
-
- RsdHal *dc = (RsdHal *)rsc->mHal.drv;
- if (!dc->gl.shaderCache->setup(rsc)) {
- return;
- }
-
- RsdVertexArray::Attrib attribs[2];
- attribs[0].set(GL_FLOAT, 2, 8, false, (uint32_t)vtx, "ATTRIB_position");
- attribs[1].set(GL_FLOAT, 4, 16, false, (uint32_t)color, "ATTRIB_color");
- RsdVertexArray va(attribs, 2);
- va.setup(rsc);
-
- //LOGE("mSegmentCount %i", mSegmentCount);
- for (uint32_t ct=0; ct < mSegmentCount; ct++) {
- segment_t *s = &mSegments[ct];
-
- vtx[0] = s->x1;
- vtx[1] = s->y1;
- vtx[2] = s->xc;
- vtx[3] = s->yc;
-
- vtx[4] = s->x2;
- vtx[5] = s->y2;
- vtx[6] = s->xc;
- vtx[7] = s->yc;
-
- vtx[8] = s->x1;
- vtx[9] = s->y1;
- vtx[10] = s->x2;
- vtx[11] = s->y2;
-
- RSD_CALL_GL(glDrawArrays, GL_LINES, 0, 6);
- }
-
-}
-
-DrvPathDynamic::DrvPathDynamic() {
-}
-
-DrvPathDynamic::~DrvPathDynamic() {
-}