Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Johannes Braun
glare
Commits
ae3a6b71
Commit
ae3a6b71
authored
Jul 13, 2017
by
Johannes Braun
Browse files
Aaand again, further cleanup. Seems okay now.
parent
89eb2e9f
Changes
33
Hide whitespace changes
Inline
Side-by-side
add_class.bat
View file @
ae3a6b71
...
...
@@ -12,12 +12,21 @@ set fileNameUpperH=%className%.h
for
%%b
in
(
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
)
do
(
set
"fileNameUpperH=
!
fileNameUpperH:
%%b
=
%%b!
"
)
set
fileNameUpperH
=
_
_
%fileNameUpperH
:.
=
_
%
set
fileNameUpperH
=
INCLUDE
_
%fileNameUpperH
:.
=
_
%
if
not
exist
src
/
%path%
/
%fileNameH%
(
echo
#ifndef
%fileNameUpperH%
>>
src
/
%path%
/
%fileNameH%
echo
#define
%fileNameUpperH%
>>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
//
---------------
STDLIB
--------------->>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
//
---------------
EXTERN
--------------->>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
//
---------------
INTERN
--------------->>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
namespace
glare
>>
src
/
%path%
/
%fileNameH%
echo
{>>
src
/
%path%
/
%fileNameH%
echo
namespace
%subNamespace%
>>
src
/
%path%
/
%fileNameH%
...
...
@@ -25,6 +34,12 @@ if not exist src/%path%/%fileNameH% (
echo
class
%className%
>>
src
/
%path%
/
%fileNameH%
echo
{>>
src
/
%path%
/
%fileNameH%
echo
public
:>>
src
/
%path%
/
%fileNameH%
echo
%className%
^(^)^;
>>
src
/
%path%
/
%fileNameH%
echo
%className%
^(
%className%
^&
other
^)
^=
default
^;
>>
src
/
%path%
/
%fileNameH%
echo
%className%
^(
%className%
^&^&
other
^)
^=
default
^;
>>
src
/
%path%
/
%fileNameH%
echo
%className%
^&
operator
^=^(
%className%
^&
other
^)
^=
default
^;
>>
src
/
%path%
/
%fileNameH%
echo
%className%
^&
operator
^=^(
%className%
^&^&
other
^)
^=
default
^;
>>
src
/
%path%
/
%fileNameH%
echo
.>>
src
/
%path%
/
%fileNameH%
echo
};>>
src
/
%path%
/
%fileNameH%
echo
}>>
src
/
%path%
/
%fileNameH%
echo
}>>
src
/
%path%
/
%fileNameH%
...
...
@@ -32,15 +47,26 @@ if not exist src/%path%/%fileNameH% (
echo
#endif //
%fileNameUpperH%
>>
src
/
%path%
/
%fileNameH%
echo
#include
"
%fileNameH%
"
>>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
//
---------------
STDLIB
--------------->>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
//
---------------
EXTERN
--------------->>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
//
---------------
INTERN
--------------->>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
namespace
glare
>>
src
/
%path%
/
%fileNameCPP%
echo
{>>
src
/
%path%
/
%fileNameCPP%
echo
namespace
%subNamespace%
>>
src
/
%path%
/
%fileNameCPP%
echo
{>>
src
/
%path%
/
%fileNameCPP%
echo
.>>
src
/
%path%
/
%fileNameCPP%
echo
%className%
::
%className%
^(^)
>>
src
/
%path%
/
%fileNameCPP%
echo
{
>>
src
/
%path%
/
%fileNameCPP%
echo
}
>>
src
/
%path%
/
%fileNameCPP%
echo
}>>
src
/
%path%
/
%fileNameCPP%
echo
}>>
src
/
%path%
/
%fileNameCPP%
)
else
(
echo
File
%path%
/
%fileNameH%
already
exists
!
)
call
build
\ No newline at end of file
assets/preferences/splash_01.xml
View file @
ae3a6b71
...
...
@@ -7,5 +7,5 @@
<color
value=
"#0277BD"
/>
<!--<texture src="/textures/LS_Field.png" scale="100"/>-->
</item>
<item
name=
"duration"
value=
"
2
00"
/>
<item
name=
"duration"
value=
"
3
00"
/>
</splash>
\ No newline at end of file
assets/screenshots/render.png
deleted
100644 → 0
View file @
89eb2e9f
3.21 MB
include/glare_core
View file @
ae3a6b71
...
...
@@ -12,7 +12,6 @@
#include <engine/ComponentContainer.h>
//Core Animation
#include <engine/animation/Animation.h>
#include <engine/animation/AnimationManager.h>
//Core Graphics
...
...
src/libraries/advanced/tracer/RayGenerator.cpp
View file @
ae3a6b71
#include
"RayGenerator.h"
#include
"Raytracer.h"
#include
<engine/rendering/OpenGLState.h>
#include
<engine/rendering/OpenGLState.h>
#include
<util/files.h>
namespace
glare
{
...
...
@@ -27,7 +28,7 @@ namespace glare
RayGeneratorDefault
::
RayGeneratorDefault
()
{
m_generator_shader_default
=
core
::
ShaderProgram
::
makeUnique
(
core
::
shader
(
"/raytracer/generators/bvh/bvh_raygenerator.compute"
).
string
());
m_generator_shader_default
=
core
::
ShaderProgram
::
makeUnique
(
files
::
shader
(
"/raytracer/generators/bvh/bvh_raygenerator.compute"
).
string
());
}
void
RayGeneratorDefault
::
generate
(
Raytracer
&
raytracer
)
...
...
@@ -54,12 +55,12 @@ namespace glare
RayGeneratorGBuffer
::
RayGeneratorGBuffer
()
{
std
::
vector
<
std
::
shared_ptr
<
glare
::
core
::
Shader
>>
shaders
=
{
std
::
make_shared
<
glare
::
core
::
Shader
>
(
gl
::
ShaderType
::
eVertex
,
core
::
shader
(
"raytracer/generators/gbuffer/gbuffer.vert"
)),
std
::
make_shared
<
glare
::
core
::
Shader
>
(
gl
::
ShaderType
::
eGeometry
,
core
::
shader
(
"raytracer/generators/gbuffer/gbuffer.geom"
)),
std
::
make_shared
<
glare
::
core
::
Shader
>
(
gl
::
ShaderType
::
eFragment
,
core
::
shader
(
"raytracer/generators/gbuffer/gbuffer.frag"
))
std
::
make_shared
<
glare
::
core
::
Shader
>
(
gl
::
ShaderType
::
eVertex
,
files
::
shader
(
"raytracer/generators/gbuffer/gbuffer.vert"
)),
std
::
make_shared
<
glare
::
core
::
Shader
>
(
gl
::
ShaderType
::
eGeometry
,
files
::
shader
(
"raytracer/generators/gbuffer/gbuffer.geom"
)),
std
::
make_shared
<
glare
::
core
::
Shader
>
(
gl
::
ShaderType
::
eFragment
,
files
::
shader
(
"raytracer/generators/gbuffer/gbuffer.frag"
))
};
m_generator_shader_gbuffer
=
std
::
make_unique
<
core
::
ShaderProgram
>
(
shaders
);
m_buffer_depthtest
=
core
::
ShaderProgram
::
makeUnique
(
core
::
shader
(
"raytracer/generators/gbuffer/depthtest.compute"
).
string
());
m_buffer_depthtest
=
core
::
ShaderProgram
::
makeUnique
(
files
::
shader
(
"raytracer/generators/gbuffer/depthtest.compute"
).
string
());
m_vertex_array
=
std
::
make_unique
<
core
::
VertexArray
>
();
}
...
...
src/libraries/advanced/tracer/Raytracer.cpp
View file @
ae3a6b71
...
...
@@ -3,6 +3,7 @@
#include
<engine/Time.h>
#include
<random>
#include
<pugixml/pugixml.hpp>
#include
<util/files.h>
namespace
glare
{
...
...
@@ -42,7 +43,7 @@ namespace glare
m_linespace_config
.
distance_threshold
=
8.
f
;
m_render_config
.
bounces
=
16
;
m_render_shader
=
core
::
ShaderProgram
::
makeUnique
(
core
::
shader
(
"/raytracer/pathtracer.compute"
).
string
());
m_render_shader
=
core
::
ShaderProgram
::
makeUnique
(
files
::
shader
(
"/raytracer/pathtracer.compute"
).
string
());
m_ray_generator
=
ray_generator
;
m_trace_buffer
=
std
::
make_unique
<
core
::
Buffer
<
gl
::
BufferType
::
eShaderStorage
>>
();
core
::
MessageHandler
::
getInstance
().
registerReceiver
(
core
::
GlobalMessages
::
c_scene_changed
,
*
this
);
...
...
src/libraries/engine/Math.h
View file @
ae3a6b71
...
...
@@ -299,35 +299,6 @@ namespace glare
return
max
-
min
+
1
;
}
};
/**
* A SkewedSemiAligned is a kind of convex 6-sided polyhedra that has two opposite sides of equal size aligned to any two axises (those can be different for both sides)
* It is defined by 4 points and a size of the opposite sides.
*/
struct
SkewedSemiAligned
{
Range
<
Range
<
glm
::
vec4
>>
corners
;
glm
::
vec2
sizes
;
};
//template<size_t BaseSize> constexpr unsigned padding_size = (4 * sizeof(float) - sizeof(T)) & ((sizeof(float) << 2) - 1);
template
<
bool
P
,
typename
T
>
struct
Padded_If
{
T
base
;
};
template
<
typename
T
>
struct
Padded_If
<
true
,
T
>
{
T
base
;
private:
char
__p
[(
4
*
sizeof
(
float
)
-
sizeof
(
T
))
&
((
sizeof
(
float
)
<<
2
)
-
1
)];
};
// Rounds up the size of the template parameter type to the next multiple of vec4 (4x4 bytes) by adding a padding if necessary.
template
<
typename
T
>
using
Padded
=
Padded_If
<
(
sizeof
(
T
)
&
(
2
<<
3
)
-
1
)
!=
0
,
T
>
;
struct
Toggle
{
...
...
src/libraries/engine/TextUtilities.cpp
deleted
100644 → 0
View file @
89eb2e9f
#include
"TextUtilities.h"
namespace
glare
{
namespace
core
{
std
::
wstring
TextUtilities
::
toWString
(
const
std
::
string
&
input
)
{
//make text unsigned (const char* to const unsigned char*) as it's needed for conversion.
const
unsigned
char
*
ch_text
=
reinterpret_cast
<
const
unsigned
char
*>
(
input
.
data
());
return
std
::
wstring
(
&
ch_text
[
0
],
&
ch_text
[
input
.
size
()]);
}
bool
TextUtilities
::
isLineBreakable
(
wchar_t
character
)
{
return
(
character
==
' '
||
character
==
'-'
||
character
==
'+'
||
character
==
'*'
||
character
==
'/'
);
}
}
}
src/libraries/engine/TextUtilities.h
deleted
100644 → 0
View file @
89eb2e9f
#ifndef __TEXTUTILITIES_H
#define __TEXTUTILITIES_H
#include
<string>
namespace
glare
{
namespace
core
{
namespace
TextUtilities
{
std
::
wstring
toWString
(
const
std
::
string
&
input
);
bool
isLineBreakable
(
wchar_t
character
);
}
}
}
#endif //__TEXTUTILITIES_H
src/libraries/engine/animation/Animation.cpp
deleted
100644 → 0
View file @
89eb2e9f
#include
"Animation.h"
namespace
glare
{
namespace
core
{
}
}
src/libraries/engine/animation/Animation.h
deleted
100644 → 0
View file @
89eb2e9f
#ifndef __ANIMATION_H
#define __ANIMATION_H
#include
<functional>
namespace
glare
{
namespace
core
{
class
AnimationManager
;
struct
Animation
{
friend
class
AnimationManager
;
double
duration
;
double
start_delay
=
0
;
std
::
function
<
void
(
double
,
double
)
>
on_update
;
std
::
function
<
void
()
>
on_start
;
std
::
function
<
void
()
>
on_finish
;
std
::
function
<
void
()
>
on_cancel
;
private:
//From 0..1
double
current_time
=
0
;
double
current_value
=
0
;
bool
has_started
=
false
;
bool
mark_finished
=
false
;
};
}
}
#include
"AnimationManager.h"
#endif //__ANIMATION_H
src/libraries/engine/animation/AnimationManager.cpp
View file @
ae3a6b71
#include
"AnimationManager.h"
// --------------- STDLIB ---------------
// --------------- EXTERN ---------------
// --------------- INTERN ---------------
#include
<engine/Time.h>
namespace
glare
...
...
@@ -106,7 +110,7 @@ namespace glare
{
animation
.
current_value
=
from_delay
/
animation
.
duration
;
if
(
animation
.
on_update
)
animation
.
on_update
(
from_delay
,
animation
.
current_value
);
animation
.
on_update
(
from_delay
,
animation
.
interpolator
(
animation
.
current_value
)
)
;
}
}
}
...
...
src/libraries/engine/animation/AnimationManager.h
View file @
ae3a6b71
#ifndef __ANIMATIONMANAGER_H
#define __ANIMATIONMANAGER_H
#include
<vector>
#include
<memory>
// --------------- STDLIB ---------------
#include
<algorithm>
#include
"Animation.h"
#include
<functional>
#include
<memory>
#include
<vector>
// --------------- EXTERN ---------------
// --------------- INTERN ---------------
namespace
glare
{
namespace
core
{
class
AnimationManager
;
struct
Animation
{
friend
class
AnimationManager
;
double
duration
;
double
start_delay
=
0
;
std
::
function
<
void
(
double
,
double
)
>
on_update
;
std
::
function
<
void
()
>
on_start
;
std
::
function
<
void
()
>
on_finish
;
std
::
function
<
void
()
>
on_cancel
;
std
::
function
<
double
(
double
)
>
interpolator
=
[](
double
value
)
{
return
value
;
};
private:
//From 0..1
double
current_time
=
0
;
double
current_value
=
0
;
bool
has_started
=
false
;
bool
mark_finished
=
false
;
};
class
AnimationManager
{
public:
...
...
src/libraries/engine/audio/AudioBuffer.cpp
View file @
ae3a6b71
...
...
@@ -14,7 +14,7 @@ namespace glare
AudioBuffer
::
AudioBuffer
(
const
fs
::
path
&
from_file
)
{
m_data
=
io
::
AudioUtilities
::
loadWAV
(
from_file
);
m_data
=
audio
::
loadWAV
(
from_file
);
m_format
=
format
(
m_data
.
bits_per_sample
,
m_data
.
channels
);
al
::
bufferData
(
m_handle
,
m_format
,
unsigned
(
m_data
.
data
.
size
()),
m_data
.
sample_rate
,
m_data
.
data
.
data
());
...
...
src/libraries/engine/audio/AudioBuffer.h
View file @
ae3a6b71
...
...
@@ -2,7 +2,7 @@
#define __AUDIOBUFFER_H
#include
<openal/OpenAL.h>
#include
<
io/AudioUtilities
.h>
#include
<
util/audio
.h>
namespace
glare
{
...
...
@@ -21,7 +21,7 @@ namespace glare
private:
al
::
BufferFormat
m_format
;
al
::
handle
::
buffer
m_handle
;
io
::
AudioUtilities
::
wav_data
_t
m_data
;
audio
::
wave
_t
m_data
;
};
}
}
...
...
src/libraries/engine/graphics/FontManager.cpp
View file @
ae3a6b71
...
...
@@ -121,7 +121,7 @@ namespace glare
size_at_last_break
=
0
;
continue
;
}
else
if
(
T
ext
Utilities
::
isLineBreakable
(
character
))
else
if
(
t
ext
::
isLineBreakable
(
character
))
{
size_at_last_break
=
position_x
;
size_from_last_break
=
0
;
...
...
@@ -249,7 +249,7 @@ namespace glare
line_offsets
.
push_back
(
0
);
continue
;
}
else
if
(
T
ext
Utilities
::
isLineBreakable
(
character
))
else
if
(
t
ext
::
isLineBreakable
(
character
))
{
if
(
character
==
' '
)
{
...
...
@@ -359,7 +359,7 @@ namespace glare
position_y
-=
m_font_face
->
size
->
metrics
.
height
>>
6
;
continue
;
}
else
if
(
T
ext
Utilities
::
isLineBreakable
(
norm_character
))
else
if
(
t
ext
::
isLineBreakable
(
norm_character
))
{
last_line_break_position
=
c
;
}
...
...
@@ -482,7 +482,7 @@ namespace glare
std
::
wstring
&
Text
::
operator
+=
(
std
::
string
&
text
)
{
return
m_text
+=
T
ext
Utilities
::
to
WS
tring
(
text
);
return
m_text
+=
t
ext
::
to
_ws
tring
(
text
);
}
glm
::
ivec2
Text
::
measure
(
glm
::
vec2
max_dimensions
)
...
...
@@ -517,7 +517,7 @@ namespace glare
void
Text
::
set
(
const
std
::
string
text
,
glm
::
vec2
max_dimensions
)
{
const
auto
txt
=
T
ext
Utilities
::
to
WS
tring
(
text
);
const
auto
txt
=
t
ext
::
to
_ws
tring
(
text
);
set
(
txt
,
max_dimensions
);
}
...
...
src/libraries/engine/graphics/FontManager.h
View file @
ae3a6b71
...
...
@@ -10,8 +10,8 @@
#include
"engine/Math.h"
#include
"ImageTexture2D.h"
#include
"engine/rendering/ShaderProgram.h"
#include
<engine/TextUtilities.h>
#include
<util/color.h>
#include
<util/text.h>
namespace
glare
{
...
...
src/libraries/engine/graphics/Material.cpp
View file @
ae3a6b71
#include
"Material.h"
#include
"engine/EngineState.h"
#include
<util/files.h>
namespace
glare
{
...
...
@@ -9,8 +10,8 @@ namespace glare
Material
::
Material
(
std
::
string
name
)
:
Material
(
name
,
std
::
make_shared
<
ShaderProgram
>
(
std
::
vector
<
std
::
shared_ptr
<
Shader
>>
{
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eVertex
,
shader
(
"simple/simple.vert"
)),
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eFragment
,
shader
(
"simple/simple.frag"
))
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eVertex
,
files
::
shader
(
"simple/simple.vert"
)),
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eFragment
,
files
::
shader
(
"simple/simple.frag"
))
}))
{
}
...
...
src/libraries/engine/graphics/Material.h
View file @
ae3a6b71
...
...
@@ -9,6 +9,8 @@
#include
"ImageTexture2D.h"
#include
<util/files.h>
namespace
glare
{
namespace
core
...
...
@@ -59,8 +61,8 @@ namespace glare
inline
static
std
::
shared_ptr
<
Material
>
makeDepthMaterial
()
{
return
std
::
make_shared
<
Material
>
(
"only_depth"
,
std
::
make_shared
<
ShaderProgram
>
(
std
::
vector
<
std
::
shared_ptr
<
Shader
>>
{
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eVertex
,
shader
(
"simple/simple.vert"
)),
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eFragment
,
shader
(
"simple/no_color.frag"
))
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eVertex
,
files
::
shader
(
"simple/simple.vert"
)),
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eFragment
,
files
::
shader
(
"simple/no_color.frag"
))
}));
}
}
...
...
src/libraries/engine/graphics/Skybox.cpp
View file @
ae3a6b71
...
...
@@ -49,8 +49,8 @@ namespace glare
m_triangle_mesh
=
std
::
make_shared
<
Mesh
>
(
triangle_vertices
,
indices
);
const
auto
vert
=
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eVertex
,
shader
(
"/cubemap/triangle_skybox.vert"
));
const
auto
frag
=
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eFragment
,
shader
(
"/cubemap/triangle_skybox.frag"
));
const
auto
vert
=
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eVertex
,
files
::
shader
(
"/cubemap/triangle_skybox.vert"
));
const
auto
frag
=
std
::
make_shared
<
Shader
>
(
gl
::
ShaderType
::
eFragment
,
files
::
shader
(
"/cubemap/triangle_skybox.frag"
));
m_cubemap_shader
=
std
::
make_shared
<
ShaderProgram
>
(
std
::
vector
<
std
::
shared_ptr
<
Shader
>>
{
frag
,
vert
});
}
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment