* Style fixes

* Moved the wait_for_thread in _StopRenderThread()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32069 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexandre Deckner 2009-08-03 10:55:13 +00:00
parent 1c992a5285
commit 3d65021d98
5 changed files with 53 additions and 50 deletions

View File

@ -29,7 +29,7 @@ struct Face {
class Mesh : public Referenceable {
public:
virtual ~Mesh();
virtual ~Mesh();
virtual Face& GetFace(uint32 index) const = 0;
virtual uint32 FaceCount() const = 0;

View File

@ -105,50 +105,50 @@ MeshInstance::Render()
// draw face
glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[0].u, face.v[0].v);
glVertex3f(face.v[0].p.x(), face.v[0].p.y(), face.v[0].p.z());
glTexCoord2f(face.v[0].u, face.v[0].v);
glVertex3f(face.v[0].p.x(), face.v[0].p.y(), face.v[0].p.z());
glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[1].u, face.v[1].v);
glVertex3f(face.v[1].p.x(), face.v[1].p.y(), face.v[1].p.z());
glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[1].u, face.v[1].v);
glVertex3f(face.v[1].p.x(), face.v[1].p.y(), face.v[1].p.z());
glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[2].u, face.v[2].v);
glVertex3f(face.v[2].p.x(), face.v[2].p.y(), face.v[2].p.z());
glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[2].u, face.v[2].v);
glVertex3f(face.v[2].p.x(), face.v[2].p.y(), face.v[2].p.z());
if (face.vertexCount == 4) {
glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[3].u, face.v[3].v);
glVertex3f(face.v[3].p.x(), face.v[3].p.y(), face.v[3].p.z());
}
if (face.vertexCount == 4) {
glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[3].u, face.v[3].v);
glVertex3f(face.v[3].p.x(), face.v[3].p.y(), face.v[3].p.z());
}
if (fDoubleSided) {
if (face.vertexCount == 4) {
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[3].u, face.v[3].v);
glVertex3f(face.v[3].p.x(), face.v[3].p.y(), face.v[3].p.z());
}
if (fDoubleSided) {
if (face.vertexCount == 4) {
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[3].u, face.v[3].v);
glVertex3f(face.v[3].p.x(), face.v[3].p.y(), face.v[3].p.z());
}
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[2].u, face.v[2].v);
glVertex3f(face.v[2].p.x(), face.v[2].p.y(), face.v[2].p.z());
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[2].u, face.v[2].v);
glVertex3f(face.v[2].p.x(), face.v[2].p.y(), face.v[2].p.z());
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[1].u, face.v[1].v);
glVertex3f(face.v[1].p.x(), face.v[1].p.y(), face.v[1].p.z());
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[1].u, face.v[1].v);
glVertex3f(face.v[1].p.x(), face.v[1].p.y(), face.v[1].p.z());
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[0].u, face.v[0].v);
glVertex3f(face.v[0].p.x(), face.v[0].p.y(), face.v[0].p.z());
}
lastVertexCount = face.vertexCount;
glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[0].u, face.v[0].v);
glVertex3f(face.v[0].p.x(), face.v[0].p.y(), face.v[0].p.z());
}
lastVertexCount = face.vertexCount;
}
glEnd();
//printf("batchCount %d\n", batchCount);
if (fDrawNormals) {
glBegin(GL_LINES);
for(uint32 i = 0; i < fMeshReference->FaceCount(); i++) {
if (fDrawNormals) {
glBegin(GL_LINES);
for(uint32 i = 0; i < fMeshReference->FaceCount(); i++) {
const Face& face = fMeshReference->GetFace(i);

View File

@ -39,10 +39,6 @@ RenderView::RenderView(BRect frame)
RenderView::~RenderView()
{
_StopRenderThread();
if (fRenderThread >= 0)
wait_for_thread(fRenderThread, NULL);
_DeleteScene();
}
@ -62,10 +58,9 @@ RenderView::AttachedToWindow()
uint32
RenderView::_CreateRenderThread()
{
fRenderThread = spawn_thread(RenderView::_RenderThreadEntry,
"renderThread",
B_NORMAL_PRIORITY,
this);
fRenderThread = spawn_thread(RenderView::_RenderThreadEntry, "renderThread",
B_NORMAL_PRIORITY, this);
if (fRenderThread < 0)
return fRenderThread;
@ -79,6 +74,9 @@ RenderView::_StopRenderThread()
LockGL();
fStopRendering = true;
UnlockGL();
if (fRenderThread >= 0)
wait_for_thread(fRenderThread, NULL);
}
@ -178,10 +176,9 @@ RenderView::_CreateScene()
Quaternion(0, 0, 0, 1), 4.0f * timeSpacing);
fMeshInstances.push_back(instance);
mesh->ReleaseReference();
texture->ReleaseReference();
fMainCamera = new Camera(Vector3(0, 0, 0), Quaternion(0, 0, 0, 1), 50);
texture->ReleaseReference();
}
@ -200,7 +197,7 @@ void
RenderView::_UpdateViewport()
{
if (fNextRes != fRes && fNextRes.x >= 1.0 && fNextRes.y >= 1.0) {
glViewport(0, 0, (GLint)fNextRes.x + 1, (GLint)fNextRes.y + 1);
glViewport(0, 0, (GLint) fNextRes.x + 1, (GLint) fNextRes.y + 1);
fRes = fNextRes;
_UpdateCamera();
}
@ -227,10 +224,10 @@ RenderView::_Render()
_UpdateViewport();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glLoadIdentity();
bigtime_t time = system_time();
float deltaTime = 0.000001 * (float)(time - fLastFrameTime);
bigtime_t time = system_time();
float deltaTime = 0.000001 * (float)(time - fLastFrameTime);
fLastFrameTime = time;
MeshInstanceList::iterator it = fMeshInstances.begin();
@ -243,7 +240,7 @@ RenderView::_Render()
UnlockGL();
return false;
}
UnlockGL();
UnlockGL();
SwapBuffers(false); // true = vsync
return true;
}

View File

@ -32,3 +32,9 @@ Texture::Id()
{
return fId;
}
void
Texture::Update(float dt)
{
}

View File

@ -20,7 +20,7 @@ public:
GLuint Id();
virtual void Update(float dt) {};
virtual void Update(float dt);
protected:
GLuint fId;