ENIGMA Forums

Outsourcing saves money => Issues Help Desk => Topic started by: Darkstar2 on April 19, 2014, 01:36:34 am

Title: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 19, 2014, 01:36:34 am
I wanted to use particles in my games but seems that cannot be used in ENIGMA even though ENIGMA claims to be compatible.....even though it was announced in 2013 and said to be complete and tested. Am I missing something or is this broken?

Using this in a control object, create event.

I tried with OGL1, 3, DX9/11, enabled Part API,
does not work nothing displays.

fire1 = part_type_create();
part_type_shape(fire1,pt_shape_line);
part_type_size(fire1,0.20,0.60,0,0);
part_type_scale(fire1,0.65,2.50);
part_type_color3(fire1,16749459,33023,255);
part_type_alpha3(fire1,0.04,0.06,0.07);
part_type_speed(fire1,0.70,2.60,-0.02,0);
part_type_direction(fire1,85,95,0,9);
part_type_gravity(fire1,0,270);
part_type_orientation(fire1,0,0,10,20,1);
part_type_blend(fire1,1);
part_type_life(fire1,60,80);
emitter1 = part_emitter_create(Sname);
part_emitter_region(Sname,emitter1,60,-60,10,-10,1,1);
part_emitter_stream(Sname,emitter1,particle1,10);


I even tried ready made parts from the D&D actions, same !
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 19, 2014, 09:35:33 am
They were done at some point, but then became broken. They no longer work in all of the graphics systems. I would want the original developer of the particle system extension to fix that, but I am not use if that will happen.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 19, 2014, 11:39:19 am
They were done at some point, but then became broken. They no longer work in all of the graphics systems. I would want the original developer of the particle system extension to fix that, but I am not use if that will happen.

lol- holy crap there sure are lots of things broken in ENIGMA as I'm discovering, makes it very difficult to use ENIGMA to make a game as you are limited from many sides.  What a shame for the particles though because there are very complex effects you could do with them without requiring pre-rendered stuff all over your game :D

Also I recall the dev post stating it was completed and fully tested and on par with GM's........so I am confused.

Wouldn't it be best to REMOVE all these non working features from ENIGMA, it can confuse the fuck out of some people particularly those new to ENIGMA.  To me if I see a particles extension and functions, it means they can be used.
BTW, I tried the particles functions in every gfx system, dx9, 11, ogl1.1, ogl3, nothing works.

If worse comes to worse I will use pre-rendered, it's just time consuming  but I'm not going back to using YoYoShit.  one thing that is good with ENIGMA is support for many useful functions that were removed due to lazyness by yoyo, but problem is I'm beginning to wonder what kinds of games can you do with ENIGMA, with many reportedly broken or non working things, it's a bit discouraging..... So with lights broken, 3d broken, particles broken, collision/path finding, and few others, what does it leave people to make ?

BTW I think the way YYG is heading sucks major dick.  I don't expect their new IDE to be anything worthy to begin with, I can see more and more that they are breaking apart GMS further with their new gayness, can't fix it, then either leave it there or remove stuff. No wonder people make shitty games, not because of lack of interest but because of a shitty product they have (GM Studio) with an $800 option to export your shit to other platforms...........:P

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 19, 2014, 03:43:21 pm
Quote
Also I recall the dev post stating it was completed and fully tested and on par with GM's........so I am confused.
It was. It has all the features as far as I know and worked perfectly with GM's examples and games that used particles. But that happened some time ago (2012 and early 2013) and since then there has been massive changes in all graphics systems. That is probably why they don't work any more.

Quote
So with lights broken, 3d broken, particles broken, collision/path finding, and few others, what does it leave people to make ?
That sadly is what happens when less than 2 people actually work on ENIGMA. And of course we also lack proper backwards compatibility testing, so when adding new stuff, old one usually breaks without knowing. So all the things you mentioned worked at one point or another, but when new stuff was added it all broke. Lights and 3D should work in GL1 just fine. They were also fixed in GL3, but that has not been merged because of some ATI bugs. Collision works as far as I know. And path finding also works, although we don't have path_start() working (as that allows modifying instance variables which are not possible via extension right now).

I actually encourage Robert to drop feature additions and start working on fixing things. That is why I haven't really added features for some time now. I rewrote GL3 (thought not completely), but it didn't add any features as that wasn't the point. Same with matrix function rewrite.

forthevin is the one who made the extension. Maybe he can look at the newest GIT master and fix it.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 19, 2014, 07:34:05 pm
I've been trying to look more into particles, not convinced 100% they are not working at all.  Funny but I managed to make them work in GL3, in GL1 they look funny LOL, the snow flakes are squares, in GL3 they have proper shape.
Anyhow sometimes they work but eventually as you run, test re-run they fuck up, work and instances disappear, and weird shit happens, but the fact I managed to make them work (the effect D&D part) I suspect it has something to do with opengl init bugs or something not properly initialized ?

I also figured what was causing the endless looping and trailing of instances, you need to turn on a background. lol! fuck me, what was I thinking there.
I think now the particles thing might need some tweaking, as it's there and should work but there might be something minor need changing to enable it to work all the time and not intermittent or stop working after several re-runs.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 19, 2014, 11:27:13 pm
Ok an update I played around and noticed the following:

First, particles ONLY work through the effect D&D (action_effect).  ALL particle GML functions are not working in ENIGMA, what a shame. :(  So you can only use pre-made ones under D&D.

Second, OGL1 fucks up the effects, example snow flakes are square flakes, smoke is a series of squares, flares are a circle made of squares, etc you get the picture :)  However under OGL1 when an effect is called ,instances remain visible and work.

Third, OGL3 seems to display the effects properly, snowflakes, flares, clouds, smoke, explosions, etc, however the annoying fuck of a thing clears all instances in the room and impossible to re-display them, even tried the draw_self and still does not work :( So this makes effects totally fucking useless lol!

Hope this helps !

To summarize:

Particles GML functions don't work, they are dead ! :)

Effects (action_effect) works but only under OGL3 and they are useless for the reasons explained above.


Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 19, 2014, 11:45:42 pm
If I get a chance I can look at fixing these bugs, sorry Darkstar, we're just heavily understaffed, find us some more developers!
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 20, 2014, 12:00:31 am
If I get a chance I can look at fixing these bugs, sorry Darkstar, we're just heavily understaffed, find us some more developers!

They all want to work for YYG !  ;D

It's odd though you'd think with the MESS YYG created that more people would have switched already and helped here.  There are some developers on GMC as I'm sure, but probably some have left for other things. 
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 20, 2014, 05:02:50 am
Quote
Third, OGL3 seems to display the effects properly, snowflakes, flares, clouds, smoke, explosions, etc, however the annoying fuck of a thing clears all instances in the room and impossible to re-display them, even tried the draw_self and still does not work :( So this makes effects totally fucking useless lol!
I think I know why that happens. GL3 now using shaders is mandatory (so we have our own shader that is used all the time), but extension system uses it's own shader and it doesn't set our shader back afterwards. It's actually easy to fix. But the rest probably would take some tinkering.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 20, 2014, 07:59:59 am
I will do a quick fix that will make the particle system run on all graphics systems. I will do it by forcing on particlesystem_fallback on all systems. That means all particles will be basically drawn with draw_sprite_ext() function. It will be slower, because particle system drawing can often be optimized just for particle systems. On the other hand our sprite drawing is batched and so one particle system should technically draw using one draw call.

edit: Also, Darkstar nothing displays because your code is wrong.
1) You need to create a particle system.
2) You call your particle fire1 and not particle1.
So your code would display nothing even particles actually worked. This is correct code:
Code: [Select]
Sname = part_system_create();

fire1 = part_type_create();
part_type_shape(fire1,pt_shape_line);
part_type_size(fire1,0.20,0.60,0,0);
part_type_scale(fire1,0.65,2.50);
part_type_color3(fire1,16749459,33023,255);
part_type_alpha3(fire1,0.04,0.06,0.07);
part_type_speed(fire1,0.70,2.60,-0.02,0);
part_type_direction(fire1,85,95,0,9);
part_type_gravity(fire1,0,270);
part_type_orientation(fire1,0,0,10,20,1);
part_type_blend(fire1,1);
part_type_life(fire1,60,80);
emitter1 = part_emitter_create(Sname);
part_emitter_region(Sname,emitter1,400,550,200,250,1,1);
part_emitter_stream(Sname,emitter1,fire1,30);

edit2: The fixes are in this commit: https://github.com/enigma-dev/enigma-dev/commit/2a914cc52a1f48379c14dc6b46b1b60ddd9e844c in this branch: https://github.com/enigma-dev/enigma-dev/tree/particle_fix

I didn't merge into master so people could test and see if it works and doesn't break anything else. Also, as I implemented draw_get_blend_mode* functions I wanted to know if anyone else has a better solution.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 20, 2014, 12:18:59 pm
Thanks I will test this later today. You mentioned a quick fix by setting back shader, so if I understood correctly this would be a faster / more optimized way of displaying particles, but what are the downsides for this compared the the sprite_draw(ext) ?

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 20, 2014, 02:02:49 pm
Ok tested.

1) BTW, is there a faster way to download files that have been modified instead of opening each file in a text editor copy / pasting ? Is there a way to directly download the modified files?

2) Seems to work :D All gfx systems, indeed.  They look like they are supposed to, no more squares :D
display above / below works now, before it didn't.

As far as speed, in a side scroller where I would use streamed particles in areas I would personally have them disabled when they are off view, I guess I see what you mean by "slower" :P 

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 20, 2014, 02:24:47 pm
Quote
Thanks I will test this later today. You mentioned a quick fix by setting back shader, so if I understood correctly this would be a faster / more optimized way of displaying particles, but what are the downsides for this compared the the sprite_draw(ext) ?
Yes, in GL3 that would technically be faster than using draw_sprite_ext() for every particle. I cannot say any specific number, but it still should be faster. When they are fixed (of if they are fixed) we could do some benchmarks. There are no real downsides besides the fact we would need to maintain more code. The draw_sprite() method also means things like lights work on particles, while if we used a custom shader they wouldn't.
Also, it wasn't as "quick" as I thought, as particles in GL3 crashed the game for me (unlike you who only had problems with drawing), so I ended up turning on the fallback.

Quote
1) BTW, is there a faster way to download files that have been modified instead of opening each file in a text editor copy / pasting ? Is there a way to directly download the modified files?
You can do "View->Raw->Save As", but that is the same as copying. You can also download the whole branch via "Download Zip" from this page https://github.com/enigma-dev/enigma-dev/tree/particle_fix . Then copy all the files. But be careful not to overwrite your own custom changes if there are any. I just often have several version. Like enigma_master and enigma_test folders. In them I just pull all the changes via Git For Windows.

Quote
As far as speed, in a side scroller where I would use streamed particles in areas I would personally have them disabled when they are off view, I guess I see what you mean by "slower" :P 
Is it actually slow/slower for you? Or you cannot notice? Because I think you shouldn't really be able to notice. As I said our sprite rendering is actually quite optimized. Especially when you use the same sprite image to render a lot of sprites (just like particle systems do) and so in both GL3 and GL1 the particle system should use the batcher. Although there is possibly a bug why it doesn't (we call draw_set_blend_mode() before all sprite drawing which could make the batcher flush. I will test this later).
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 20, 2014, 04:25:47 pm
Yes, in GL3 that would technically be faster than using draw_sprite_ext() for every particle. I cannot say any specific number, but it still should be faster.

But question is, are there still many people who have GFX cards without OGL3 support ? vs. DX9 ?

Quote
When they are fixed (of if they are fixed) we could do some benchmarks. There are no real downsides besides the fact we would need to maintain more code. The draw_sprite() method also means things like lights work on particles, while if we used a custom shader they wouldn't.

In my opinion, the speed difference will depend on its use.  Probably the biggest impact will be with streamed particles particularly (yes I know  :D) if you use many in your room.  But wouldn't that be an issue regardless of whether method used ? I guess in such case it would all come down to how they are used in your game.  In cases where there would be many same instances of streamed particles (example a room with walls with several torches, etc....) it would be good to use pre-rendered,(APNG) in this case the same sprite would be used in many places and avoid the processing, on the down side extra memory.

Quote
Is it actually slow/slower for you? Or you cannot notice? Because I think you shouldn't really be able to notice.

For the pre-made stuff (action_effect) no, did not notice.  For my fire1 custom particles, I noticed, but I cannot compare to anything since they did not work for me previously :(  The fire1 example is a streamed particle,  first instance does not slow much, but when adding another things start to really slow down.
Now I already posted my PC and GPU specs they are up to date and fast, can run all latest games at their full settings.  So CPU/GPU is not a limitation.

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 20, 2014, 09:50:20 pm
having fun with particles can't believe this was fixed so quickly thanks TheEx :D So far so good.  I'm fairly new to this so after trial and error I figured how to start and end particles on demand, destroy, etc, and proper code placement.

You could do complex stuff and demos using particles.  I've managed to compile an EXE of 331K rared :D


Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 21, 2014, 08:43:31 am
Quote
For the pre-made stuff (action_effect) no, did not notice.  For my fire1 custom particles, I noticed, but I cannot compare to anything since they did not work for me previously :(  The fire1 example is a streamed particle,  first instance does not slow much, but when adding another things start to really slow down.
Now I already posted my PC and GPU specs they are up to date and fast, can run all latest games at their full settings.  So CPU/GPU is not a limitation.
Okay I got around to testing the draw calls and indeed blend mode caused the VBO to render and blend modes were changed per particle. So it ended up rendering 1 quad per VBO which is rubbish. With 10400 particles I got 25FPS. After I fixed that I got 140FPS now. Current progress is here:
(http://i.imgur.com/SWU3RMh.png)
On the right is Code XL debugger. Right now it's total of 70GL calls and only 3 draw calls (being glClear to clear the screen, then one draw call for the text and one draw call for all the particles). In all the graphics systems I get 140-160FPS which leads me to believe this is no longer a drawing limitation, but now it's CPU bound (all the particles are calculated on the CPU).

I only have old GM8 installed in that I get about 35FPS with the same example. But I guess the new GM:S would probably work even faster than ENIGMA in that code (maybe someone can test? The example is here: https://dl.dropboxusercontent.com/u/21117924/particle_test.gmk) as they use GPU to calculate particles. So it might be a lot faster, but a lot more limited. Like they no longer have attractors, destructors and so on.

What we could do is use instances in in the particle system. It would lower bandwidth by factor of 4. We could technically use instances for all sprites, but that would not allow mixing vertices like we can do now.

The branch with fixes is here: https://github.com/enigma-dev/enigma-dev/tree/particle_fix . Could you Dark check and see what FPS you get now?

Also, I previously was mistaken. I was very sure we used batching even in GL1. That apparently is not the case. For backwards compatibility that thing is still immediate mode. But because of clever driver side stuff it usually runs a little faster than GL3. :P We still need to optimized GL3 though.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 21, 2014, 04:38:25 pm
Nice find :D

Ok I screwed up somehow, when I attempted to test before and after your change I had a FPS of 75 I was confused at first but then I remembered I had adaptive vsync in my NVIDIA panel on, I had to set it to use application settings which I did but it was too late I already had your new mod.  Anyhow, tested at 144-146 FPS OGL1 (holds steady 146) and about 130-136 FPS OGL3.

//edit:  Testing on compiled EXE, holds steady at 151 FPS (OGL1) and 133 FPS (OGL3). :D

BTW, DX11 and DX9 does not work anymore with particles I would get a blank screen but initially before a re-install, I would get this:

Quote
Building for mode (0)
Cleaning up from previous executions
 - Cleared parsed objects
 - Cleared room entries
 - Cleared shared locals list
 - Cleared event info
Loading shared locals from extensions list
Location in memory of structure: 4eb62da8
Copying resources:
Copying sprite names

Copying sound names

Copying background names

Copying path names

Copying script names

Copying shader names

Copying font names [1]
Copying timeline names [kidding, these are totally not implemented :P]

Copying object names [1]
Copying room names [1]
SYNTAX CHECKING AND PRIMARY PARSING:
0 Scripts:
"Linking" scripts
`Linking' 0 scripts in 0 passes...
Completing script "Link"
Done.
1 Objects:
 obj_0: 12 events:
  Event[0]:   Parsing 1 sub-events:
Check `obj_0::create... Done. Parse... Done.
  Event[8]:   Parsing 1 sub-events:
Check `obj_0::draw... Done. Parse... Done.
Creating room creation code scope and parsing
"Linking" scripts into the objects...
"Link" complete.
Tabulating maximum argument passes to each script
Finished
Writing executable information and resources.
Writing modes and settings
Writing object switch
Writing resource names and maxima
Writing events
Linking globals
Running Secondary Parse Passes
Writing object data
Writing local accessors
Writing font data
Writing room data
Writing shader data
Running make from `mingw32-make.exe'
Full command line: mingw32-make.exe Game WORKDIR="C:/ProgramData/ENIGMA/" GMODE=Run GRAPHICS=Direct3D11 AUDIO=None COLLISION=Precise WIDGETS=None NETWORKING=None PLATFORM=Win32 CXXFLAGS="-I../Additional/i686-w64-mingw32/include" COMPILEPATH="Windows/Windows" EXTENSIONS=" Universal_System/Extensions/Alarms Universal_System/Extensions/Timelines Universal_System/Extensions/Paths Universal_System/Extensions/MotionPlanning Universal_System/Extensions/DateTime Universal_System/Extensions/ParticleSystems Universal_System/Extensions/DataStructures" OUTPUTNAME="d:/tmp/egm8583723487621132820.exe" eTCpath=""
mingw32-make.exe -C ENIGMAsystem/SHELL
mingw32-make.exe[1]: Entering directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Audio_Systems/None/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Bridges/Win32-Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Alarms/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DataStructures/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DateTime/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Timelines/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Widget_Systems/None/
g++ -I../Additional/i686-w64-mingw32/include -IPlatforms/Win32/Info -IGraphics_Systems/Direct3D11/Info -IAudio_Systems/None/Info -ICollision_Systems/Precise/Info -IWidget_Systems/None/Info -INetworking_Systems/None/Info -IUniversal_System/Info -I. -IC:/ProgramData/ENIGMA/ -Wall -s -O3 -fno-exceptions  -MMD -MP -c -o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Timelines/timelines.o Universal_System/Extensions/Timelines/timelines.cpp
g++ -I../Additional/i686-w64-mingw32/include -IPlatforms/Win32/Info -IGraphics_Systems/Direct3D11/Info -IAudio_Systems/None/Info -ICollision_Systems/Precise/Info -IWidget_Systems/None/Info -INetworking_Systems/None/Info -IUniversal_System/Info -I. -IC:/ProgramData/ENIGMA/ -Wall -s -O3 -fno-exceptions  -MMD -MP -c -o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/SHELLmain.o SHELLmain.cpp
mingw32-make.exe[1]: Leaving directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mingw32-make.exe[1]: Entering directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Audio_Systems/None/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Bridges/Win32-Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Alarms/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DataStructures/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DateTime/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Timelines/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Widget_Systems/None/
echo "// GENERATED RESOURCE FILE FRONTEND" > C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.rc
for res in Preprocessor_Environment_Editable/Resources.rc; do echo "#include \"$res\"" >> C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.rc; done
windres.exe -o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.res -I. -IC:/ProgramData/ENIGMA/ C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.rc -O coff
g++ -L../Additional/i686-w64-mingw32/lib -static-libgcc -static-libstdc++ -o "d:/tmp/egm8583723487621132820.exe" C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/SHELLmain.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/libEGMstd.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSjoystick.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSmain.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSregistry.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWScallback.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSwindow.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSfilemanip.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSthreads.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSsystem.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSexternals.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11profiler.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11sprite.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11textures.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11colors.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11vertex.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11d3d.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11surface.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11background.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11model.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11shader.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11enable.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11draw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11screen.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11blend.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DIRECTX11Std.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11tiles.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11matrix.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSfont.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSstdraw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSsurface.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GScurves.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSsprite.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSmath.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSbackground.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Audio_Systems/None/fillin.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/PRECimpl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/PRECfuncs.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/placeholderlinks.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Widget_Systems/None/nowidget_impl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/CallbackArrays.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/instance_planar.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/lodepng.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/instance.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/mathnc.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/multifunction_variant.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/highscore_functions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/loading.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/rectpack.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/soundinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/darray.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/callbacks_events.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/bufferstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/transform_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/terminal_io.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/collisions_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/globalupdate.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/move_functions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/reflexive_types.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/planar_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/var4.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fileio.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/lives.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/shaderstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/dynamic_args.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spriteinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/graphics_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/estring.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spritestruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/ENIGMA_GLOBALS.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/resource_data.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/image_formats.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/zlib.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/roomsystem.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/instance_system.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/depth_draw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/var4_lua.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Alarms/alarmcode.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Timelines/timelines.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/path_functions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/pathinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/pathstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/mp_movement.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/motion_planning.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/motion_planning_struct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DateTime/date_time.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_effects.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_emitter.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_attractor.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_actions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_changer.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_updatedraw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_deflector.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_destroyer.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_particles_apiimpl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_sprites.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_type.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_system_apiimpl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_depths.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_system_manager.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_system.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DataStructures/data_structures.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Bridges/Win32-Direct3D11/graphics_bridge.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.res -lffi -lcomdlg32 -lgdi32 -lwinmm -lwininet -ld3dx11 -lz -ldxgi -ld3d11 -ld3dx11
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x9c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x14c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x35c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x40c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x919): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0xb09): more undefined references to `enigma_user::d3d_model_create(int)' follow
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundstruct.o:backgroundstruct.cpp:(.text+0xbec): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontstruct.o:fontstruct.cpp:(.text+0xb82): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spritestruct.o:spritestruct.cpp:(.text+0x14f): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[1]: *** [compile_game] Error 1
mingw32-make.exe[1]: Leaving directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mingw32-make.exe: *** [Game] Error 2

But that was before, when I removed ENIGMA and re-installed + applied your fix, I get a blank screen on DX9/11.

I'm assuming that with your new fix it is meant only to work in OGL1/3 right ?


Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 21, 2014, 05:14:40 pm
Quote
BTW, DX11 and DX9 does not work anymore with particles I would get a blank screen but initially before a re-install, I would get this:
Yes, sorry, apparently I missed something. I fixed it now. The problem is that I didn't see the error before, because I didn't delete the ProgramData/ENIGMA/ folder. So sometimes changes I make to the code aren't actually showing up, so these kinds of bugs can happen. When I asked for a clean build I got the same error and I fixed it. (https://github.com/enigma-dev/enigma-dev/commits/particle_fix) But the bug was only in GL1.

So GL1 and GL3 should work now. DX9 also works for me in that example and several others. But I have noticed that 3D examples like Minecraft doesn't work in DX9. It just loads for a while (a lot longer than it does in GL) and then doesn't draw anything. But I don't think I did that, because that is something I didn't really touch. I also tried current Master (so unrelated to the changes I did in my branch) and I still don't see anything. Robert should look into that. The slow load might be because of a slower getpixel() call (used in the Minecraft example to create the world), but I cannot explain the lack of drawing.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 21, 2014, 05:46:13 pm
No changes, still does not work.

BTW, OGL1 worked before your recent fix, OGl1 and 3, it is DX9 and DX11 that returned the errors I posted above.

DX9/11 still does not work with your particle example:

Quote
Building for mode (0)
Cleaning up from previous executions
 - Cleared parsed objects
 - Cleared room entries
 - Cleared shared locals list
 - Cleared event info
Loading shared locals from extensions list
Location in memory of structure: 4e4caf08
Copying resources:
Copying sprite names

Copying sound names

Copying background names

Copying path names

Copying script names

Copying shader names

Copying font names [1]
Copying timeline names [kidding, these are totally not implemented :P]

Copying object names [1]
Copying room names [1]
SYNTAX CHECKING AND PRIMARY PARSING:
0 Scripts:
"Linking" scripts
`Linking' 0 scripts in 0 passes...
Completing script "Link"
Done.
1 Objects:
 obj_0: 12 events:
  Event[0]:   Parsing 1 sub-events:
Check `obj_0::create... Done. Parse... Done.
  Event[8]:   Parsing 1 sub-events:
Check `obj_0::draw... Done. Parse... Done.
Creating room creation code scope and parsing
"Linking" scripts into the objects...
"Link" complete.
Tabulating maximum argument passes to each script
Finished
Writing executable information and resources.
Writing modes and settings
Writing object switch
Writing resource names and maxima
Writing events
Linking globals
Running Secondary Parse Passes
Writing object data
Writing local accessors
Writing font data
Writing room data
Writing shader data
Running make from `mingw32-make.exe'
Full command line: mingw32-make.exe Game WORKDIR="C:/ProgramData/ENIGMA/" GMODE=Run GRAPHICS=Direct3D11 AUDIO=None COLLISION=Precise WIDGETS=None NETWORKING=None PLATFORM=Win32 CXXFLAGS="-I../Additional/i686-w64-mingw32/include" COMPILEPATH="Windows/Windows" EXTENSIONS=" Universal_System/Extensions/Alarms Universal_System/Extensions/Timelines Universal_System/Extensions/Paths Universal_System/Extensions/MotionPlanning Universal_System/Extensions/DateTime Universal_System/Extensions/ParticleSystems Universal_System/Extensions/DataStructures" OUTPUTNAME="d:/tmp/egm197115060577725745.exe" eTCpath=""
mingw32-make.exe -C ENIGMAsystem/SHELL
mingw32-make.exe[1]: Entering directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Audio_Systems/None/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Bridges/Win32-Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Alarms/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DataStructures/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DateTime/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Timelines/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Widget_Systems/None/
g++ -I../Additional/i686-w64-mingw32/include -IPlatforms/Win32/Info -IGraphics_Systems/Direct3D11/Info -IAudio_Systems/None/Info -ICollision_Systems/Precise/Info -IWidget_Systems/None/Info -INetworking_Systems/None/Info -IUniversal_System/Info -I. -IC:/ProgramData/ENIGMA/ -Wall -s -O3 -fno-exceptions  -MMD -MP -c -o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/SHELLmain.o SHELLmain.cpp
mingw32-make.exe[1]: Leaving directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mingw32-make.exe[1]: Entering directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Audio_Systems/None/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Bridges/Win32-Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Alarms/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DataStructures/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DateTime/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Timelines/
mkdir.exe -p C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Widget_Systems/None/
echo "// GENERATED RESOURCE FILE FRONTEND" > C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.rc
for res in Preprocessor_Environment_Editable/Resources.rc; do echo "#include \"$res\"" >> C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.rc; done
windres.exe -o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.res -I. -IC:/ProgramData/ENIGMA/ C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.rc -O coff
g++ -L../Additional/i686-w64-mingw32/lib -static-libgcc -static-libstdc++ -o "d:/tmp/egm197115060577725745.exe" C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/SHELLmain.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/libEGMstd.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSjoystick.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSmain.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSregistry.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWScallback.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSwindow.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSfilemanip.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSthreads.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSsystem.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Platforms/Win32/WINDOWSexternals.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11profiler.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11sprite.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11textures.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11colors.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11vertex.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11d3d.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11surface.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11background.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11model.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11shader.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11enable.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11draw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11screen.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11blend.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DIRECTX11Std.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11tiles.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11matrix.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSfont.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSstdraw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSsurface.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GScurves.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSsprite.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSmath.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/General/GSbackground.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Audio_Systems/None/fillin.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/PRECimpl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/PRECfuncs.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Collision_Systems/Precise/placeholderlinks.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Widget_Systems/None/nowidget_impl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/CallbackArrays.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/instance_planar.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/lodepng.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/instance.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/mathnc.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/multifunction_variant.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/highscore_functions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/loading.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/rectpack.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/soundinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/darray.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/callbacks_events.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/bufferstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/transform_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/terminal_io.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/collisions_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/globalupdate.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/move_functions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/reflexive_types.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/planar_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/var4.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fileio.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/lives.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/shaderstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/dynamic_args.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spriteinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/graphics_object.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/estring.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spritestruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/ENIGMA_GLOBALS.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/resource_data.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/image_formats.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/zlib.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/roomsystem.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/instance_system.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/depth_draw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/var4_lua.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Alarms/alarmcode.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Timelines/timelines.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/path_functions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/pathinit.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/Paths/pathstruct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/mp_movement.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/motion_planning.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/MotionPlanning/motion_planning_struct.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DateTime/date_time.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_effects.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_emitter.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_attractor.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_actions.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_changer.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_updatedraw.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_deflector.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_destroyer.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_particles_apiimpl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_sprites.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_type.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_system_apiimpl.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_depths.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_system_manager.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/ParticleSystems/PS_particle_system.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/Extensions/DataStructures/data_structures.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Bridges/Win32-Direct3D11/graphics_bridge.o C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/resources.res -lffi -lcomdlg32 -lgdi32 -lwinmm -lwininet -ld3dx11 -lz -ldxgi -ld3d11 -ld3dx11
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x9c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x14c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x35c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x40c): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0x919): undefined reference to `enigma_user::d3d_model_create(int)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Graphics_Systems/Direct3D11/DX11primitives.o:DX11primitives.cpp:(.text+0xb09): more undefined references to `enigma_user::d3d_model_create(int)' follow
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundstruct.o:backgroundstruct.cpp:(.text+0xbec): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontstruct.o:fontstruct.cpp:(.text+0xb82): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spritestruct.o:spritestruct.cpp:(.text+0x14f): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[1]: *** [compile_game] Error 1
mingw32-make.exe[1]: Leaving directory `D:/enigma/ENIGMA/enigma-dev/ENIGMAsystem/SHELL'
mingw32-make.exe: *** [Game] Error 2

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 22, 2014, 12:09:31 am
//update:

Please note DX11 is completely broken, whether particles are used or not, it returns the above long list of errors.

OGl1, ogl3, DX9 works. particles or not.

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 22, 2014, 05:18:02 am
Well DX11 was never finished (or even close to being finished) so it doesn't even have code for basic drawing. So you shouldn't try to use it.
But DX9 should work. Try deleting /ProgramDATA/ENIGMA/.eobj folder. So it's a clean build. You can also try Build>Rebuild All, which should technically do the same.
When doing a clean build the particle example works for me in DX9. The "undefined reference to" basically means something hasn't been recompiled. If the clean build doesn't work, then try searching for "DX9primitives.o" or any other DX9 .o file it errors about. I had this some time ago, that Windows7 puts files into subfolders and then links them back. So the program finds the files, while the user has an empty directory at that folder. It's some kind of "Security"/Compatibility feature apparently.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 22, 2014, 12:20:59 pm
Well DX11 was never finished (or even close to being finished) so it doesn't even have code for basic drawing. So you shouldn't try to use it.
But DX9 should work. Try deleting /ProgramDATA/ENIGMA/.eobj folder. So it's a clean build. You can also try Build>Rebuild All, which should technically do the same.
When doing a clean build the particle example works for me in DX9. The "undefined reference to" basically means something hasn't been recompiled. If the clean build doesn't work, then try searching for "DX9primitives.o" or any other DX9 .o file it errors about. I had this some time ago, that Windows7 puts files into subfolders and then links them back. So the program finds the files, while the user has an empty directory at that folder. It's some kind of "Security"/Compatibility feature apparently.

Thanks, will try.  even though my GPU is DX11 hardware, I use DX9 anyway, I don't see much use for that in ENIGMA made games if specific features are not used for the purpose of the game, but I mentioned DX11 as not working for testing purposes, as before when you applied your first fix, the particles was working fine under DX11.  After a recent fix, it broke.  More so, it broke for any project, even with particles disabled (extension off), which did not happen before.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 22, 2014, 03:08:16 pm
Are you 100% sure DX11 worked for you before? Because that system lacks VERY important code to actually run. Even after I did the changes I couldn't compile it because it lacks functions like "graphics_get_texture_pixeldata" which is important for the engine. DX11 was never finished as I know, so I don't see how it even ran for you. Maybe even if it did ran, it should of just showed a blank screen.

Robert, was DX11 operational?
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 22, 2014, 03:29:27 pm
Harri, it should be able to compile an empty game and do draw_clear as well as by default clear the background color, it used to, however I am getting undefined references locally.

Code: (Bash) [Select]
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundstruct.o:backgroundstruct.cpp:(.text+0xbec): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/backgroundstruct.o:backgroundstruct.cpp:(.text+0xbec): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontstruct.o:fontstruct.cpp:(.text+0xb82): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/fontstruct.o:fontstruct.cpp:(.text+0xb82): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spritestruct.o:spritestruct.cpp:(.text+0x14f): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'
C:/ProgramData/ENIGMA/.eobjs/Windows/Windows/Run/Universal_System/spritestruct.o:spritestruct.cpp:(.text+0x14f): undefined reference to `enigma::graphics_get_texture_pixeldata(unsigned int, unsigned int*, unsigned int*)'

Looks like I forgot to check if it built after my last image changes for BGRA instead of RGBA.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 22, 2014, 03:32:44 pm
So it shouldn't have drawn particles right? :D

Right now I get "graphics_get_texture_pixeldata" which might be because the particle system tries to create a sprite, but DX11 doesn't have this capability right now. So I guess I will commit even these changes, as broken DX11 isn't a tragedy (as it cannot even draw a sprite). At least when you continue to work on it the particle system would work as well.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 22, 2014, 03:34:28 pm
After the following 1 line change it works again locally for me.
https://github.com/enigma-dev/enigma-dev/pull/700

And no don't expect it (D3D11) to draw particles.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 22, 2014, 04:35:46 pm
Are you 100% sure DX11 worked for you before? Because that system lacks VERY important code to actually run. Even after I did the changes I couldn't compile it because it lacks functions like

Yes I am 100% positive unless I have totally gone crazy :D  You can even see my posts confirming it did.  When you made the fix I tried OGl1,OGl3, DX9/11. 
But after a recent change, DX11 does not even work, regardless of whether particle is used or not, even on blank project.

Quote
"graphics_get_texture_pixeldata" which is important for the engine. DX11 was never finished as I know, so I don't see how it even ran for you. Maybe even if it did ran, it should of just showed a blank screen.

CRAP I am losing my mind maybe ! LOL!  ;D ;D ;D

It worked, I know it did :P Don't ask how, and no it was not a blank screen, I was even surprised that it worked on all DXs. :D

And before this particle fix, I was playing around with ENIGMA just trying things, and for fun compiling things with DX11, and it always compiled and ran fine.  Now it does not, and it's not about the particles.

Maybe something was automatically reverting to DX9 ? Dunno.

I do this only for testing purposes, but in my game I would always use the DX9 system, it's pointless to use DX11 for me.
BTW, don't most games still use DX9 anyway ? DX10 in some cases, but rarely full DX11 or any DX11 :D

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 22, 2014, 04:39:20 pm
It's theoretically possible it could have ran as I did already write the model code, but there is no texture interface, and the least I get is usually a crash, I haven't worked on it in a while.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 22, 2014, 05:10:50 pm
I even suggest using GL1 or GL3 instead of DX, as most people can run those just fine.
Anyway, with all the changes merged DX11 should compile (although without rendering anything just like before). Also Robert will probably update the installer later and all will be good with the world. Or we just broke the whole thing *flips table*.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 22, 2014, 05:18:26 pm
I even suggest using GL1 or GL3 instead of DX, as most people can run those just fine.
Anyway, with all the changes merged DX11 should compile (although without rendering anything just like before). Also Robert will probably update the installer later and all will be good with the world. Or we just broke the whole thing *flips table*.

LOL you should be more confident than that :D

IN worses cases I'm assuming you have back ups to revert to right ?!?!?!?

Breaking stuff is part of the whole deal when you work with software, and in ENIGMA's case they get fixed, in YoYo's case they trail on forever and get broken further until they simply get abandoned or removed.

When I come back later this evening I will test everything, I seem to be a bug magnet :D and will let you know if it works on my end.

Thanks.

P.S.

Quote
I even suggest using GL1 or GL3 instead of DX, as most people can run those just fine.

Care to elaborate ?

BTW, wouldn't a person need GL3 compliant hardware to run GL3 ?  I'm assuming most people can run OGL1 :D 

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 22, 2014, 05:36:42 pm
Quote
Also Robert will probably update the installer later and all will be good with the world. Or we just broke the whole thing *flips table*.
lmfao, I'll update as soon as you can confirm text drawing works while particles are rendering, they wouldn't for me in the example you sent me, but it could also be because I am on an out of date repo.

Edit: I can confirm that they work after pulling Harri's changes and fixing the font ranges to have less than 500 characters, uploading the new Portable ZIP now.
(http://i.imgur.com/Xm8yvHt.png)

Also, Harri, I want to take a second to mention, we are not going to drop support for the collision detection with particles, we can very easily optimize it out, colliding particles is actually a new feature of Unreal Engine 4 they do it in hardware though using OpenCL.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 22, 2014, 05:44:30 pm
Quote
Also Robert will probably update the installer later and all will be good with the world. Or we just broke the whole thing *flips table*.
lmfao, I'll update as soon as you can confirm text drawing works while particles are rendering, they wouldn't for me in the example you sent me, but it could also be because I am on an out of date repo.

Ahhh yes I missed that part.  Here's another funny thing.  In the particle example text drawing was working fine for me on ALL gfx systems :D

But here's the weirdness, I tried making a GML from scratch, and using draw text and whilst particles were being drawn or even image alpha used, text would not be shown :(

I kinda made draw text work by placing draw text inside a draw GUI event and not a Draw event and
it worked.  Keep in mind that testing was after Harri's previous to last fixes :D

When I come home later tonight I will test everything and hopefully ENIGMA is still in one piece lol.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 22, 2014, 05:51:52 pm
I just tested drawing text in an empty game, Harri's example, and Gregs sprite font, and my sprite font, while I was uploading and it all works good so go test yourself with the Portable ZIP and it should be all good.
http://enigma-dev.org/docs/Wiki/Install:Windows
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 22, 2014, 06:41:40 pm
Quote
BTW, wouldn't a person need GL3 compliant hardware to run GL3 ?  I'm assuming most people can run OGL1 :D 
While for some reason this project is some kind of magnet for bad hardware, usually in the wild you will not be able to find anything that cannot run GL3. If you try reading stuff on Stackoverflow, then even back in 2011 people were suggesting targeting GL3.1. So in 3 years I guess there is virtually no reason to. All Intel (the only culprit) GPU's that are built into CPU's also support GL3 just fine. Just like AMD CPU's do. They even support GL4 since about 2012. So there is really no reason not to use GL3. But if you don't do anything GL3 specific (like shaders), then you can run with GL1 and it might even be faster. On Windows you can use DX as well. I just mentioned that because GL is usually better maintained here.

Quote
Also, Harri, I want to take a second to mention, we are not going to drop support for the collision detection with particles, we can very easily optimize it out, colliding particles is actually a new feature of Unreal Engine 4 they do it in hardware though using OpenCL.
We have deflectors and attractors now (I think) and I don't plan to remove anything. I don't think they have general purpose collision detection though. If we want to make GPU based particle system then I suggest it to be a different extension (also for compatibility). UE4 thing is cool, but I am not sure they use OpenCL though. I do know they have a clever use of depth buffer for collisions as seen in this video (https://www.youtube.com/watch?v=RURQSR788Dg), but I think they use the buffer in shaders to update particles.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 22, 2014, 06:46:57 pm
I think it said OpenCL in that video I watched last night, I don't know I can't find anything specific now but it is getting praise for being in the GPU.
https://www.google.com/#q=unreal+engine+4+particle+collision
Quote from: Google
Unreal Engine 4: next-gen gaming effects | fxguide
www.fxguide.com/featured/unreal-engine-4-next-gen-gaming-effects/‎
Oct 22, 2013 - Unreal Cascade is the Unreal Engine's built-in visual effects editor. ... GPU particle simulation and collision and more in the Unreal Engine 4 ...
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 22, 2014, 10:50:35 pm
Oh my ! what a mess where do I begin :D

There are things not working right, but first:

1) Tested particles, they work in OGL1 and OGL3 same speed as last bench.  DX11 displays black blank screen and so does DX9 !, DX9 worked for particles before.
and I could have sworn DX11 did it  does not matter, I know DX9 did.  So no Harri, particles do not work even in DX9.  Blank screen, so does DX11.  :D

NOW other than particles I found other bugs in ENIGMA;

Here is what I have set up. 
1 sprite ( a block square 64x64)
1 object
1 room
1 instance placed in room

keyboard up increases image alpha by .5
keyboard down decreases image alpha by .5
draw event draw text "image alpha: " and the value of image alpha.

In DX9, the word image alpha is not displayed correctly on screen, the last few characters are gibberish, but strangely I can see the numbers increasing but when it arrives at 1, the 1 does not display correctly.

In OGL1, the text is displayed correctly.

But that's not all...... When increasing/decreasing with keyboard I can see the draw text change but there is no sprite being shown on screen !  Not when there is a draw event.

If I were to remove the draw event completely,

the up/down would control image alpha and the white square would fade in/out and display correctly.

I'm assuming draw text can only be placed in draw events right ?

The only way to make it work is using draw GUI
instead of draw....why ?  The square is fixed and not moving.

I am including my project
https://www.dropbox.com/s/hfdikmyxqz7yw92/ImageAlpha1.egm

I explained all the repro steps above.
by default I set it at DX9, when you run it
pay close attention to how image alpha is displayed
on the screen.  use up / down, you notice
nothing is shown on screen, there should be a white square !

Now use OGL 1.1, text is displayed properly, still no white square.

Now delete draw event (don't just remove the draw text code but delete the draw event completely as leaving draw event blank will also cause the white box not to show !

Once you delete draw event, run and use up/down, the white square fades in/out and displays fine.

So we have 2 problems here.

:D

oh I forgot to add this in, before I get asked, yes I deleted the programdata and temp folders and re-installed ENIGMA using the latest portable!


// update:

Ok figured out why the sprite was invisible when draw event is used, forgot the draw_self();
Please add draw_self(); to the draw event
after the draw text.  This function is not even documented or even mentioned in the wiki ;)

The other issue with text not displaying right still stands, in DX9.

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 23, 2014, 01:41:57 am
I was so confused by your post, you mean the 7.45058e-010 shit Darkstar2? Yeah that is normal, it is called scientific notation and you see it on calculators too with numbers that are too high precision, e is just the logarithmic base. GM however has never displayed scientific notation, I was confused by this as well, basically just use string_format if you don't want that good of an accuracy with printing floating point variables.

Here is the documentation for string format.
http://enigma-dev.org/docs/Wiki/String_format

https://en.wikipedia.org/wiki/Scientific_notation#E_notation

Originally I was opposed to ENIGMA doing scientific notation until I realized how retarded Studio is by drawing really precise numbers, this was a support ticket I used to have open.
https://github.com/enigma-dev/enigma-dev/issues/471

Anyway, the text disappears when you minimize or unfocus the frame in Direct3D because models are destroyed in memory. I am still having trouble getting that shit coded properly, it does not occur in OGL and will never be an issue.

Anyway, as Harri said there is no real point in using Direct3D except that on Windows the runtime is usually installed on the end users PC, so your game will be like 1mb smaller at max because OGL binaries are not included. On certain hardware Direct3D may also perform better, I notice on my hardware it is better with static models, but OGL appears to be better with dynamically batching things.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 23, 2014, 02:13:48 am
Nope that's not what I meant lol and sorry for confusing you I thought I had explained it well  ;D ;D ;D
Yes I noticed the scientific shit but I figured why, and so I did not mention it :P

Re-read my post.

the last few bytes don't display properly.

should have posted a screenshot :D

Run my EGM and raise the alpha way up to 1, look at how 1 is displayed - in dx9 it does not show "1" but some garbled text.

the last letter in alpha (the a is garbled too).

In OGL it renders fine.

Here is the screenshot:

(http://s29.postimg.org/y0aa0gjfb/crazy_Bug1.gif)

I underlined the part I am talking about

it is supposed to read image alpha: 1

Clearly that weird letter at the end is not an a, and that 1 is not a 1.

in OGL it displays fine.

Only does this in DX.

Did you run my EGM file ?

Was I right to add draw_self(); in draw event after the draw_text ? That's the only
thing that allows the sprite to display properly, otherwise only the text gets drawn and no sprite, and yes even without the draw self the text still exhibits the bug.

Also draw_self() is not listed on your wiki.




Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 23, 2014, 02:37:19 am
Well anyway, I pretty wrote all of the Direct3D code, so I don't necessarily guarantee that any of it works at all :)

But I filed a bug report as this is too trivial to look at for now, OGL works perfect.
(http://i.imgur.com/O2HxsWv.png)

You are welcome to add details if you like.
https://github.com/enigma-dev/enigma-dev/issues/702
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 23, 2014, 04:04:41 am
So you are telling me it works on your end.
:P

What about the draw_self()
it is not documented on the wiki :)

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 23, 2014, 04:09:19 am
No look closely the m is fucking up for me, where as the number 1 is fucking up for you. Which is wierd, but it's doing it in D3D9 for both of us.

Anyway, draw_self is documented.
http://enigma-dev.org/docs/Wiki/Draw_self

For some reason it is listed on the Sprite Functions page.
http://enigma-dev.org/docs/Wiki/Sprite_Functions
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: TheExDeus on April 23, 2014, 04:38:03 am
Quote
Was I right to add draw_self(); in draw event after the draw_text ? That's the only
thing that allows the sprite to display properly, otherwise only the text gets drawn and no sprite, and yes even without the draw self the text still exhibits the bug.

Also draw_self() is not listed on your wiki.
Yes, you need to draw the sprite when using the draw event. This has been true since the very beginning of GM (I guess version 1.0) and is clearly documented. http://docs.yoyogames.com/source/dadiospice/000_using%20gamemaker/events/draw%20event.html
Quote
the default draw, which is when you define the sprite in the object properties and place no actions or code in the normal draw event, in which case GameMaker: Studio will draw that sprite, but note that any transforms you perform in other events to change the image scale, index, blending etc... will be reflected too as long as the draw event is empty.

        the custom draw, which is when you place code or actions in the draw event. This is telling GameMaker: Studio "I want to control what you draw for instances of this object" and it completely over-rides the default draw. This means that you can have an object with a sprite assigned, then set the draw event to draw text and the sprite will not be drawn as you have not told GameMaker: Studio to draw it.
It even describes exactly your example in the "Custom draw" part.
Also, a lot of things are not documented in ENIGMA wiki.

Quote
Blank screen, so does DX11.  :D
We already determined that blank screen is all you will ever get in DX11. It just doesn't have any code associated with drawing. It cannot load textures, it cannot draw sprites. So you just hallucinated previously. So testing with DX11 is not required as you will not ever see anything until it's properly finished (which can be in a time frame from "a month" to "never").

Robert, can you test DX9 in the newest master? I cannot replicate his blank screen in the particle example. I can replicate it in 3D examples, but that was like that before I touched anything.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 23, 2014, 02:14:10 pm
Yes, you need to draw the sprite when using the draw event. This has been true since the very beginning of GM (I guess version 1.0) and is clearly documented.

I only started using GM at version 7, but used it more officially since GM8.  Previous to that I was aware of GM5/6, and wasn't GM1 an animation program and not actually a GM tool ? :P

When I didn't see the sprite I somehow remembered reading somewhere about this and applied it.  I don't recall ever using draw self in GM8.1.

Also, if using Draw GUI instead of Draw, you don't need draw_self :)


Quote
  So you just hallucinated previously. So testing with DX11 is not required as you will not ever see anything until it's properly finished (which can be in a time frame from "a month" to "never").

I'm sure nobody is in a rush to use DX11 anyway :D  And no I did not hallucinate, not reached that stage yet lol.  Perhaps it was automatically reverting to DX9 ? I'm quite sure I saw drawing on ALL engines, because originally when I first used ENIGMA I was curious to experiment with all systems, and sure I used all gfx systems and they all worked.

Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Darkstar2 on April 23, 2014, 02:16:57 pm
No look closely the m is fucking up for me, where as the number 1 is fucking up for you. Which is wierd, but it's doing it in D3D9 for both of us.

Anyway, draw_self is documented.
http://enigma-dev.org/docs/Wiki/Draw_self

For some reason it is listed on the Sprite Functions page.
http://enigma-dev.org/docs/Wiki/Sprite_Functions

Ok made further tests today, I managed to fix it, well sort of.

If you use the draw_text plain without specifying fonts, it will exhibit weird shit.
So I went in and added a font resources in LGM, inputed Image Alpha:0123456789
and saved. 

In Create event I added the line
draw_set_font(font_0);

(Since font_0 is the name I used in this example).

Setting up and specifying fonts made it work and display properly.

I hope this gives you some clues as to how to fix the problem. 

It's funny that in OGL you don't specify a font and it works.

Perhaps an issue with default settings of something?

Hope this helps.

Just would like to add that with his original fix DX9 was working for particles.
the blank dx9 for parts only occurred during latest changes.
Title: Re: Are particles working in ENIGMA? Not for me !
Post by: Goombert on April 23, 2014, 02:52:12 pm
TheExDeus, yes I can, Direct 9.0 does not draw anything in this particular example, not the particles, not even the text.