Changeset 203
- Timestamp:
- 11/07/07 08:53:59 (1 year ago)
- Files:
-
- branches/jobs/defend/Main.d (modified) (3 diffs)
- branches/jobs/defend/game/Game.d (modified) (4 diffs)
- branches/jobs/defend/game/Mouse.d (modified) (3 diffs)
- branches/jobs/defend/objects/Base.d (modified) (2 diffs)
- branches/jobs/defend/objects/Common.d (modified) (2 diffs)
- branches/jobs/defend/objects/types/Building.d (modified) (6 diffs)
- branches/jobs/defend/objects/types/Unit.d (modified) (7 diffs)
- branches/jobs/gen/core/JobSystem.d (modified) (1 diff)
- branches/jobs/gen/scene/Graph.d (modified) (1 diff)
- branches/jobs/gen/scene/StaticCamera.d (modified) (2 diffs)
- branches/jobs/gen/util/ProfilingDisplay.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/jobs/defend/Main.d
r201 r203 125 125 while(!gamestateManager.exit) 126 126 { 127 //profile!("main thread")128 //({127 profile!("main thread") 128 ({ 129 129 // Start frame timer 130 130 frameBegin = getTickCount(); … … 140 140 jobHub.update(); 141 141 142 profile!("sleep")143 ({142 //profile!("sleep") 143 //({ 144 144 //sleep(1); 145 145 //Thread.yield(); … … 151 151 frameTime = getTickCount() - frameBegin; 152 152 //while((frameTime = getTickCount() - frameBegin) < 10) sleep(1); 153 });154 //});153 //}); 154 }); 155 155 } 156 156 branches/jobs/defend/game/Game.d
r201 r203 2 2 3 3 import tango.core.Memory; 4 import tango.core.Thread; 4 5 import tango.io.Stdout; 5 6 import tango.io.FilePath; … … 198 199 { 199 200 // Create the texture that is rendered to 200 auto tempTex = renderer.createTexture(Vec2ui( 256, 256));201 auto tempTex = renderer.createTexture(Vec2ui(128, 128)); 201 202 202 203 // A static camera 203 miniScreenCamera = new StaticCamera(Vec3f( 64.0, 50.0, 50), Vec3f(0, 0.0, 0.0),204 Mat4f.projection(1 .0, 45.0, 1.0, 500.0));205 206 sceneGraph.addCamera("mini", miniScreenCamera, Vec3f(0 , 0, 1.0), tempTex);204 miniScreenCamera = new StaticCamera(Vec3f(0, 20, 0), Vec3f(0), 205 Mat4f.projection(1, Integer.toInt(Config["fov"]), 1, 100)); 206 207 sceneGraph.addCamera("mini", miniScreenCamera, Vec3f(0), tempTex); 207 208 208 209 // Create a sprite for rendering the texture … … 400 401 jobSystem.startFrame(); 401 402 402 while(!doRender) 403 sleep(1); 403 profile!("wait for render") 404 ({ 405 while(!doRender) 406 Thread.yield(); 407 }); 404 408 405 409 inputManager.update(); … … 432 436 hud.render(); 433 437 438 auto selection = mouse.selection; 439 if(selection.length) 440 { 441 auto pos = mouse.selection[0].sceneNode.absolutePosition; 442 pos.y += 6; 443 pos.z += 4; 444 445 miniScreenCamera.position = pos; //* -1; 446 miniScreenCamera.rotation = Vec3f(-0.9, 0.0, 0); 447 } 448 434 449 if(miniScreenActivated) 435 miniScreenSprite.render(Vec2ui(renderer.width - miniScreenSprite.rect.width ,0));450 miniScreenSprite.render(Vec2ui(renderer.width - miniScreenSprite.rect.width - 50, renderer.height - HUD_HEIGHT + 20)); 436 451 437 452 mouse.render(); branches/jobs/defend/game/Mouse.d
r201 r203 66 66 auto modelview = camera.modelview().convert!(double); 67 67 auto projection = camera.projection().convert!(double); 68 69 //glGetIntegerv(GL_VIEWPORT, viewport.ptr); 68 70 69 viewport[2] = renderer.width; 71 70 viewport[3] = renderer.height; … … 85 84 auto projection = camera.projection().convert!(double); 86 85 87 //glGetIntegerv(GL_VIEWPORT, viewport.ptr);88 86 viewport[2] = renderer.width; 89 87 viewport[3] = renderer.height; … … 441 439 continue; 442 440 443 if(obj.screenPos.x < 0 || obj.screenPos.y < 0 ||444 obj.screenPos.x > renderer.width || obj.screenPos.y > renderer.height)445 continue;446 447 441 const int BAR_WIDTH = 28; 448 442 const int BAR_HEIGHT = 5; 449 443 const int BORDER_SIZE = 1; 444 445 if(obj.screenPos.x < 0 || obj.screenPos.y < 0 || 446 obj.screenPos.x > renderer.width || obj.screenPos.y - BAR_HEIGHT > renderer.height - HUD_HEIGHT) 447 continue; 450 448 451 449 auto start = obj.screenPos; branches/jobs/defend/objects/Base.d
r190 r203 5 5 import Integer = tango.text.convert.Integer; 6 6 7 import gen.scene.Node; 7 8 import gen.util.Signal; 8 9 import gen.list.Queue; … … 221 222 return true; 222 223 } 224 225 SceneNode sceneNode() 226 { 227 assert(false); 228 } 223 229 224 230 // Called when the object has been created branches/jobs/defend/objects/Common.d
r190 r203 3 3 import gen.math.Ray; 4 4 import gen.math.Vector; 5 import gen.scene.Node; 5 6 6 7 import defend.com.Types; … … 30 31 bool dead(); 31 32 bool visible(); 33 SceneNode sceneNode(); 32 34 } 33 35 branches/jobs/defend/objects/types/Building.d
r194 r203 8 8 import gen.util.Allocator; 9 9 import gen.util.Swap; 10 import gen.scene.Node; 10 11 import gen.scene.Graph; 11 12 import gen.scene.ModelNode; … … 437 438 438 439 protected: 439 ModelNode sceneNode;440 ModelNode _sceneNode; 440 441 BuildingTypeInfo buildingInfo; 441 442 MapPos buildTarget; // Where built units move to … … 505 506 if(manager.renderObjects) 506 507 { 507 sceneNode = ModelNode.allocate();508 sceneNode.model = buildingInfo.model;508 _sceneNode = ModelNode.allocate(); 509 _sceneNode.model = buildingInfo.model; 509 510 510 511 sceneGraph.addNode(sceneNode); … … 524 525 { 525 526 sceneNode.remove(); 526 sceneNode.free();527 _sceneNode.free(); 527 528 } 528 529 … … 592 593 override bool intersectRay(Ray!(float) ray) 593 594 { 594 if(ray.intersectBoundingBox( sceneNode.boundingBox))595 if(ray.intersectBoundingBox(_sceneNode.boundingBox)) 595 596 return true; 596 597 … … 602 603 return sceneNode.visible; 603 604 } 605 606 override SceneNode sceneNode() 607 { 608 return _sceneNode; 609 } 604 610 } branches/jobs/defend/objects/types/Unit.d
r202 r203 5 5 import Integer = tango.text.convert.Integer; 6 6 7 import gen.model.Model; 8 import gen.list.Pool; 7 9 import gen.util.Signal; 8 10 import gen.util.Array; … … 11 13 import gen.math.Vector; 12 14 import gen.math.Ray; 15 import gen.scene.Node; 13 16 import gen.scene.Graph; 14 17 import gen.scene.ModelNode; 15 import gen.model.Model;16 import gen.list.Pool;17 18 18 19 import defend.Map; … … 308 309 309 310 // Rendering 310 ModelNode sceneNode;311 ModelNode _sceneNode; 311 312 312 313 // Movement … … 462 463 if(manager.renderObjects) 463 464 { 464 sceneNode = ModelNode.allocate();465 sceneNode.model = unitInfo.model;465 _sceneNode = ModelNode.allocate(); 466 _sceneNode.model = unitInfo.model; 466 467 sceneGraph.addNode(sceneNode); 467 468 … … 483 484 { 484 485 sceneNode.remove(); 485 sceneNode.free();486 _sceneNode.free(); 486 487 } 487 488 … … 555 556 override bool intersectRay(Ray!(float) ray) 556 557 { 557 if(ray.intersectBoundingBox( sceneNode.boundingBox))558 if(ray.intersectBoundingBox(_sceneNode.boundingBox)) 558 559 return true; 559 560 … … 565 566 return sceneNode.visible; 566 567 } 568 569 override SceneNode sceneNode() 570 { 571 return _sceneNode; 572 } 567 573 } branches/jobs/gen/core/JobSystem.d
r202 r203 246 246 jobQueue = new typeof(jobQueue)(2048); 247 247 248 uint numThreads = 1;248 uint numThreads = 0; 249 249 250 250 for(uint i = 0; i < numThreads; i++) branches/jobs/gen/scene/Graph.d
r193 r203 240 240 profile!("skyboxes") 241 241 ({ 242 renderPass = RenderPass.Skybox; 243 renderer.setRenderState(RenderState.ZWrite, false); 244 renderer.translate(camera.position()); 245 246 foreach(object; renderPasses[renderPass]) 247 object.node.render(); 248 249 renderer.setRenderState(RenderState.ZWrite, true); 250 renderer.setRenderState(RenderState.DepthTest, true); 242 if(renderPasses[RenderPass.Skybox].length) 243 { 244 renderPass = RenderPass.Skybox; 245 renderer.setRenderState(RenderState.ZWrite, false); 246 renderer.translate(camera.position()); 247 248 foreach(object; renderPasses[renderPass]) 249 object.node.render(); 250 251 renderer.setRenderState(RenderState.ZWrite, true); 252 renderer.setRenderState(RenderState.DepthTest, true); 253 } 251 254 }); 252 255 branches/jobs/gen/scene/StaticCamera.d
r140 r203 68 68 { 69 69 _position = p; 70 updateModelview(); 70 71 } 71 72 … … 73 74 { 74 75 _rotation = r; 76 updateModelview(); 75 77 } 76 78 branches/jobs/gen/util/ProfilingDisplay.d
r201 r203 64 64 65 65 if(data.parent == -1) 66 {67 66 totalTime += data.time; 68 continue;69 }70 67 } 71 68
