Commit graph

114 commits

Author SHA1 Message Date
bf6352369b Resize the viewport and recompute the projection when needed 2016-04-04 22:46:45 +02:00
cdfd5f6bb5 Fix job unit tests 2016-04-04 22:46:45 +02:00
383e156c91 Add macros to simplify async evaluation 2015-12-27 17:09:06 +01:00
7e9ed2c1ac Add the main loop and remove the now useless startup and debug files 2015-12-27 17:09:06 +01:00
994f7c33c4 Use input package as a module 2015-12-27 17:09:06 +01:00
03b2fa65fb Don't crash render thread even if there is no world 2015-12-27 17:09:06 +01:00
a2b107f53f Add move and rotate functions to manipulate objects 2015-12-27 17:09:06 +01:00
54c1efc5b1 Fix ctype-to-gltype 2015-12-27 17:09:06 +01:00
de99347555 Add a compute-fps function in render module 2015-12-27 17:09:06 +01:00
326fe654c2 Add a priority parameter to defmodule 2015-12-27 17:09:06 +01:00
4985c8a179 Fix maths module's vec* macros and mperspective 2015-12-27 17:09:06 +01:00
0a5d24fe3e Use the renderer to show some meshes
Create some classes to store the mesh data streams and adapt the import
file accordingly.
Add object and camera classes to be manipulated by the game.
Render the meshes in the graph scene using only position vertex stream
and an unicolor shader.
Also add some models and a startup package to ease testing.
2015-12-27 17:09:06 +01:00
ae6ce45c53 Move around some defgeneric to be used in various situations 2015-12-27 17:09:06 +01:00
70c51eb04d Rename some maths interfaces 2015-12-27 17:09:05 +01:00
6d3a0e19e7 Setup the opengl context on a separate thread
This requires all opengl functions to be executed on this separate
thread.
2015-12-27 17:09:05 +01:00
99e97f7b71 Fix the import of the transform attribute in the scene graph 2015-12-27 17:09:05 +01:00
b0f45911ab Use defparameter to declare shader variables 2015-12-27 17:09:05 +01:00
a3cc27237b Add accessors for vect and matrix classes to the underlying data 2015-12-27 17:09:05 +01:00
5e4b3241aa Define generics with common names to be used by several different classes 2015-12-27 17:09:05 +01:00
e9be960167 Fix the job module interface to make use of specialized threads 2015-12-27 17:09:05 +01:00
d6af14d552 Move clock utility to time.lisp 2015-12-27 17:09:05 +01:00
53de3d0cf6 Wrap glop functions in a viewport file
regroup opengl version and window creation and event polling in the
viewport file.
To further clean up the files layout, move input.lisp to engine folder
gl-utils is now used for some simple macros
2015-12-27 17:09:05 +01:00
073bec3e64 Move the shader folder to the root folder 2015-12-27 17:09:05 +01:00
ab0698bef1 Add a way to import graphic assets from various sources 2015-12-27 17:09:05 +01:00
4e974ad8a2 Add a resource module
Resources are loaded as binary or lisp files. A streamed resource is
also planned but not yet implemented.
Resources are shared and loading happens asynchronically,
powered by promises.
Resources are used through proxies that shares a weak pointer.
When a proxy is gc'd, a finalizer is triggered using trivial-garbage to
release the resource.
2015-12-27 17:09:05 +01:00
7e6f6f699c Make a job-utils package for test system
This lets us dynamically create new threads to test features in
multithreaded environment.
2015-12-27 17:09:05 +01:00
0f0ed3a879 Introduce promises into the job module 2015-12-27 17:09:05 +01:00
0c4b744e75 Remove aif and awhen
Hopefully we won't be using anaphoric macros in this project
2015-12-27 17:09:05 +01:00
c4b1680d2f Adapt unit test framework for inferred-system
Add unit tests for jobs
2015-12-27 17:09:05 +01:00
f31a433854 Rewrite job system using clos 2015-12-27 17:09:05 +01:00
7c3a9a01c0 Fix unary v- function which didn't do anything 2015-12-27 17:09:05 +01:00
00fa5fab7a Fix the typed returned by quaternion constructor 2015-12-27 17:09:05 +01:00
0aef2509d5 fix type spec in maths module 2015-12-27 17:09:05 +01:00
fc69969099 Refactor packages layout using inferred-packages-system 2015-12-27 17:09:05 +01:00
dbc009d466 Rewrite maths library's implementation and interface
Make use of CLOS for vector and matrix types
Rewrite matrix implementation as column major
Verify the computations in rewritten unit tests
2015-05-25 23:20:17 +02:00
9b69dee238 Fix unit test for the new defshader system 2015-05-05 18:31:50 +02:00
c910a4ce1f Implement a new shader definition system
Use a Domain Specific Language to define shaders in common-lisp syntax.
The code is then walked and compiled into glsl expressions and stored in
easy to use structures.

At the program initialization, the shader programs are compiled into opengl.

Dependencies are also kept, so that if a shader is redefined, the
corresponding program will be recompiled into opengl.

The old glsl-compiler is deleted as it is now rendered useless.

The render and mesh code are fixed according to changes in the interface.
2015-05-05 14:07:32 +02:00
e73a96de44 fixup command-line-option 2015-05-05 13:28:18 +02:00
2fda251cd7 fixup loop-with-progress 2015-05-05 13:27:41 +02:00
7a8f3117ed Add a way to check if opengl is initialized or not 2015-05-03 23:38:19 +02:00
fa14b3dae4 Properly parse numbers from the command line or in version strings 2015-04-27 22:19:28 +02:00
7ba21e011c Add a macro to display a progress indicator to looping process 2015-04-24 14:30:41 +02:00
a26b19be1b Enhance the gl-assert macro to include an implicit progn 2015-04-21 17:19:35 +02:00
8b96f8166f Add glsl version directive to the shader according to the supported version 2015-04-04 23:45:23 +02:00
a7fd8e4842 Handle the shader lambda-list (preamble) 2015-04-04 23:42:56 +02:00
c66e3c62e8 Transform common-lisp symbols into glsl compliant variable names 2015-04-04 23:38:01 +02:00
5cc428df88 Fix gl version retrieval and get glsl version at init 2015-04-04 23:32:34 +02:00
1c1862dd6d Handle more operations and wrap in main function
Add handlers for infix operations (+ - * / %) and assignments.
Wrap the resulting code in a main function.
Prepare for the lambda-list processing
2015-03-29 19:02:59 +02:00
f8c1db2192 Add helpers for let handler 2015-03-25 23:25:25 +01:00
1a94093619 Enhance output layout 2015-03-25 23:25:00 +01:00