* 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
+1 -1
View File
@@ -29,7 +29,7 @@ struct Face {
class Mesh : public Referenceable { class Mesh : public Referenceable {
public: public:
virtual ~Mesh(); virtual ~Mesh();
virtual Face& GetFace(uint32 index) const = 0; virtual Face& GetFace(uint32 index) const = 0;
virtual uint32 FaceCount() const = 0; virtual uint32 FaceCount() const = 0;
+33 -33
View File
@@ -105,50 +105,50 @@ MeshInstance::Render()
// draw face // draw face
glNormal3f(normal.x(), normal.y(), normal.z()); glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[0].u, face.v[0].v); 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()); glVertex3f(face.v[0].p.x(), face.v[0].p.y(), face.v[0].p.z());
glNormal3f(normal.x(), normal.y(), normal.z()); glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[1].u, face.v[1].v); 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()); glVertex3f(face.v[1].p.x(), face.v[1].p.y(), face.v[1].p.z());
glNormal3f(normal.x(), normal.y(), normal.z()); glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[2].u, face.v[2].v); 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()); glVertex3f(face.v[2].p.x(), face.v[2].p.y(), face.v[2].p.z());
if (face.vertexCount == 4) { if (face.vertexCount == 4) {
glNormal3f(normal.x(), normal.y(), normal.z()); glNormal3f(normal.x(), normal.y(), normal.z());
glTexCoord2f(face.v[3].u, face.v[3].v); 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()); glVertex3f(face.v[3].p.x(), face.v[3].p.y(), face.v[3].p.z());
} }
if (fDoubleSided) { if (fDoubleSided) {
if (face.vertexCount == 4) { if (face.vertexCount == 4) {
glNormal3f(-normal.x(), -normal.y(), -normal.z()); glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[3].u, face.v[3].v); 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()); glVertex3f(face.v[3].p.x(), face.v[3].p.y(), face.v[3].p.z());
} }
glNormal3f(-normal.x(), -normal.y(), -normal.z()); glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[2].u, face.v[2].v); 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()); glVertex3f(face.v[2].p.x(), face.v[2].p.y(), face.v[2].p.z());
glNormal3f(-normal.x(), -normal.y(), -normal.z()); glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[1].u, face.v[1].v); 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()); glVertex3f(face.v[1].p.x(), face.v[1].p.y(), face.v[1].p.z());
glNormal3f(-normal.x(), -normal.y(), -normal.z()); glNormal3f(-normal.x(), -normal.y(), -normal.z());
glTexCoord2f(face.v[0].u, face.v[0].v); 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()); glVertex3f(face.v[0].p.x(), face.v[0].p.y(), face.v[0].p.z());
} }
lastVertexCount = face.vertexCount; lastVertexCount = face.vertexCount;
} }
glEnd(); glEnd();
//printf("batchCount %d\n", batchCount); //printf("batchCount %d\n", batchCount);
if (fDrawNormals) { if (fDrawNormals) {
glBegin(GL_LINES); glBegin(GL_LINES);
for(uint32 i = 0; i < fMeshReference->FaceCount(); i++) { for(uint32 i = 0; i < fMeshReference->FaceCount(); i++) {
const Face& face = fMeshReference->GetFace(i); const Face& face = fMeshReference->GetFace(i);
+12 -15
View File
@@ -39,10 +39,6 @@ RenderView::RenderView(BRect frame)
RenderView::~RenderView() RenderView::~RenderView()
{ {
_StopRenderThread(); _StopRenderThread();
if (fRenderThread >= 0)
wait_for_thread(fRenderThread, NULL);
_DeleteScene(); _DeleteScene();
} }
@@ -62,10 +58,9 @@ RenderView::AttachedToWindow()
uint32 uint32
RenderView::_CreateRenderThread() RenderView::_CreateRenderThread()
{ {
fRenderThread = spawn_thread(RenderView::_RenderThreadEntry, fRenderThread = spawn_thread(RenderView::_RenderThreadEntry, "renderThread",
"renderThread", B_NORMAL_PRIORITY, this);
B_NORMAL_PRIORITY,
this);
if (fRenderThread < 0) if (fRenderThread < 0)
return fRenderThread; return fRenderThread;
@@ -79,6 +74,9 @@ RenderView::_StopRenderThread()
LockGL(); LockGL();
fStopRendering = true; fStopRendering = true;
UnlockGL(); UnlockGL();
if (fRenderThread >= 0)
wait_for_thread(fRenderThread, NULL);
} }
@@ -178,10 +176,9 @@ RenderView::_CreateScene()
Quaternion(0, 0, 0, 1), 4.0f * timeSpacing); Quaternion(0, 0, 0, 1), 4.0f * timeSpacing);
fMeshInstances.push_back(instance); fMeshInstances.push_back(instance);
mesh->ReleaseReference(); mesh->ReleaseReference();
texture->ReleaseReference();
fMainCamera = new Camera(Vector3(0, 0, 0), Quaternion(0, 0, 0, 1), 50); fMainCamera = new Camera(Vector3(0, 0, 0), Quaternion(0, 0, 0, 1), 50);
texture->ReleaseReference();
} }
@@ -200,7 +197,7 @@ void
RenderView::_UpdateViewport() RenderView::_UpdateViewport()
{ {
if (fNextRes != fRes && fNextRes.x >= 1.0 && fNextRes.y >= 1.0) { 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; fRes = fNextRes;
_UpdateCamera(); _UpdateCamera();
} }
@@ -227,10 +224,10 @@ RenderView::_Render()
_UpdateViewport(); _UpdateViewport();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity(); glLoadIdentity();
bigtime_t time = system_time(); bigtime_t time = system_time();
float deltaTime = 0.000001 * (float)(time - fLastFrameTime); float deltaTime = 0.000001 * (float)(time - fLastFrameTime);
fLastFrameTime = time; fLastFrameTime = time;
MeshInstanceList::iterator it = fMeshInstances.begin(); MeshInstanceList::iterator it = fMeshInstances.begin();
@@ -243,7 +240,7 @@ RenderView::_Render()
UnlockGL(); UnlockGL();
return false; return false;
} }
UnlockGL(); UnlockGL();
SwapBuffers(false); // true = vsync SwapBuffers(false); // true = vsync
return true; return true;
} }
+6
View File
@@ -32,3 +32,9 @@ Texture::Id()
{ {
return fId; return fId;
} }
void
Texture::Update(float dt)
{
}
+1 -1
View File
@@ -20,7 +20,7 @@ public:
GLuint Id(); GLuint Id();
virtual void Update(float dt) {}; virtual void Update(float dt);
protected: protected:
GLuint fId; GLuint fId;