mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 18:23:54 +02:00
more render util cleanup
This commit is contained in:
parent
e9ea6b20ce
commit
4ac673fe63
16 changed files with 38 additions and 34 deletions
|
@ -3083,7 +3083,7 @@ void Application::displaySide(Camera& whichCamera, bool selfAvatarOnly, RenderAr
|
|||
// draw a red sphere
|
||||
float originSphereRadius = 0.05f;
|
||||
glColor3f(1,0,0);
|
||||
_geometryCache.renderSphere(originSphereRadius, 15, 15);
|
||||
GeometryCache::getInstance()->renderSphere(originSphereRadius, 15, 15);
|
||||
|
||||
// Draw voxels
|
||||
if (Menu::getInstance()->isOptionChecked(MenuOption::Voxels)) {
|
||||
|
@ -3304,12 +3304,12 @@ void Application::renderRearViewMirror(const QRect& region, bool billboard) {
|
|||
|
||||
// set the bounds of rear mirror view
|
||||
if (billboard) {
|
||||
QSize size = getTextureCache()->getFrameBufferSize();
|
||||
QSize size = TextureCache::getInstance()->getFrameBufferSize();
|
||||
glViewport(region.x(), size.height() - region.y() - region.height(), region.width(), region.height());
|
||||
glScissor(region.x(), size.height() - region.y() - region.height(), region.width(), region.height());
|
||||
} else {
|
||||
// if not rendering the billboard, the region is in device independent coordinates; must convert to device
|
||||
QSize size = getTextureCache()->getFrameBufferSize();
|
||||
QSize size = TextureCache::getInstance()->getFrameBufferSize();
|
||||
float ratio = QApplication::desktop()->windowHandle()->devicePixelRatio() * getRenderResolutionScale();
|
||||
int x = region.x() * ratio, y = region.y() * ratio, width = region.width() * ratio, height = region.height() * ratio;
|
||||
glViewport(x, size.height() - y - height, width, height);
|
||||
|
|
|
@ -252,9 +252,7 @@ public:
|
|||
|
||||
ToolWindow* getToolWindow() { return _toolWindow ; }
|
||||
|
||||
GeometryCache* getGeometryCache() { return &_geometryCache; }
|
||||
AnimationCache* getAnimationCache() { return &_animationCache; }
|
||||
TextureCache* getTextureCache() { return _textureCache; }
|
||||
DeferredLightingEffect* getDeferredLightingEffect() { return &_deferredLightingEffect; }
|
||||
GlowEffect* getGlowEffect() { return &_glowEffect; }
|
||||
ControllerScriptingInterface* getControllerScriptingInterface() { return &_controllerScriptingInterface; }
|
||||
|
@ -572,7 +570,6 @@ private:
|
|||
QSet<int> _keysPressed;
|
||||
|
||||
|
||||
GeometryCache _geometryCache;
|
||||
AnimationCache _animationCache;
|
||||
TextureCache* _textureCache;
|
||||
|
||||
|
|
|
@ -261,7 +261,7 @@ void Environment::renderAtmosphere(Camera& camera, const EnvironmentData& data)
|
|||
|
||||
glDepthMask(GL_FALSE);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(1.0f, 100, 50); //Draw a unit sphere
|
||||
GeometryCache::getInstance()->renderSphere(1.0f, 100, 50); //Draw a unit sphere
|
||||
glDepthMask(GL_TRUE);
|
||||
|
||||
program->release();
|
||||
|
|
|
@ -471,7 +471,7 @@ void ModelUploader::processCheck() {
|
|||
QString("ModelUploader::processCheck()"),
|
||||
QString("Your model is now available in the browser."),
|
||||
QMessageBox::Ok);
|
||||
Application::getInstance()->getGeometryCache()->refresh(_url);
|
||||
GeometryCache::getInstance()->refresh(_url);
|
||||
foreach (const QByteArray& filename, _textureFilenames) {
|
||||
TextureCache::getInstance()->refresh(_textureBase + filename);
|
||||
}
|
||||
|
|
|
@ -71,22 +71,22 @@ void renderWorldBox() {
|
|||
glPushMatrix();
|
||||
glTranslatef(MARKER_DISTANCE, 0, 0);
|
||||
glColor3fv(red);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
GeometryCache::getInstance()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
glPopMatrix();
|
||||
glPushMatrix();
|
||||
glTranslatef(0, MARKER_DISTANCE, 0);
|
||||
glColor3fv(green);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
GeometryCache::getInstance()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
glPopMatrix();
|
||||
glPushMatrix();
|
||||
glTranslatef(0, 0, MARKER_DISTANCE);
|
||||
glColor3fv(blue);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
GeometryCache::getInstance()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
glPopMatrix();
|
||||
glPushMatrix();
|
||||
glColor3fv(gray);
|
||||
glTranslatef(MARKER_DISTANCE, 0, MARKER_DISTANCE);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
GeometryCache::getInstance()->renderSphere(MARKER_RADIUS, 10, 10);
|
||||
glPopMatrix();
|
||||
|
||||
}
|
||||
|
|
|
@ -394,7 +394,7 @@ void Avatar::render(const glm::vec3& cameraPosition, RenderMode renderMode, bool
|
|||
} else {
|
||||
glTranslatef(_position.x, getDisplayNamePosition().y + LOOK_AT_INDICATOR_OFFSET, _position.z);
|
||||
}
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(LOOK_AT_INDICATOR_RADIUS, 15, 15);
|
||||
GeometryCache::getInstance()->renderSphere(LOOK_AT_INDICATOR_RADIUS, 15, 15);
|
||||
glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
@ -422,7 +422,7 @@ void Avatar::render(const glm::vec3& cameraPosition, RenderMode renderMode, bool
|
|||
glPushMatrix();
|
||||
glTranslatef(_position.x, _position.y, _position.z);
|
||||
glScalef(height, height, height);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(sphereRadius, 15, 15);
|
||||
GeometryCache::getInstance()->renderSphere(sphereRadius, 15, 15);
|
||||
|
||||
glPopMatrix();
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ void Hand::render(bool isMine, Model::RenderMode renderMode) {
|
|||
glPushMatrix();
|
||||
glTranslatef(position.x, position.y, position.z);
|
||||
glColor3f(0.0f, 1.0f, 0.0f);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(PALM_COLLISION_RADIUS * _owningAvatar->getScale(), 10, 10);
|
||||
GeometryCache::getInstance()->renderSphere(PALM_COLLISION_RADIUS * _owningAvatar->getScale(), 10, 10);
|
||||
glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
@ -179,7 +179,7 @@ void Hand::renderHandTargets(bool isMine) {
|
|||
Avatar::renderJointConnectingCone(root, offsetFromPalm, PALM_DISK_RADIUS, 0.0f);
|
||||
glPushMatrix();
|
||||
glTranslatef(root.x, root.y, root.z);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(PALM_BALL_RADIUS, 20.0f, 20.0f);
|
||||
GeometryCache::getInstance()->renderSphere(PALM_BALL_RADIUS, 20.0f, 20.0f);
|
||||
glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -394,7 +394,7 @@ void MyAvatar::renderDebugBodyPoints() {
|
|||
glPushMatrix();
|
||||
glColor4f(0, 1, 0, .5f);
|
||||
glTranslatef(position.x, position.y, position.z);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(0.2f, 10.0f, 10.0f);
|
||||
GeometryCache::getInstance()->renderSphere(0.2f, 10.0f, 10.0f);
|
||||
glPopMatrix();
|
||||
|
||||
// Head Sphere
|
||||
|
@ -402,7 +402,7 @@ void MyAvatar::renderDebugBodyPoints() {
|
|||
glPushMatrix();
|
||||
glColor4f(0, 1, 0, .5f);
|
||||
glTranslatef(position.x, position.y, position.z);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(0.15f, 10.0f, 10.0f);
|
||||
GeometryCache::getInstance()->renderSphere(0.15f, 10.0f, 10.0f);
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
|
|
|
@ -561,9 +561,9 @@ void SkeletonModel::renderRagdoll() {
|
|||
glTranslatef(position.x, position.y, position.z);
|
||||
// draw each point as a yellow hexagon with black border
|
||||
glColor4f(0.0f, 0.0f, 0.0f, alpha);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(radius2, BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
GeometryCache::getInstance()->renderSphere(radius2, BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
glColor4f(1.0f, 1.0f, 0.0f, alpha);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(radius1, BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
GeometryCache::getInstance()->renderSphere(radius1, BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
glPopMatrix();
|
||||
}
|
||||
glPopMatrix();
|
||||
|
@ -913,7 +913,7 @@ void SkeletonModel::renderBoundingCollisionShapes(float alpha) {
|
|||
endPoint = endPoint - _translation;
|
||||
glTranslatef(endPoint.x, endPoint.y, endPoint.z);
|
||||
glColor4f(0.6f, 0.6f, 0.8f, alpha);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(_boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
GeometryCache::getInstance()->renderSphere(_boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
|
||||
// draw a yellow sphere at the capsule startpoint
|
||||
glm::vec3 startPoint;
|
||||
|
@ -922,7 +922,7 @@ void SkeletonModel::renderBoundingCollisionShapes(float alpha) {
|
|||
glm::vec3 axis = endPoint - startPoint;
|
||||
glTranslatef(-axis.x, -axis.y, -axis.z);
|
||||
glColor4f(0.8f, 0.8f, 0.6f, alpha);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(_boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
GeometryCache::getInstance()->renderSphere(_boundingShape.getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
|
||||
// draw a green cylinder between the two points
|
||||
glm::vec3 origin(0.0f);
|
||||
|
@ -955,7 +955,7 @@ void SkeletonModel::renderJointCollisionShapes(float alpha) {
|
|||
glTranslatef(position.x, position.y, position.z);
|
||||
// draw a grey sphere at shape position
|
||||
glColor4f(0.75f, 0.75f, 0.75f, alpha);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(shape->getBoundingRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
GeometryCache::getInstance()->renderSphere(shape->getBoundingRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
} else if (shape->getType() == CAPSULE_SHAPE) {
|
||||
CapsuleShape* capsule = static_cast<CapsuleShape*>(shape);
|
||||
|
||||
|
@ -965,7 +965,7 @@ void SkeletonModel::renderJointCollisionShapes(float alpha) {
|
|||
endPoint = endPoint - simulationTranslation;
|
||||
glTranslatef(endPoint.x, endPoint.y, endPoint.z);
|
||||
glColor4f(0.6f, 0.6f, 0.8f, alpha);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(capsule->getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
GeometryCache::getInstance()->renderSphere(capsule->getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
|
||||
// draw a yellow sphere at the capsule startpoint
|
||||
glm::vec3 startPoint;
|
||||
|
@ -974,7 +974,7 @@ void SkeletonModel::renderJointCollisionShapes(float alpha) {
|
|||
glm::vec3 axis = endPoint - startPoint;
|
||||
glTranslatef(-axis.x, -axis.y, -axis.z);
|
||||
glColor4f(0.8f, 0.8f, 0.6f, alpha);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(capsule->getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
GeometryCache::getInstance()->renderSphere(capsule->getRadius(), BALL_SUBDIVISIONS, BALL_SUBDIVISIONS);
|
||||
|
||||
// draw a green cylinder between the two points
|
||||
glm::vec3 origin(0.0f);
|
||||
|
|
|
@ -51,7 +51,7 @@ void DeferredLightingEffect::releaseSimpleProgram() {
|
|||
|
||||
void DeferredLightingEffect::renderSolidSphere(float radius, int slices, int stacks) {
|
||||
bindSimpleProgram();
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(radius, slices, stacks);
|
||||
GeometryCache::getInstance()->renderSphere(radius, slices, stacks);
|
||||
releaseSimpleProgram();
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ void DeferredLightingEffect::renderWireCube(float size) {
|
|||
|
||||
void DeferredLightingEffect::renderSolidCone(float base, float height, int slices, int stacks) {
|
||||
bindSimpleProgram();
|
||||
Application::getInstance()->getGeometryCache()->renderCone(base, height, slices, stacks);
|
||||
GeometryCache::getInstance()->renderCone(base, height, slices, stacks);
|
||||
releaseSimpleProgram();
|
||||
}
|
||||
|
||||
|
@ -270,7 +270,7 @@ void DeferredLightingEffect::render() {
|
|||
|
||||
} else {
|
||||
glTranslatef(light.position.x, light.position.y, light.position.z);
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(expandedRadius, 32, 32);
|
||||
GeometryCache::getInstance()->renderSphere(expandedRadius, 32, 32);
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
|
@ -323,7 +323,7 @@ void DeferredLightingEffect::render() {
|
|||
glm::vec3 axis = glm::axis(spotRotation);
|
||||
glRotatef(glm::degrees(glm::angle(spotRotation)), axis.x, axis.y, axis.z);
|
||||
glTranslatef(0.0f, 0.0f, -light.radius * (1.0f + SCALE_EXPANSION * 0.5f));
|
||||
Application::getInstance()->getGeometryCache()->renderCone(expandedRadius * glm::tan(light.cutoff),
|
||||
GeometryCache::getInstance()->renderCone(expandedRadius * glm::tan(light.cutoff),
|
||||
expandedRadius, 32, 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -997,7 +997,7 @@ void Model::setURL(const QUrl& url, const QUrl& fallback, bool retainCurrent, bo
|
|||
_url = url;
|
||||
|
||||
// if so instructed, keep the current geometry until the new one is loaded
|
||||
_nextBaseGeometry = _nextGeometry = Application::getInstance()->getGeometryCache()->getGeometry(url, fallback, delayLoad);
|
||||
_nextBaseGeometry = _nextGeometry = GeometryCache::getInstance()->getGeometry(url, fallback, delayLoad);
|
||||
_nextLODHysteresis = NetworkGeometry::NO_HYSTERESIS;
|
||||
if (!retainCurrent || !isActive() || _nextGeometry->isLoaded()) {
|
||||
applyNextGeometry();
|
||||
|
|
|
@ -353,7 +353,7 @@ void MetavoxelEditor::render() {
|
|||
|
||||
_gridProgram.bind();
|
||||
|
||||
Application::getInstance()->getGeometryCache()->renderGrid(GRID_DIVISIONS, GRID_DIVISIONS);
|
||||
GeometryCache::getInstance()->renderGrid(GRID_DIVISIONS, GRID_DIVISIONS);
|
||||
|
||||
_gridProgram.release();
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ void Grid3DOverlay::render(RenderArgs* args) {
|
|||
float scale = MINOR_GRID_DIVISIONS * spacing;
|
||||
glScalef(scale, scale, scale);
|
||||
|
||||
Application::getInstance()->getGeometryCache()->renderGrid(MINOR_GRID_DIVISIONS, MINOR_GRID_DIVISIONS);
|
||||
GeometryCache::getInstance()->renderGrid(MINOR_GRID_DIVISIONS, MINOR_GRID_DIVISIONS);
|
||||
}
|
||||
glPopMatrix();
|
||||
|
||||
|
@ -102,7 +102,7 @@ void Grid3DOverlay::render(RenderArgs* args) {
|
|||
float scale = MAJOR_GRID_DIVISIONS * spacing;
|
||||
glScalef(scale, scale, scale);
|
||||
|
||||
Application::getInstance()->getGeometryCache()->renderGrid(MAJOR_GRID_DIVISIONS, MAJOR_GRID_DIVISIONS);
|
||||
GeometryCache::getInstance()->renderGrid(MAJOR_GRID_DIVISIONS, MAJOR_GRID_DIVISIONS);
|
||||
}
|
||||
glPopMatrix();
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ void Sphere3DOverlay::render(RenderArgs* args) {
|
|||
glScalef(dimensions.x, dimensions.y, dimensions.z);
|
||||
//Application::getInstance()->getDeferredLightingEffect()->renderSolidCube(1.0f);
|
||||
if (_isSolid) {
|
||||
Application::getInstance()->getGeometryCache()->renderSphere(1.0f, SLICES, SLICES);
|
||||
GeometryCache::getInstance()->renderSphere(1.0f, SLICES, SLICES);
|
||||
} else {
|
||||
glutWireSphere(1.0f, SLICES, SLICES);
|
||||
}
|
||||
|
|
|
@ -21,6 +21,11 @@
|
|||
|
||||
#include "GeometryCache.h"
|
||||
|
||||
GeometryCache* GeometryCache::getInstance() {
|
||||
static GeometryCache instance;
|
||||
return &instance;
|
||||
}
|
||||
|
||||
GeometryCache::GeometryCache() {
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,8 @@ class GeometryCache : public ResourceCache {
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
static GeometryCache* getInstance();
|
||||
|
||||
GeometryCache();
|
||||
virtual ~GeometryCache();
|
||||
|
|
Loading…
Reference in a new issue