19e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams/*
29e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * Copyright (C) 2011 The Android Open Source Project
39e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams *
49e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
59e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * you may not use this file except in compliance with the License.
69e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * You may obtain a copy of the License at
79e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams *
89e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
99e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams *
109e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * Unless required by applicable law or agreed to in writing, software
119e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
129e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * See the License for the specific language governing permissions and
149e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams * limitations under the License.
159e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams */
169e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
179e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams#include "rsContext.h"
184edf030cbb7c6ac08dc563335c2af73c20f6e2e5Alex Sakhartchouk#include "rs.h"
199e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
209e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsusing namespace android;
219e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsusing namespace android::renderscript;
229e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
239e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
249e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason SamsPath::Path(Context *rsc) : ObjectBase(rsc) {
259e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
269e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
279e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason SamsPath::Path(Context *rsc, RsPathPrimitive pp, bool isStatic,
289e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams                      Allocation *vtx, Allocation *loops, float quality)
299e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams: ObjectBase(rsc) {
309e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
319e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    memset(&mHal, 0, sizeof(mHal));
329e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    mHal.state.quality = quality;
339e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    mHal.state.primitive = pp;
349e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
35028f20a6e5e883b7308298273b9aa517e5c890f5Jason Sams    //LOGE("i1");
369e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    rsc->mHal.funcs.path.initStatic(rsc, this, vtx, loops);
379e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
38028f20a6e5e883b7308298273b9aa517e5c890f5Jason Sams    //LOGE("i2");
399e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
409e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
419e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason SamsPath::Path(Context *rsc, uint32_t vertexBuffersCount, uint32_t primitivesCount)
429e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams: ObjectBase(rsc) {
439e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
449e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
459e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
469e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason SamsPath::~Path() {
479e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
489e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
499e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
509e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
519e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsvoid Path::rasterize(const BezierSegment_t *s, uint32_t num, Allocation *alloc) {
529e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
539e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    for (uint32_t i=0; i < num; i++) {
549e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
559e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    }
569e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
579e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
589e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
599e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsvoid Path::render(Context *rsc) {
609e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
619e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
62e3150cfb3edb028407669e4a65e087eae77e718cJason Samsvoid Path::serialize(Context *rsc, OStream *stream) const {
639e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
649e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
659e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
669e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason SamsRsA3DClassID Path::getClassId() const {
679e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    return RS_A3D_CLASS_ID_UNKNOWN;
689e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
699e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
709e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsnamespace android {
719e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsnamespace renderscript {
729e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
739e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason SamsRsPath rsi_PathCreate(Context *rsc, RsPathPrimitive pp, bool isStatic,
749e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams                      RsAllocation vtx, RsAllocation loops, float quality) {
759e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    return new Path(rsc, pp, isStatic, (Allocation *)vtx, (Allocation *)loops, quality);
769e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
779e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
789e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
799e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams}
80