In the process of speeding up my renderer, i may have broken everything

Edit:

Turns out i multiplied by 3, instead of 9. Funny stuff

I tripled the speed of the renderer, down from 65 (?) ms/frame to 23 ms/frame. I can probably further improve that, but i STILL need to fix the multithreading issues. Unfortunately this entails devising some sort of parallel triangle encapsulation sort/test, so ill need to spend more than the 30 seconds i thought it would take fixing that

The improvement in allocation of memory has also smoothed out the framerate, as i suspect that some sort of background garbage collector in opencl for memory (to actually deallocate memory after you've deallocated it) needs to run not nearly as often

Memory is now allocated on the graphics card for the object by the user, rather than every frame by the renderer. I was mostly doing the latter for debugging purposes

I'll be writing a seperate real runner in python, but I'll be moving the actual unit tests for unittest to a C++ based runner that uses dlopen/LoadLibrary.

Also, I've got some good news: You can use my unittest library without compiling anything (except the actual 'test suites'). It's header only! It could probably be optimized a bunch (move semantics, or whatever). As of right now you'll need gcc 4.7 (because I'm a dummy and made use of the 'final' keyword ), clang 3.0, or MSVC 2010 or later to use it. I'm looking into making it not as much a pain in the ass, with some typedef fallbacks or whatever.

Ugh not enough content! I present me turning into synthiac(minus the maze part):Your browser doesn't support HTML 5 videos!
I'm using a a friend and mines engine(he stopped working on it so I took over development mostly

Edited:

I can't believe i never added this yet!
Borderless windows! Now everything is handled via the GUI library!

Am I the only one who tries to maintain as much natural language in programming as possible? Like I simply can't stand what a lot of C 'hacker' type programmers use to name variables/functions. (A really great example of this is Voxlap by Ken Silverman. One of the best programs I've ever seen, and it's brilliant, but there's like 1 comment and the variables are named terribly and it's got MASM all over the place.)

I'm not against 3 word function names for instance, just don't go crazy.

Ugh not enough content! I present me turning into synthiac(minus the maze part):Your browser doesn't support HTML 5 videos!
I'm using a a friend and mines engine(he stopped working on it so I took over development mostly

Edited:

I can't believe i never added this yet!
Borderless windows! Now everything is handled via the GUI library!

Are there any songs that use the entire of that red bit? Seems silly having all that blank space just sorta vibrate a little.

Edited:

LMAO Pics in a nutshell. I really fucked up the quality.
Made with LOVE2d

Ugh not enough content! I present me turning into synthiac(minus the maze part):Your browser doesn't support HTML 5 videos!
I'm using a a friend and mines engine(he stopped working on it so I took over development mostly

Edited:

I can't believe i never added this yet!
Borderless windows! Now everything is handled via the GUI library!

What GUI lib are you using? Also what is the first song in that video?

Can anyone be bothered to give me a quick rundown of how to translate my GLSL 110 shaders to 150?
I don't know how to use in and out and what extra calls I need to make.

I'm not sure what the other differences are, but in and out are pretty simple. Anything with an 'in' tag comes from a previous stage in the pipeline, and anything with an 'out' tag goes to the next stage. You can qualify them with 'smooth' aka interpolated (set by default) or 'flat'. (The opposite.)
Vertex attribute locations (for attrib pointers) are automatically numbered from 0 based on definition position.
Given

Code:

in vec4 gridPos;
in float heading;
in int activity;
flat out int spriteNum;

gridPos is location 0, heading is location 1 and so on.
You can explicitly state this if you want to either shake it up or be definite.

I'm not sure what the other differences are, but in and out are pretty simple. Anything with an 'in' tag comes from a previous stage in the pipeline, and anything with an 'out' tag goes to the next stage. You can qualify them with 'smooth' aka interpolated (set by default) or 'flat'. (The opposite.)
Vertex attribute locations (for attrib pointers) are automatically numbered from 0 based on definition position.
Given

Code:

in vec4 gridPos;
in float heading;
in int activity;
flat out int spriteNum;

gridPos is location 0, heading is location 1 and so on.
You can explicitly state this if you want to either shake it up or be definite.

I'm guessing the circle shapes are being produced by the sin and cos math, as for why they repeat and change colors it's some complex biproduct of the whole thing, I'm currently making an animation of an image generated with a vector dot operation and a seed that increases over time

Rounded off some stuff in the GWEN designer. You can now parent controls onto different pages of a child. I was kind of dredding it because I hadn't accounted for it when I was thinking out the editor.. but the solution I came up with works and is clean and simple as it could be.

Designer still rough (I need to draw some guides around controls or something - right now you have to guess where the control is), but here's how it works.

I'd totally use it if anyone wrote a python wrapper (or whatever you'd call that) for it

Edited:

When you feel comfortable with python/pygame, I *HIGHLY* suggest that you look at pyglet. It does nearly everything that pygame does, but has a more 'pythonic' interface. You can also use py-lepton with it :D

For whatever godawful reason, opencls atomic_min function only accepts integers, or long integers, which means that i may have to implement an integer depth buffer, instead of my current floating point one. Fun times

Edit:
Mostly fixed flickering issue, still need to find out where the last of it is coming from

Edit 2:

Turns out that this fix is equally as useless as my other attempts at fixing this issue, due to opencl lacking useful atomic functions

You can see that it easily mistakes the lower-case L for a 1, but that can be fixed in the next process. The next step is the arguably the most important and fun one to write, the code that turns this soup of characters into a LaTeX string. With the knowledge of math as context, mistakes like c0s and 1n can be easily detected and resolved.