Changeset 203

Show
Ignore:
Timestamp:
11/07/07 08:53:59 (1 year ago)
Author:
LeoD
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/jobs/defend/Main.d

    r201 r203  
    125125    while(!gamestateManager.exit) 
    126126    { 
    127         //profile!("main thread") 
    128         //({ 
     127        profile!("main thread") 
     128        ({ 
    129129            // Start frame timer 
    130130            frameBegin = getTickCount(); 
     
    140140            jobHub.update(); 
    141141 
    142             profile!("sleep") 
    143             ({ 
     142            //profile!("sleep") 
     143            //({ 
    144144                //sleep(1); 
    145145                //Thread.yield(); 
     
    151151                frameTime = getTickCount() - frameBegin; 
    152152                //while((frameTime = getTickCount() - frameBegin) < 10) sleep(1); 
    153             }); 
    154         //}); 
     153            //}); 
     154        }); 
    155155    } 
    156156 
  • branches/jobs/defend/game/Game.d

    r201 r203  
    22 
    33import tango.core.Memory; 
     4import tango.core.Thread; 
    45import tango.io.Stdout; 
    56import tango.io.FilePath; 
     
    198199    { 
    199200        // Create the texture that is rendered to 
    200         auto tempTex = renderer.createTexture(Vec2ui(256, 256)); 
     201        auto tempTex = renderer.createTexture(Vec2ui(128, 128)); 
    201202 
    202203        // 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); 
    207208 
    208209        // Create a sprite for rendering the texture 
     
    400401        jobSystem.startFrame(); 
    401402         
    402         while(!doRender) 
    403             sleep(1); 
     403        profile!("wait for render") 
     404        ({ 
     405            while(!doRender) 
     406                Thread.yield(); 
     407        }); 
    404408         
    405409        inputManager.update(); 
     
    432436                hud.render(); 
    433437 
     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 
    434449                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)); 
    436451                     
    437452                mouse.render(); 
  • branches/jobs/defend/game/Mouse.d

    r201 r203  
    6666        auto modelview = camera.modelview().convert!(double); 
    6767        auto projection = camera.projection().convert!(double); 
    68          
    69         //glGetIntegerv(GL_VIEWPORT, viewport.ptr); 
     68 
    7069        viewport[2] = renderer.width; 
    7170        viewport[3] = renderer.height; 
     
    8584        auto projection = camera.projection().convert!(double); 
    8685 
    87         //glGetIntegerv(GL_VIEWPORT, viewport.ptr); 
    8886        viewport[2] = renderer.width; 
    8987        viewport[3] = renderer.height; 
     
    441439                continue; 
    442440             
    443             if(obj.screenPos.x < 0 || obj.screenPos.y < 0 || 
    444                obj.screenPos.x > renderer.width || obj.screenPos.y > renderer.height) 
    445                continue; 
    446              
    447441            const int BAR_WIDTH = 28; 
    448442            const int BAR_HEIGHT = 5; 
    449443            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; 
    450448             
    451449            auto start = obj.screenPos; 
  • branches/jobs/defend/objects/Base.d

    r190 r203  
    55import Integer = tango.text.convert.Integer; 
    66 
     7import gen.scene.Node; 
    78import gen.util.Signal; 
    89import gen.list.Queue; 
     
    221222        return true; 
    222223    } 
     224     
     225    SceneNode sceneNode() 
     226    { 
     227        assert(false); 
     228    } 
    223229 
    224230    // Called when the object has been created 
  • branches/jobs/defend/objects/Common.d

    r190 r203  
    33import gen.math.Ray; 
    44import gen.math.Vector; 
     5import gen.scene.Node; 
    56 
    67import defend.com.Types; 
     
    3031    bool dead(); 
    3132    bool visible(); 
     33    SceneNode sceneNode(); 
    3234} 
    3335 
  • branches/jobs/defend/objects/types/Building.d

    r194 r203  
    88import gen.util.Allocator; 
    99import gen.util.Swap; 
     10import gen.scene.Node; 
    1011import gen.scene.Graph; 
    1112import gen.scene.ModelNode; 
     
    437438     
    438439protected: 
    439     ModelNode sceneNode; 
     440    ModelNode _sceneNode; 
    440441    BuildingTypeInfo buildingInfo; 
    441442    MapPos buildTarget; // Where built units move to 
     
    505506        if(manager.renderObjects) 
    506507        { 
    507             sceneNode = ModelNode.allocate(); 
    508             sceneNode.model = buildingInfo.model; 
     508            _sceneNode = ModelNode.allocate(); 
     509            _sceneNode.model = buildingInfo.model; 
    509510             
    510511            sceneGraph.addNode(sceneNode); 
     
    524525        { 
    525526            sceneNode.remove(); 
    526             sceneNode.free(); 
     527            _sceneNode.free(); 
    527528        } 
    528529             
     
    592593    override bool intersectRay(Ray!(float) ray) 
    593594    { 
    594         if(ray.intersectBoundingBox(sceneNode.boundingBox)) 
     595        if(ray.intersectBoundingBox(_sceneNode.boundingBox)) 
    595596            return true; 
    596597             
     
    602603        return sceneNode.visible; 
    603604    } 
     605     
     606    override SceneNode sceneNode() 
     607    { 
     608        return _sceneNode; 
     609    } 
    604610} 
  • branches/jobs/defend/objects/types/Unit.d

    r202 r203  
    55import Integer = tango.text.convert.Integer; 
    66 
     7import gen.model.Model; 
     8import gen.list.Pool; 
    79import gen.util.Signal; 
    810import gen.util.Array; 
     
    1113import gen.math.Vector; 
    1214import gen.math.Ray; 
     15import gen.scene.Node; 
    1316import gen.scene.Graph; 
    1417import gen.scene.ModelNode; 
    15 import gen.model.Model; 
    16 import gen.list.Pool; 
    1718 
    1819import defend.Map; 
     
    308309     
    309310    // Rendering 
    310     ModelNode sceneNode; 
     311    ModelNode _sceneNode; 
    311312     
    312313    // Movement 
     
    462463        if(manager.renderObjects) 
    463464        { 
    464             sceneNode = ModelNode.allocate(); 
    465             sceneNode.model = unitInfo.model; 
     465            _sceneNode = ModelNode.allocate(); 
     466            _sceneNode.model = unitInfo.model; 
    466467            sceneGraph.addNode(sceneNode); 
    467468             
     
    483484        { 
    484485            sceneNode.remove(); 
    485             sceneNode.free(); 
     486            _sceneNode.free(); 
    486487        } 
    487488         
     
    555556    override bool intersectRay(Ray!(float) ray) 
    556557    { 
    557         if(ray.intersectBoundingBox(sceneNode.boundingBox)) 
     558        if(ray.intersectBoundingBox(_sceneNode.boundingBox)) 
    558559            return true; 
    559560             
     
    565566        return sceneNode.visible; 
    566567    } 
     568     
     569    override SceneNode sceneNode() 
     570    { 
     571        return _sceneNode; 
     572    } 
    567573} 
  • branches/jobs/gen/core/JobSystem.d

    r202 r203  
    246246        jobQueue = new typeof(jobQueue)(2048); 
    247247     
    248         uint numThreads = 1
     248        uint numThreads = 0
    249249         
    250250        for(uint i = 0; i < numThreads; i++) 
  • branches/jobs/gen/scene/Graph.d

    r193 r203  
    240240            profile!("skyboxes") 
    241241            ({ 
    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                } 
    251254            }); 
    252255             
  • branches/jobs/gen/scene/StaticCamera.d

    r140 r203  
    6868    { 
    6969        _position = p; 
     70        updateModelview(); 
    7071    } 
    7172     
     
    7374    { 
    7475        _rotation = r; 
     76        updateModelview(); 
    7577    } 
    7678     
  • branches/jobs/gen/util/ProfilingDisplay.d

    r201 r203  
    6464                 
    6565                if(data.parent == -1) 
    66                 { 
    6766                    totalTime += data.time; 
    68                     continue; 
    69                 } 
    7067            } 
    7168