Merge change 5983

* changes:
  Begin adding mesh
This commit is contained in:
Android (Google) Code Review
2009-07-01 16:43:14 -07:00
5 changed files with 150 additions and 7 deletions

View File

@@ -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"

View File

@@ -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(env->fsImages);
contextBindProgramFragment(env->fpImages);
contextBindProgramFragmentStore(NAMED_PFImages);
contextBindProgramFragment(NAMED_PFSImages);
//focusPos = loadF(1, 2);
//focusID = 0;
//lastFocusID = loadI32(2, 0);
//imgCount = 13;
/*
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;

View File

@@ -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"

45
libs/rs/rsMesh.cpp Normal file
View File

@@ -0,0 +1,45 @@
/*
* 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()
{
}

83
libs/rs/rsMesh.h Normal file
View File

@@ -0,0 +1,83 @@
/*
* 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