diff --git a/Gemfile b/Gemfile index a0eb470..d03df08 100644 --- a/Gemfile +++ b/Gemfile @@ -4,4 +4,4 @@ gem "cyberarm_engine", git: "https://github.com/cyberarm/cyberarm_engine" group(:packaging) do gem "ocra" -end \ No newline at end of file +end diff --git a/Gemfile.lock b/Gemfile.lock index b034655..9ded38e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/cyberarm/cyberarm_engine - revision: e59771e4127f51e3c6b3aa239dd2a5f8d2a4b7fe + revision: 9a3caabc7e36f572ef458dc473edd2961dad8f40 specs: cyberarm_engine (0.12.1) gosu (~> 0.14.0) diff --git a/lib/states/game_states/loading_state.rb b/lib/states/game_states/loading_state.rb index c1db7b0..661e9e5 100644 --- a/lib/states/game_states/loading_state.rb +++ b/lib/states/game_states/loading_state.rb @@ -56,8 +56,7 @@ class IMICFPS ModelLoader.new(manifest: hash[:manifest], entity: @dummy_entity) when :shader if $debug.get(:use_shaders) - shader = Shader.new(name: hash[:name], vertex: "shaders/vertex/#{hash[:name]}.glsl", fragment: "shaders/fragment/#{hash[:name]}.glsl") - Shader.add(hash[:name], shader) if shader.compiled? + shader = Shader.new(name: hash[:name], includes_dir: "shaders/include", vertex: "shaders/vertex/#{hash[:name]}.glsl", fragment: "shaders/fragment/#{hash[:name]}.glsl") else warn "Skipping shader: #{hash[:name]}..." end diff --git a/lib/window.rb b/lib/window.rb index 3894871..9cd2ac0 100644 --- a/lib/window.rb +++ b/lib/window.rb @@ -4,7 +4,7 @@ class IMICFPS attr_reader :camera attr_reader :console, :delta_time - def initialize(window_width = 1280, window_height = 800, fullscreen = false) + def initialize(window_width = 1280, window_height = 720, fullscreen = false) fps_target = (ARGV.first.to_i != 0) ? ARGV.first.to_i : 60 if ARGV.join.include?("--native") super(width: Gosu.screen_width, height: Gosu.screen_height, fullscreen: true, resizable: true, update_interval: 1000.0/fps_target) diff --git a/shaders/fragment/default.glsl b/shaders/fragment/default.glsl index f04fc62..9c7d57f 100644 --- a/shaders/fragment/default.glsl +++ b/shaders/fragment/default.glsl @@ -1,20 +1,6 @@ # version 330 core -const int MAX_LIGHTS = 4; - -struct Light { - float end; - float type; - vec3 position; - - vec3 diffuse; - vec3 ambient; - vec3 specular; - - vec3 direction; - - float intensity; -}; +@include "light_struct" in vec3 outPosition; in vec3 outColor; @@ -93,4 +79,4 @@ void main() { vec3 result = calculateLighting() * outColor; gl_FragColor = vec4(result, 1.0); -} \ No newline at end of file +} diff --git a/shaders/include/light_struct.glsl b/shaders/include/light_struct.glsl new file mode 100644 index 0000000..736ff21 --- /dev/null +++ b/shaders/include/light_struct.glsl @@ -0,0 +1,15 @@ +const int MAX_LIGHTS = 4; + +struct Light { + float end; + float type; + vec3 position; + + vec3 diffuse; + vec3 ambient; + vec3 specular; + + vec3 direction; + + float intensity; +}; diff --git a/shaders/vertex/default.glsl b/shaders/vertex/default.glsl index 4acce1f..9a5f188 100644 --- a/shaders/vertex/default.glsl +++ b/shaders/vertex/default.glsl @@ -1,19 +1,6 @@ # version 330 core -const int MAX_LIGHTS = 4; -struct Light { - float end; - float type; - vec3 position; - - vec3 diffuse; - vec3 ambient; - vec3 specular; - - vec3 direction; - - float intensity; -}; +@include "light_struct" layout(location = 0) in vec3 inPosition; layout(location = 1) in vec3 inColor; @@ -59,4 +46,4 @@ void main() { outFragPos = vec3(model * vec4(inPosition, 1.0)); gl_Position = projection * view * model * vec4(inPosition, 1.0); -} \ No newline at end of file +}