Much more performant, new cylinder

This commit is contained in:
Vulpovile
2021-03-04 17:46:47 -08:00
parent 20c18c6f9b
commit fcfed4afcd
2 changed files with 34 additions and 9 deletions

View File

@@ -955,7 +955,7 @@ void Application::run() {
//renderDevice->setViewport(viewportRect); //renderDevice->setViewport(viewportRect);
//window()->setInputCaptureCount(1); //window()->setInputCaptureCount(1);
resizeWithParent(_hWndMain); resizeWithParent(_hWndMain);
glEnable(GL_CULL_FACE);
while (!quit) while (!quit)
{ {

View File

@@ -745,8 +745,7 @@ void PartInstance::render(RenderDevice* rd) {
makeFace(84,174,144); makeFace(84,174,144);
// Back Left Bottom Corner // Back Left Bottom Corner
makeFace(174,84,132);*/ makeFace(174,84,132);*/
/*float radius = renderSize.y + (renderSize.y * (1 - cos(pi() / 12)));
float radius = renderSize.y + (renderSize.y * (1 - cos(pi() / 12)));
Vector2 xy[13]; Vector2 xy[13];
for(int i = 0; i < 13; i++) for(int i = 0; i < 13; i++)
{ {
@@ -776,7 +775,7 @@ void PartInstance::render(RenderDevice* rd) {
Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y), Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y),
Vector3(-renderSize.x, xy[i].x, xy[i].y), Vector3(-renderSize.x, xy[i].x, xy[i].y),
Vector3(-renderSize.x, xy[0].x, xy[0].y)); Vector3(-renderSize.x, xy[0].x, xy[0].y));
} }*/
/*float facetRatio = renderSize.x / (pi() * 0.5F); /*float facetRatio = renderSize.x / (pi() * 0.5F);
addQuad( addQuad(
Vector3(renderSize.x, renderSize.y, renderSize.z-facetRatio), Vector3(renderSize.x, renderSize.y, renderSize.z-facetRatio),
@@ -800,7 +799,7 @@ void PartInstance::render(RenderDevice* rd) {
Vector3(-renderSize.x, renderSize.y-facetRatio, -renderSize.z), Vector3(-renderSize.x, renderSize.y-facetRatio, -renderSize.z),
Vector3(renderSize.x, renderSize.y-facetRatio, -renderSize.z));*/ Vector3(renderSize.x, renderSize.y-facetRatio, -renderSize.z));*/
addPlus(Vector3(-renderSize.x-0.01,0,0)); /*addPlus(Vector3(-renderSize.x-0.01,0,0));
addPlus2(Vector3(renderSize.x+0.01,0,0)); addPlus2(Vector3(renderSize.x+0.01,0,0));
for (unsigned short i=0;i<_vertices.size()/6;i++) { for (unsigned short i=0;i<_vertices.size()/6;i++) {
@@ -808,19 +807,45 @@ void PartInstance::render(RenderDevice* rd) {
} }
//std::reverse(_vertices.begin(), _vertices.end()); //std::reverse(_vertices.begin(), _vertices.end());
//std::reverse(_normals.begin(), _normals.end()); //std::reverse(_normals.begin(), _normals.end());
)*/
GLUquadric* q = gluNewQuadric();
addPlus(Vector3(-renderSize.x-0.01,0,0));
addPlus2(Vector3(renderSize.x+0.01,0,0));
for (unsigned short i=0;i<_vertices.size()/6;i++) {
_indices.push_back(i);
}
glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]);
glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]);
glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]);
glNewList(glList, GL_COMPILE);
glColor(this->color);
glPushMatrix();
glRotatef(90, 0, 1, 0);
glScalef(renderSize.x, renderSize.y, renderSize.z);
glTranslatef(0,0,1);
gluDisk(q, 0, 1, 12, 12);
glTranslatef(0,0,-2);
gluCylinder(q, 1, 1, 2, 12, 1);
glRotatef(180, 1, 0, 0);
gluDisk(q, 0, 1, 12, 12);
glPopMatrix();
glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]);
glEndList();
rd->setObjectToWorldMatrix(cFrame);
glCallList(glList);
changed = false;
return;
} }
break; break;
} }
changed=false; changed=false;
glNewList(glList, GL_COMPILE);
glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]); glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]);
glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]); glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]);
glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]); glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]);
glNewList(glList, GL_COMPILE);
//glPushMatrix(); //glPushMatrix();
//glTranslatef(2,7,0); //glTranslatef(2,7,0);
glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]); glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]);