Changeset 547
- Timestamp:
- 05/20/08 07:52:47 (8 months ago)
- Files:
-
- trunk/run/data/shaders/modelglow-pixel.glsl (modified) (1 diff)
- trunk/run/data/shaders/modelglowpost-pixel.glsl (modified) (2 diffs)
- trunk/src/defend/Graphics.d (modified) (4 diffs)
- trunk/src/defend/Main.d (modified) (9 diffs)
- trunk/src/defend/demo/Demo.d (modified) (6 diffs)
- trunk/src/defend/demo/Player.d (modified) (1 diff)
- trunk/src/defend/game/Game.d (modified) (5 diffs)
- trunk/src/defend/objects/types/Citizen.d (modified) (1 diff)
- trunk/src/gen/util/GameState.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/run/data/shaders/modelglow-pixel.glsl
r544 r547 8 8 vec4 tex = texture2D(diffuseTexture, vec2(gl_TexCoord[0])); 9 9 10 gl_FragColor = vec4(color * 1 - (tex.a), 1);10 gl_FragColor = vec4(color * 1 - tex.a, 1); 11 11 } trunk/run/data/shaders/modelglowpost-pixel.glsl
r544 r547 6 6 vec4 a = texture2D(sampler1, vec2(gl_TexCoord[0])); 7 7 8 const float o = 0.014; 9 const float p = o * 2; 8 const float o = 0.013; 10 9 11 10 vec2 bc = vec2(gl_TexCoord[0]); … … 18 17 b += texture2D(sampler2, vec2(bc.x - o, bc.y - o)); 19 18 b += texture2D(sampler2, vec2(bc.x + o, bc.y - o)); 20 21 /*b += texture2D(sampler2, vec2(bc.x - p, bc.y));22 b += texture2D(sampler2, vec2(bc.x + p, bc.y));23 b += texture2D(sampler2, vec2(bc.x, bc.y + p));24 b += texture2D(sampler2, vec2(bc.x + p, bc.y + p));25 b += texture2D(sampler2, vec2(bc.x - p, bc.y + p));26 b += texture2D(sampler2, vec2(bc.x - p, bc.y - p));27 b += texture2D(sampler2, vec2(bc.x + p, bc.y - p));*/28 19 b /= 8; 29 20 trunk/src/defend/Graphics.d
r546 r547 3 3 import tango.io.Stdout; 4 4 5 import gen.core.TaskManager; 5 6 import gen.util.Sprite; 6 7 import gen.util.Profiler; … … 9 10 import gen.rend.Renderer; 10 11 import gen.rend.Shader; 12 import gen.rend.opengl.Wrapper; 11 13 import gen.scene.Graph; 12 14 import gen.scene.MeshNode; … … 84 86 renderer.config.aspect, 1, 300); 85 87 sceneGraph.addCamera("main", _mainCamera, vec3(0, 0, 0), mainBuffer); 88 89 // Set tasks 90 taskManager.addRepeatedTask(&particles.update, 20); 86 91 } 87 92 88 93 void render() 89 94 { 95 // tmp 96 if(defendConfig.graphics.lighting) 97 { 98 renderer.identity(); 99 renderer.setMatrix(mainCamera.modelview, MatrixType.Modelview); 100 renderer.setMatrix(mainCamera.projection, MatrixType.Projection); 101 vec4 lightPosition = vec4(10.0, 10.0, 0.0, 1); 102 glLightfv(GL_LIGHT0, GL_POSITION, lightPosition.ptr); 103 } 104 90 105 profile!("graph.render") 91 106 ({ … … 108 123 109 124 bufferSprite.render(vec2i(0, 0)); 110 111 renderer.setTexture(1, null);112 renderer.setShader(null);113 renderer.setTexture(0, null);114 125 115 126 if(defendConfig.graphics.objects_glow) 116 127 { 117 128 renderer.setTexture(1, null); 129 renderer.setShader(null); 130 renderer.setTexture(0, null); 118 131 } 119 132 } trunk/src/defend/Main.d
r544 r547 15 15 import gen.input.SDL : SDLInputWriter; 16 16 import gen.math.Vector : vec2i, vec3; 17 import gen.rend.Window : Window;18 17 import gen.rend.Renderer : RendererConfig, Shader, Renderer, renderer; 19 18 import gen.rend.opengl.Renderer : OGLRenderer; … … 23 22 import gen.util.FPS : FPSCounter; 24 23 import gen.util.Log : Log, Logger; 25 import gen.util.Profiler : profile;26 import gen.util.Wrapper : getTickCount;27 24 import gen.util.HardwareTimer : HardwareTimer; 28 25 import gen.util.Config : Config; … … 32 29 import defend.com.TerrainInfo : TerrainInfo; 33 30 import defend.game.Game : Game; 31 import defend.demo.Demo : Demo; 34 32 import defend.game.Config : GameMode, GameConfig, gameConfig; 35 33 import defend.player.Info : PlayerInfo; 36 import defend.demo.Demo : demoFile, Demo;37 34 import defend.objects.Import; 38 35 import defend.objects.Core; … … 217 214 { 218 215 case GameStateType.Demo: 219 //assert(false);220 221 216 logger.info("playing demo `{}'", demoFile); 222 217 … … 224 219 throw new ArgumentException("demo file `" ~ demoFile ~ "' does not exist"); 225 220 226 .demoFile = demoFile; 227 //Loop.setMainFunction!(demo); 228 gameState.change(new Demo); 221 gameState.change(new Demo(demoFile)); 229 222 230 223 break; … … 239 232 240 233 .gameConfig = gameConfig; 241 //Loop.setMainFunction!(game);242 234 gameState.change(new Game); 243 235 } … … 251 243 to!(char[])(defendConfig.graphics.shadowmapping.samples)); 252 244 } 245 246 if(defendConfig.graphics.lighting) 247 { 248 Shader.define("NORMAL_LIGHTING"); 249 } 253 250 254 251 if(defendConfig.graphics.objects_lightmap) … … 256 253 Shader.define("OBJECTS_LIGHTMAP"); 257 254 } 258 259 if(defendConfig.graphics. lighting)260 { 261 Shader.define(" NORMAL_LIGHTING");255 256 if(defendConfig.graphics.objects_glow) 257 { 258 Shader.define("OBJECTS_GLOW"); 262 259 } 263 260 … … 294 291 logger.info("starting main loop"); 295 292 296 //Loop();297 298 293 // Main loop 299 294 { trunk/src/defend/demo/Demo.d
r541 r547 15 15 16 16 import defend.Map; 17 import defend.Graphics; 17 18 import defend.MapGenerator; 18 19 import defend.Camera; … … 25 26 import defend.terrain.Heightmap; 26 27 27 // Parameters28 char[] demoFile;29 30 28 class Demo : GameState 31 29 { 30 char[] demoFile; 31 32 32 DemoPlayer demoPlayer; 33 33 Simulation simulation; 34 34 GameObjectManager gameObjects; 35 35 PlayerManager players; 36 MainCamera camera;36 Graphics graphics; 37 37 38 38 TerrainInfo terrainInfo; 39 40 this(char[] demoFile) 41 { 42 this.demoFile = demoFile; 43 } 39 44 40 45 void onTerrainInformation(TerrainInfo info) … … 51 56 renderer.begin(); 52 57 53 sceneGraph.render();58 graphics.render(); 54 59 55 60 renderer.end(); … … 59 64 void init() 60 65 { 66 graphics = new Graphics; 67 graphics.init(); 68 61 69 demoPlayer = new DemoPlayer(demoFile); 62 70 demoPlayer.TerrainInformation.connect(&onTerrainInformation); … … 66 74 67 75 gameObjects = new GameObjectManager(demoPlayer, players, simulation); 68 69 camera = new MainCamera;70 camera.projection = mat4.perspective(45.0, renderer.config.aspect, 1.0, 100.0);71 sceneGraph.addCamera("main", camera, vec3.zero);72 73 MeshNode.memoryPool.create(20);74 76 75 77 demoPlayer.init(); … … 90 92 delete map; 91 93 92 sceneGraph.reset(); 93 94 MeshNode.memoryPool.release(); 94 graphics.release(); 95 95 } 96 96 } trunk/src/defend/demo/Player.d
r541 r547 20 20 private: 21 21 FileConduit file; 22 float _speed = 20;22 float _speed = 1; 23 23 24 24 ubyte[] dataBuffer; trunk/src/defend/game/Game.d
r544 r547 9 9 import gen.core.TaskManager; 10 10 import gen.input.Input; 11 import gen.image.Image;12 import gen.math.BoundingBox;13 import gen.math.Frustum;14 import gen.math.Matrix;15 import gen.math.Plane;16 import gen.math.Random;17 import gen.math.Rectangle;18 import gen.math.Vector;19 import gen.model.Model;20 11 import gen.rend.Renderer; 21 import gen.rend.Shader;22 import gen.rend.opengl.Wrapper; // tmp23 import gen.util.Resource;24 12 import gen.scene.Graph; 25 import gen.scene.MeshNode;26 import gen.scene.Node;27 import gen.scene.ParticleSystem;28 import gen.scene.Skybox;29 13 import gen.scene.StaticCamera; 30 14 import gen.sound.SoundSystem; … … 32 16 import gen.util.Memory; 33 17 import gen.util.Profiler; 34 import gen.util.Sprite;35 import gen.util.Wrapper;36 import gen.util.FPS;37 18 import gen.util.GameState; 38 19 39 import defend.Camera;40 20 import defend.Map; 21 import defend.Simulation; 22 import defend.Config; 41 23 import defend.Graphics; 42 24 import defend.MapGenerator; 43 25 import defend.com.Gateway; 44 import defend.Config;45 26 import defend.demo.Recorder; 46 27 import defend.game.Config; … … 49 30 import defend.game.net.Server; 50 31 import defend.objects.Core; 51 import defend.player.Info;52 32 import defend.player.Manager; 53 import defend.Simulation;54 33 import defend.terrain.Heightmap; 55 34 import defend.terrain.Terrain; 56 import gen.scene.ModelNode;57 35 58 36 class Game : GameState … … 189 167 { 190 168 renderer.begin(); 191 192 // tmp193 if(defendConfig.graphics.lighting)194 {195 renderer.identity();196 renderer.setMatrix(graphics.mainCamera.modelview, MatrixType.Modelview);197 renderer.setMatrix(graphics.mainCamera.projection, MatrixType.Projection);198 vec4 lightPosition = vec4(10.0, 10.0, 0.0, 1);199 glLightfv(GL_LIGHT0, GL_POSITION, lightPosition.ptr);200 }201 169 202 170 // First the 3D objects … … 322 290 taskManager.addRepeatedTask(&hud.update, 30); 323 291 taskManager.addRepeatedTask(&renderer.window.update, 60); 324 taskManager.addRepeatedTask(&particles.update, 20);325 292 taskManager.addPostFrameTask(&render); 326 293 } trunk/src/defend/objects/types/Citizen.d
r541 r547 310 310 else 311 311 { 312 assert(isStandingNearby(building)); 313 314 //debug(citizen) trace("doing build step"); 315 316 building.oneBuildStep(); 317 318 if(building.status == Building.Status.Finished) 312 if(!isStandingNearby(building)) 319 313 { 314 // TODO: uhm, where's logger gone? D: 315 trace("trying to build while not staying nearby a building"); 320 316 status = Unit.Status.Idle; 321 stopFollow(); 317 } 318 else 319 { 320 //debug(citizen) trace("doing build step"); 321 322 building.oneBuildStep(); 323 324 if(building.status == Building.Status.Finished) 325 { 326 status = Unit.Status.Idle; 327 stopFollow(); 328 } 322 329 } 323 330 } trunk/src/gen/util/GameState.d
r541 r547 65 65 66 66 gameState.init(); 67 68 logger.info("gamestate initialized"); 67 69 } 68 70
