Sam Hocevar
03c17fcae4
base: clean up and refactor containers.
The containers no longer force the user to use the ptrdiff_t type for
size information. For convenience, size() now always returns an int,
and the size_s() method offers a way to handle arrays with more than
2 billion elements. Internally, we still use ptrdiff_t, though.
Since so much code had to be changed, I took the opportunity to get
rid of capitalised accessors for classes that are lowercase.
9 anni fa
Sam Hocevar
2fa398926d
math: improve the 2D and 3D box classes.
Box objects (AABB) now have the long awaited extent() and center()
methods. Corners are now called “aa” and “bb” for convenience. The
WorldEntity class uses a box3 for its AABB instead of two vec3s.
This allows us to simplify a lot of verbose code.
9 anni fa
Benjamin ‘Touky’ Huet
825401d997
Brought threads to C++11
Revamped thread communication
Fixed dynamic thread Add/Remove
Added unit-test for threads !!!!
9 anni fa
Benjamin ‘Touky’ Huet
f67da65818
First pass of EasyMesh split & refactor
Big FAT pass on windows-warning. It is better now.
9 anni fa
Sam Hocevar
d72cb24bc0
build: move sample and tutorial files around.
10 anni fa
Sam Hocevar
a07844682e
build: remove dead PS3 code.
10 anni fa
Sam Hocevar
8657a3adfa
sys: use std::bind for thread workers to avoid ugly casts.
10 anni fa
Sam Hocevar
cd988786b9
build: reorganise includes so that we can use precompiled headers later.
10 anni fa
Sam Hocevar
12aaff89e3
base: huge refactor in vector.h; GCC compilation times down by 50%.
10 anni fa
Sam Hocevar
fe665f85b4
base: strip core.h from its contents and put it in public/private headers.
10 anni fa
Sam Hocevar
398ee1b4d5
base: use lol::array in most places.
10 anni fa
Sam Hocevar
18254349aa
image: gather pixel-related types and enums into a single pixel.h header.
10 anni fa
Sam Hocevar
da6b3d5cd0
scenegraph: Entity::TickDraw() now provides a reference to the current
scene so that g_scene can be deprecated later.
10 anni fa
Sam Hocevar
0bd3f1d9ef
input: fix or disable input code in side projects so that everything builds.
11 anni fa
Benlitz
f104674963
gpu: removed attribute name, everything works using semantic only now. For glsl, semantic is determined from the attribute name which must follow this pattern: in_[Semantic][index], index being optional. Note: this may break most of the projects although I tried to updated every shader accordingly
11 anni fa
Lolbot
c47d0f8c62
fixed 10 files out of 2754:
- removed 386 CR characters
- removed 4 trailing whitespaces
- replaced 189 tabs with spaces
11 anni fa
Benlitz
a7aac24c46
Completely reworked input system. Unified device interface, button, axis and cursor support, controller and binding system, mouse capture. Tutorial 07_input provided. Require to compile lolcore with LOL_INPUT_V2 to be activated (also needed app-side before including core.h)
11 anni fa
Sam Hocevar
6a8118cb18
build: put tutorials and lol.js in a new "demos" directory.
11 anni fa
Sam Hocevar
f14ac4a2c6
tutorial: make the fractal tutorial build when no threads are available.
11 anni fa
Sam Hocevar
c1428fc1f9
input: support up to 32 mouse buttons.
11 anni fa
Sam Hocevar
7e8edd7c3e
sys: add the base source directory to the list of search directories
on automake platforms, too.
11 anni fa
Sam Hocevar
16d53895fa
math: remove coercion rules in the vector classes, they increase the
compilation time for very little benefit and maybe even confusion.
12 anni fa
Sam Hocevar
42fb9b6853
gpu: support 1-component (luminance) textures.
12 anni fa
Sam Hocevar
3adf42b00c
build: hide LolFx external declarations behind macros.
12 anni fa
Sam Hocevar
bbf72e1a64
core: pass the project directory to the binary build and get rid of
that 2-year old "temporary Win32 hack".
12 anni fa
Sam Hocevar
6a6e46cf0d
system: try to autodetect the data directory from the executable path;
currently works for images (SDL and GDI+ loaders) and sound samples.
12 anni fa
Benjamin ‘Touky’ Huet
c7219ff1dd
New year copyright update.
12 anni fa
Sam Hocevar
d6634da83f
build: fix the WTFPL site URL in all code comments.
12 anni fa
Sam Hocevar
57c2805351
math: reimplement min(), max(), abs() and fmod() in the lol:: namespace to
avoid conflicts with the C++ stdlib.
12 anni fa
Sam Hocevar
26c945a31f
gpu: allow to specify the pixel format when creating a texture; the
internal format is then automatically deduced. Only a few 8-bit RGB
or RGBA formats are supported for now.
12 anni fa
Sam Hocevar
8a688a7d50
misc: compilation fixes for Windows, X360 and PS3 introduced by the
texture class refactor.
12 anni fa
Sam Hocevar
b9aba5d27a
gpu: put the texture creation code in its own class; for now a lot of things are
hardcoded and only the fractal demo uses it, but everything will eventually switch.
12 anni fa
Sam Hocevar
ad00a34984
gpu: add support for triangle strips and fans, and change the DrawElement
calls so that they take a number of vertices or indexes, not elements.
12 anni fa
Sam Hocevar
c5b10f5e9a
tutorial: flatten the fractal computation loop, and avoid the use of
new/delete when our arrays will do.
12 anni fa
Sam Hocevar
d4c0c005d6
math: refactor real number constant declarations so that they are only
computed on demand with static initialisation.
12 anni fa
Sam Hocevar
03e83798eb
build: fix the Raspberry Pi build and add a build script for it.
12 anni fa
Sam Hocevar
c5915aa35c
tutorial: use real numbers in the fractal navigation (doubles are still
used in the fractal computation).
12 anni fa
Sam Hocevar
5bd24fa1d3
build: hide the SDL_main.h inclusion in core.h, and only activate it
on Windows if using Visual Studio; if using MinGW, try to stick to the
original main() entry point.
12 anni fa
Sam Hocevar
b5563ad21d
core: switch the Win32/x64 binaries to the Windows subsystem so that they
do not open a console at startup.
12 anni fa
Sam Hocevar
951c93ab84
data: fix ascii.png search path.
12 anni fa
Sam Hocevar
5008482e54
tutorial: remove dead code in 11_fractal.
12 anni fa
Sam Hocevar
3389ed69a2
build: move all games to a "games" subdirectory to clean up the root
directory layout mess.
12 anni fa
Sam Hocevar
78f7a303ff
build: reorganise all the build stuff so that it lies in build/ and
make sure each .vcxproj file is with its corresponding source code.
12 anni fa
Sam Hocevar
28728814cc
core: replace usage of sin() or std::sin() with lol::sin() where appropriate.
12 anni fa
Sam Hocevar
8375f3443d
build: fix the PS3 port by using our trig.h everywhere instead of stdlib
functions; also remove a lot of idiotic "using namespace std" from the
codebase.
12 anni fa
Sam Hocevar
a71562bd83
core: rename f64vec4 to dvec4 etc. for consistency with GLSL.
12 anni fa
Sam Hocevar
ee7dd6a699
misc: move more shaders to .lolfx files.
12 anni fa
Sam Hocevar
4770daf4ac
math: replace len(vec) with length(vec) to match the GLSL naming.
12 anni fa
Sam Hocevar
90bfc79b22
core: tick methods now use seconds, like any sane system.
12 anni fa
Sam Hocevar
b49ba4ef56
core: prefix some member variables with m_ for clarity.
12 anni fa