* 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:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,3 +32,9 @@ Texture::Id()
|
|||||||
{
|
{
|
||||||
return fId;
|
return fId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Texture::Update(float dt)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user