Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c878f3a authored by Jason Sams's avatar Jason Sams
Browse files

Begin adding mesh

parent cd15475b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -173,6 +173,14 @@ enum RsTexEnvMode {
    RS_TEX_ENV_MODE_DECAL
};

enum RsPrimitive {
    RS_PRIMITIVE_POINT,
    RS_PRIMITIVE_LINE,
    RS_PRIMITIVE_LINE_STRIP,
    RS_PRIMITIVE_TRIANGLE,
    RS_PRIMITIVE_TRIANGLE_STRIP,
    RS_PRIMITIVE_TRIANGLE_FAN
};


#include "rsgApiFuncDecl.h"
+13 −7
Original line number Diff line number Diff line
@@ -31,6 +31,10 @@ int main(int index)
    int trans;  // float
    int rot;   // float
    int x;
    float focusPos;  // float
    int focusID;
    int lastFocusID;
    int imgCount;

    float_2 = intToFloat(2);
    float_1 = intToFloat(1);
@@ -58,15 +62,17 @@ int main(int index)

    //int imgId = 0;

    contextBindProgramFragmentStore(NAMED_PFImages);
    contextBindProgramFragment(NAMED_PFSImages);

    //focusPos = loadF(1, 2);
    //focusID = 0;
    //lastFocusID = loadI32(2, 0);
    //imgCount = 13;

    /*
    contextBindProgramFragmentStore(env->fsImages);
    contextBindProgramFragment(env->fpImages);
    disable(GL_LIGHTING);

    float focusPos = loadEnvF(1, 2);
    int focusID = 0;
    int lastFocusID = loadEnvI32(2, 0);
    int imgCount = 13;

    if (trans > (-.3)) {
        focusID = -1.0 - focusPos;
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include "rsMatrix.h"
#include "rsAllocation.h"
#include "rsTriangleMesh.h"
#include "rsMesh.h"
#include "rsDevice.h"
#include "rsScriptC.h"
#include "rsAllocation.h"

libs/rs/rsMesh.cpp

0 → 100644
+45 −0
Original line number Diff line number Diff line
/*
 * 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"

using namespace android;
using namespace android::renderscript;

#include <GLES/gl.h>
#include <GLES/glext.h>

Mesh::Mesh()
{
    mSources = NULL;
    mPrimitives = NULL;
    mPrimitiveCount = 0;
}

Mesh::~Mesh()
{
}



MeshContext::MeshContext()
{
}

MeshContext::~MeshContext()
{
}

libs/rs/rsMesh.h

0 → 100644
+83 −0
Original line number Diff line number Diff line
/*
 * 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.
 */

#ifndef ANDROID_RS_MESH_H
#define ANDROID_RS_MESH_H


#include "RenderScript.h"

// ---------------------------------------------------------------------------
namespace android {
namespace renderscript {


// An element is a group of Components that occupies one cell in a structure.
class Mesh : public ObjectBase
{
public:
    Mesh();
    ~Mesh();

    struct VertexSource_t
    {
        const Element * mVertexElement;
        void * mVertexData;
        size_t mVertexDataSize;

        size_t mOffsetCoord;
        size_t mOffsetTex;
        size_t mOffsetNorm;
    
        size_t mSizeCoord;
        size_t mSizeTex;
        size_t mSizeNorm;

        uint32_t mBufferObject;
    };

    struct Primitive_t
    {
        RsPrimitive mType;
        const Element * mIndexElement;
        void * mVertexData;
        size_t mIndexDataSize;

        uint32_t mBufferObject;
    };

    VertexSource_t * mSources;
    Primitive_t * mPrimitives;
    uint32_t mPrimitiveCount;

    void analyzeElement();
protected:
};

class MeshContext
{
public:
    MeshContext();
    ~MeshContext();

};


}
}
#endif //ANDROID_RS_TRIANGLE_MESH_H