bradwbeer / clinch Goto Github PK
View Code? Open in Web Editor NEWCommon Lisp 3D/2D Graphics Engine for OpenGL
License: Other
Common Lisp 3D/2D Graphics Engine for OpenGL
License: Other
The triangles look like they have a gap between them which is filled in by the background color.
This way shaders won't need to look up the id from the list and allow thr user to define when they should set shared values.
Translating and the rotating keeps an entity stationary but rotates it about its axis. This should be reversed.
Add unload as the consistent finalization function.
I need something a little smarter and faster than trivial garbage collection. Adding a reference counting class.
The macro definitions with-paragraph and print-text reference a symbol 'layout which does not exist, and is backquoted and not evaluated in print-text. This is lexical in with-paragraph, but looks special. This triggers a large number of style warnings.
I've considered a variety of camera implementations and none fit the complete flexibility model CLinch is trying to adhere to. I've considered:
It looks awful.
This may require making the text editor first.
Tab completion is a MUST!
I don't know how to create a remote REPL without slime, however. I can't seem to reuse it. I might need to find help with this portion.
Takes a function which receives a function with the required cleanup. If the object is unloaded it should be removed.
Possibly remove CL-Pango and CL-Freeimage and do the same with them.
Also rename to Shader.lisp for consistency.
Allow option to not delete the shaders.
Add initarg to vert-shader and frag-shader.
If a shader is explicitly specified and there is no text then use the shader.
On unload, add check before deleting shader again.
Vertex Array Objects do exactly what my function does, but faster as the data is stored on the graphics card.
When trying to run either of the examples, I get the following error:
"Compiling vertex shader..."
debugger invoked on a BABEL-ENCODINGS:INVALID-UTF8-CONTINUATION-BYTE in thread
#<THREAD "main thread" RUNNING {1002978D73}>:
Illegal :UTF-8 character starting at position 0.
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.
((LABELS BABEL-ENCODINGS::UTF-8-DECODER :IN "/home/ayegill/quicklisp/dists/quicklisp/software/cffi_0.10.7.1/src/strings.lisp") #<unavailable lambda list>)
0]
Leaving the vertex shader as an empty string lets the execution continue until it hits an identical error on compiling the fragment shader. Leaving both empty avoids the error altogether, but for obvious reasons, compiling the fragment shader fails.
I get a failure today with this message:
READ error during COMPILE-FILE: Package SWANK does not exist
https://github.com/BradWBeer/CLinch/blob/master/clinch.lisp#L53 refers to swank, but swank isn't in the :depends-on list of the system.
With- style functions for loading, saving, drawing and writing.
Need to get more information such as platform, graphics card, etc.
There is something inside element.lisp which breaks this. I'm still looking for the reasoning behind the functionality before I change it.
commit 3b77d0b accidently converts sdl example from tutorial 05 to glfw
Will make enabled the default, but I need a way to disable Nodes and Entities in my own project.
The CEPL project has a DSL for shaders. It seems like it would be a pretty useful option (though perhaps only an option because it is nice to be able to copy and paste shader code into your program).
Any ideas on implementing something like this, or even better, simpling stealing this functionality from their project?
Their stuff is [L]LGPL, so it would infect the license of CLinch if it is more permissive, but I'm fine with LGPL. What is the license on CLinch?
I tried to create a hub node and several spokes then turn the entire "wheel" by rotating the hub. It moved slightly one time.
When setting an attribute/uniform check to see if it already has that value.
https://github.com/BradWBeer/CLinch/blob/master/freeimage/freeimage.lisp#L58 is triggering an error in SBCL due to the constraints of http://l1sp.org/cl/11.1.2.1.2
http://report.quicklisp.org/2015-07-28/failure-report/clinch.html#freeimage has a full log.
Buffer, Shader, Texture, etc
But it gets referred to in clinch-cairo on lines 20 and 49.
Just trying to get a demo to work, so I don't really know what the best resolution is.
Create a simple text editor for changing code without requiring a return to Emacs.
clinch.asd refers to shapes.lisp, but it doesn't look like that file is in the repo. As a result I cannot build the project.
Right now I leave it to the user, but later I should try to make it easier.
shouldnt you rename the slot (& initarg) indexes to indices? (not sure if correct english, but they are also called indices in the same file, that may be confusing)
PBOs reserve a separate space in memory which doubles the amount of space the image takes. Create a separate PBO object and a create-pbo method for textures. Also, have an option to use a specific PBO when accessing image data.
We can still use functions as value items in entity objects, but I would like a convenience object to make 2D animations simpler.
Supporting any windowing system seemed like a good idea but I (since I'm the only one using it) would like to get started more quickly. Also, this allows more features like a full event loop, timers and queuing.
This looks like it needs a separate object due to the complexity.
Right now they all create new packages which don't work well with each other (shared variables) and are hard to remember. They should just be added to the main package.
Running Simple01 requires the user to change the file's path manually. See if there is a way to automatically do this.
Use as a demonstration on how to use CLinch.
Hello, was looking at your engine again, but, once again, I can't get the example to run! It doesn't seem like (with-loaded-32bit-map) is even an internal symbol in freeimage.
To load "clinch-freeimage":
Load 1 ASDF system:
clinch-freeimage
; Loading "clinch-freeimage"
..................................................
[package clinch-freeimage]
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; Symbol "WITH-LOADED-32BIT-MAP" not found in the FREEIMAGE package.
;
; Line: 5, Column: 34, File-Position: 114
;
; Stream: #<SB-SYS:FD-STREAM
; for "file /home/[user]/Code/CLinch/clinch-freeimage/clinch-freeimage.lisp"
; {100AA16F73}>
;
; caught ERROR:
; READ error during COMPILE-FILE:
;
; Symbol "WITH-LOADED-32BIT-MAP" not found in the FREEIMAGE package.
;
; Line: 5, Column: 34, File-Position: 114
;
; Stream: #<SB-SYS:FD-STREAM
; for "file /home/[user]/Code/CLinch/clinch-freeimage/clinch-freeimage.lisp"
; {100ABD68A3}>
;
; compilation unit aborted
; caught 3 fatal ERROR conditions
; caught 2 ERROR conditions
Currently, every few seconds there is a pause for garbage collection. Need to look at and modify common functions to minimize cons usage. Methods seem to be a prime offender.
libglfw.so.3 is the only version available in fedora 18, and doesn't seem to have this function in it. (I even checked the .so file itself).
It's simple and so very useful. I can also remove the threading.
I don't know why this is important to me.
Already implemented, just never tested.
I've been having a problem with adding items in the correct order and would like a way to order them.
Shouldn't docstrings be written when a function, class and slot has been written? Basically, documentation is very nice to have.
TL;DR: Docstrings are nice, lets do more of those.
I'm not certain how this will work with shaders, but at least it can import data.
I would like a directory of templates for quickly bootstrapping projects. I could see one for glfw and sdl. I'm open to others as they are submitted.
The more quickly we can get a new developer up and running, the more they will like using CLinch and the more likely they will use it in the long run.
Pull out cl-pango and cl-freeimage into their own packages (but keep them under CLinch until ok for Quicklisp distribution)
Add CLinch-pango and CLinch-freeimage packages with supporting macros.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.