Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Goombert

1021
General ENIGMA / Re: New functions available in the rooms editor.
« on: August 02, 2014, 03:33:58 PM »
Egofree, another thing I think would be cool that Studio does partially is add the handles to the corner of the selection box, but expand upon that by allowing you to draw those handles for scaling and rotation.

1022
Programming Help / Re: image_angle & view_angle : problem !
« on: August 02, 2014, 03:32:24 PM »
The orthographic projection function offers rotation, try that out and see how it works.  (Y)

1023
Proposals / Re: Flipping, scaling and rotating instances
« on: August 02, 2014, 03:18:08 PM »
Ok, that sounds fine then, I just didn't originally hear about this proposal and didn't think it would be feasible, but alright I am on board with this then.

1024
Developing ENIGMA / Re: Font Pixel Alignment
« on: August 02, 2014, 03:14:35 PM »
Quote from: JoshDreamland
Considering it alternates, the only logical conclusion is that someone is adding floating point numbers to the font spacing accumulator, which I told Robert would require rounding before drawing at those coordinates. It seems he's figured that much out.
Yes, glyph->xs is float remember?
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Universal_System/fontstruct.h#L32
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Universal_System/fontinit.cpp#L137

Quote from: JoshDreamland
With interpolated lines, it'll also be clear really quick that the projection is not half-pixel aligned.
I am sorry but you are incorrect, this is the entire reason GM8.1 < have the option to enable interpolation to make scaling and rotating sprites smoother. Half pixel aligning the projection just attempts to mask the interpolation/blurring because apparently some people do not understand the purpose.

I have only noticed issues such as gaps between scrolling backgrounds with the projection being pixel aligned. Also important to note is that when characters are drawn at whole integer coordinates they appear EXACTLY the same between Direct3D and OpenGL, the exact same coordinates, spacing, and everything down to each and every pixel.

And again, what about people that want scrolling text to interpolate smoothly?

1025
Programming Help / Re: image_angle & view_angle : problem !
« on: August 02, 2014, 03:08:57 PM »
Actually, I believe those tile gaps could be the result of the offset in the projection functions, since they also cause gaps in my scrolling background. This is why I am being adamant about fixing the text drawing functions to prove we don't need offsets to our projection functions.

1026
Programming Help / Re: Where do I find ENIGMA's API?
« on: August 02, 2014, 03:06:26 PM »
Don't forget the CLI can build a ton of games now as well. It just needs polished up, and it still don't support fonts.



1027
Off-Topic / Re: NakedPaulToast
« on: August 02, 2014, 03:03:26 PM »
Relax TKG, all I was saying was I got the opposite interpretation of what you were saying, I thought Dailly was the real troll and not NPT, but that was an error in judgement.

1028
Programming Help / Re: Where do I find ENIGMA's API?
« on: August 01, 2014, 11:50:48 PM »
The reason nobody takes the Java conversion seriously is because you simply can't expect a converter to just take Java code and spit out perfectly optimized C++ they are after all two completely different languages and a lot of the subtleties do make a difference. This is why for us seasoned developers it's easier to just rewrite it correctly from scratch ourselves than to piss around correcting all the issues with generated code. Not to mention if you write it yourself you can take baby steps along the way testing and getting individual features working, instead of just converting a giant 20,000 line project (which is what LGM is) and then trying to figure out how to get all the generated code working. Generators are more work than you are bargaining for is basically what I am saying.


Don't forget, RadialGM I rewrote the GUI components of all of LateralGM's editors in two days. It's not that much work, ENIGMA is just a very large project, and it can't really make progress with so few developers.

1029
Developing ENIGMA / Re: Font Pixel Alignment
« on: August 01, 2014, 11:45:22 PM »
Lack of padding is noticeable in every one of the screenshots except the last. And the near invisibility of the text is because it's so small if it were a bigger font that would not be the case, only the edges would be that way, the font is so small and skinny the character is practically all edge.

The essence of this entire post is that I was able to draw perfectly crisp text that looks completely uninterpolated with interpolation enabled under special circumstances! I am actually interested to understand more about how interpolation and text filtering is calculated, it seems odd to me that it would have anything to do with screenspace.

1030
Proposals / Re: Flipping, scaling and rotating instances
« on: August 01, 2014, 11:43:34 PM »
Uhm, do you realize the changes that would require to the compiler? Instead of just adding the variables to the backend which takes me like 3 seconds to do and then you all update, you want me to dick around for a couple of days adding a pre-create event? What you are proposing is like a pre-constructor for C++?

I am a tad shocked at what you're suggesting...

1031
General ENIGMA / Re: ENIGMA prototype bindings for SDL
« on: August 01, 2014, 11:37:59 PM »
Hey sorlok, I actually tested around and had ENIGMA working before with SDL as well too shortly before I abandoned it. I just want to mention that I do not think replacing our joystick code with SDL is a good idea purely because we've already written the Linux and Windows counterparts, so adding SDL would just add more overhead to the implementation, there's no point in other words. However for the SDL platform it should rely on SDL for joystick functions. Now however, some people just like SDL, and may like the fact that it works for all platforms for window management so it makes it less likely to break for just one. Another important thing to note is that you should move all of the SDL_GL stuff out to a bridge, it should not be in the platform folder because we can also build SDL with Direct3D and no platform should have graphics system specific code. All of these systems are supposed to be agnostic.

At any rate, I think it's not worth the effort sorlok, we already have the native implementation of each platform with most of all functions and it is much less overhead this way, this is why I ultimately gave up on the idea of abstraction layers. I mean look at Studio, it is basically a cross-platform DX emulator, a lot of GML constants are Direct3D fixed-function pipeline, meaning old and outdated DX constants...

But hey you do what you want, either way I still support you, you're a good contributor!

1032
Programming Help / Re: Where do I find ENIGMA's API?
« on: August 01, 2014, 06:31:21 PM »
Haha, don't be hard on yourself he nor I really give a shit, I just like to point out when people misunderstand something, I don't know why I have a phobia of myself or someone else misunderstanding something or anything.

Anyway ed, it requires a tad bit of knowledge of everything. I am not really sure what you mean by draw room, so I presume you mean draw all the instances in the room and clear the background color, and that is handled by screen_redraw which is in Graphics_Systems/OpenGL1/GLscreen.cpp

That function clears the background, the background color, sets the viewport and the default project and runs through every objects draw event. However, for more simpler things such as our variant data type where you can simply include Universal_System/var4.h in your C++ project.

1033
Programming Help / Re: Where do I find ENIGMA's API?
« on: August 01, 2014, 05:06:10 PM »
edsquare, Harri def. knows what an API is he just didn't know what you meant in context. Using ENIGMA in C++ is pretty easy, just copy and paste ENIGMASystem/SHELL and have your C++ program run make on it and use namespace enigma_user for all GML functions.

1034
Developing ENIGMA / Re: Font Pixel Alignment
« on: August 01, 2014, 03:12:18 PM »
Quote from: JoshDreamland
The purpose of padding is to prevent noise around glyph bounding rectangle edges from nearby glyphs being interpolated across those boundaries.
This is the single most important thing you guys should pay attention to, this is why I suggested downloading and examining the screenshots above at a closer view. This is only one of our issues.

Quote from: JoshDreamland
This is due to the fact that every time someone tries to half-pixel align ENIGMA's orthographic projections, as they should be, there's a 16-week debate about how this actually makes some cards rendering worse.
Because there is no need to align our projection functions to fix issues in draw text. That was the ugliest hack ever.

Quote from: JoshDreamland
Every other glyph is drawn correctly, which means to me that someone is adding half-pixels to the font coordinates and not rounding them before drawing.
Yes, glyph->xs is float remember?
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Universal_System/fontstruct.h#L32
https://github.com/enigma-dev/enigma-dev/blob/master/ENIGMAsystem/SHELL/Universal_System/fontinit.cpp#L137

Basically, what I am saying here you guys is this. First thing we want to do is get either all of the characters at half pixels or none of them at half pixels, that will allow smooth transition with scrolling text. Then we need to make sure the characters appear at the same locations in Direct3D and OpenGL. Then we need to add padding to the font texture. Then we can add blocking of texture interpolation on text rendering functions.

1035
Programming Help / Re: Where do I find ENIGMA's API?
« on: August 01, 2014, 03:09:23 PM »
Quote from: TheExDeus
ENIGMA isn't meant to be used outside ENIGMA.
Yes but there is no need to limit its capabilities of doing so.

Anyway, here are some places to get started.
http://enigma-dev.org/docs/Wiki/Module_hierarchy
http://enigma-dev.org/docs/Wiki/ENIGMA:Developing
http://enigma-dev.org/docs/Wiki/Graphics_Systems/
http://enigma-dev.org/docs/Wiki/Compilers/

You really just have to use the search functionality of the Wiki, this stuff is all over the place, I haven't really had time to organize it.