Also, the opengl matrix stacks were part of the "fixed function
pipeline". It was totally removed in openGL 4 and replaced by the
programmable  shaders. You can read about it on Joe's blog:
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html
Jon


On Sun, Apr 24, 2016 at 8:45 PM, Jon Harper <jon.harpe...@gmail.com> wrote:
> Hi,
> do-matrix is a very thin wrapper around glPushMatrix and glPopMatrix
> (https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml), so for
> a theoretical explanation, I suggest you read about linear algebra
> (how a matrix can represent a linear transformation such as a
> translation, a rotation, a projection, etc) and the openGL matrix
> stacks used in the rendering pipeline (how opengl transforms your
> coordinates). But to explain everything, you will need more than a few
> words...
>
> From a more practical point of view, the do-matrix call in tetris
> means that the effects of the call to "glScalef" (in  "scale-board")
> end after do-matrix returns. Note that since factor also uses
> do-matrix to call the draw-gadget* word, it would have ended after
> draw-gadget* returned anyway.
>
> Also, if you don't use openGL functions that modify the current matrix
> (see 
> http://docs.factorcode.org/content/article-opengl-modeling-transformations.html),
> the do-matrix word doesn't do anything for you.
>
> Hope that helps,
> Jon
>
> Jon
>
>
> On Sun, Apr 24, 2016 at 7:22 PM, Alexander Ilin <ajs...@yandex.ru> wrote:
>> Thanks fore the reply!
>>
>>   Could someone explain to me in a few words what is do-matrix used for?
>>   I'm not sure I need it, I just copied the code from the tetris example.
>>
>> 24.04.2016, 19:51, "John Benediktsson" <mrj...@gmail.com>:
>>> You can log to the terminal/console standard output using:
>>>
>>>     [ "foo" . ] with-global
>>>
>>> The problem with your listener output issue is probably pref-dim is called 
>>> before the new window opens and draw-gadget is called after and the 
>>> output-stream (initially set to the listener) is rebound to something other 
>>> than the listener you expect it to be.
>>>
>>> You could also save the listener output stream somewhere:
>>>
>>>     SYMBOL: my-output-stream
>>>
>>>     output-stream get my-output-stream set-global
>>>
>>> Then use it to make sure output goes to the right place:
>>>
>>>     my-output-stream [ "foo" . ] with-output-stream
>>>
>>> There are other ways maybe to make that cleaner but if you only need debug 
>>> output that should fix it for you.
>>>
>>>>  M: iqlink-gadget draw-gadget*
>>>>   drop [ origin get { 5 5 } gl-fill-rect ] do-matrix "draw-gadget*" . 
>>>> gl-error ;
>>
>> ---=====---
>>  Александр
>>
>> ------------------------------------------------------------------------------
>> Find and fix application performance issues faster with Applications Manager
>> Applications Manager provides deep performance insights into multiple tiers 
>> of
>> your business applications. It resolves application problems quickly and
>> reduces your MTTR. Get your free trial!
>> https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
>> _______________________________________________
>> Factor-talk mailing list
>> Factor-talk@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/factor-talk

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Factor-talk mailing list
Factor-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to