r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Ann-Reply] Reply to Announce group

Maxim
27-Oct-2010
[2207x3]
henrik yes.  the openGL CGR use the "container" rendering mode which 
allocates a windows control from scratch and adds it to the window.


then when you call show, it gets notified of the change in size and 
automatically updates the control and gl viewport & camera
notice that I do not call show on it in animation.  I call refresh, 
which bypasses view and makes it *much* faster.
henrik, I'll wait for the next release of r3-gui.  I wasn't able 
to launch the style browser.. it gave some error.
Henrik
27-Oct-2010
[2210x2]
cool, I'd like to see a demo with styles, if possible. that will 
be a good indicator of real-world viability of the extension.
Maxim, I'll build a new r3-gui.r for you.
Maxim
27-Oct-2010
[2212x2]
ok, I'll try it out tomorrow.. its 5AM here... got to go get some 
sleep :-)
if you can do one thing to help me.... make a style which doesn't 
allocate any of the gob type data.  (color, text, draw etc) so that 
when you print the gob its basically a none gob.
Henrik
27-Oct-2010
[2214]
ok, cool
Maxim
27-Oct-2010
[2215x3]
I use the none type gob as an indicator that it *might* be a cgr, 
this allows me to quickly check any face without it being to slow 
to retrieve the CGR internal data.
I hope Carl and I will agree on some definite way to allow some kind 
of custom data extension.
I need an extra pointer in the C gob structure.  cause basically, 
all the renderer data is gob-centric... right now I'm allocating 
an array and iterating through it which isn't very optimal, though 
this makes it 100% safe in the current host-kit.
Pekr
27-Oct-2010
[2218]
Two consecutive runs cause following:

>> do %opengl-complex-tree.r3
Script: "Untitled" Version: none Date: none
Script: "Untitled" Version: none Date: none
IMPORTING LIBS
CANNOT SET CGR LIB MORE THAN ONCE (cgr_opengl.dll)
====================================
OpenGL CGR initialization:
registering polygon primitive
register-primitive() [
        valid-prim?() [
        ]
        cgr-name() [
                OpenGL
        ]
]
====================================
Script: "Untitled" Version: none Date: none


then it stops for a while, then it shows window, and outputs other 
stuff to console ....
Oldes
27-Oct-2010
[2219]
Pekr, profesional way is to use tool like: http://www.fraps.com/faq.php
I have 60fps for torus example
Maxim
27-Oct-2010
[2220x4]
which is the max allowed by wait 0.01
yes pekr... as noted in the help message, you can only import the 
cgr lib once... if you do a script which already imports the cgr 
lib it will complain.
if you are showing the tree-heavy, its a 170000 vertice model which 
ways 15mb on disk and 50mb in ram !
on my system tree-heavy averages 8fps at any window size. 


the reason its this slow is that I'm not using any kind of smart 
opengl video ram caching atm.  this will obviously be done in time... 
for now I still need to implement things like a real camera primitive, 
lights and materials.
Henrik
27-Oct-2010
[2224]
I suppose the file format could use some compression. Or you could 
make an .obj importer, which I think already exists for R2.
Oldes
27-Oct-2010
[2225]
With the heavy tree I have 20fps but I can hear strange sound from 
my notebook.
Pekr
27-Oct-2010
[2226]
max - why don't you use more precise wait?
Maxim
27-Oct-2010
[2227x3]
oh... if there is an .obj importer I'll use it.
yes oldes,  I am hearing it too... I have NO CLUE what that is.
possibly the gpu fan is getting a little hit at every frame.
Pekr
27-Oct-2010
[2230]
your CPU is crunching :-)
Maxim
27-Oct-2010
[2231]
in games, it won't be as obvious cause its not doing an exact same 
cycle at each refresh.
Oldes
27-Oct-2010
[2232]
I don't think it's caused by fan and I'm sure it's not good for hotebook's 
health:)
Maxim
27-Oct-2010
[2233]
pekr... wrt wait, cause I didn't have time to add MM timers to the 
host yet.
Oldes
27-Oct-2010
[2234]
ech.. hotbook.. good name for mine:)
Maxim
27-Oct-2010
[2235]
Oldes, the other thing I am thinking is that it might be the disk 
paging some stuff.
Pekr
27-Oct-2010
[2236]
why you should do it? IIRC, we already have more precise timers ...
Maxim
27-Oct-2010
[2237x4]
not timers... counter... not the same thing.   precise counters use 
the Clock frequency to measure time differences.
they don't trigger events.
MM timers use more precise interrupts so allow sub ms event timing.
though they are deprecated starting in vista, in preference to queued 
events, which I think aren't as precise.
Henrik
27-Oct-2010
[2241]
seems like the .obj importer/viewer script is gone, but the script 
may have been done by a Jan Skibinski. I clearly remember seeing 
a script that displayed a green model of R2D2 in a regular R2/View 
window.
Pekr
27-Oct-2010
[2242x2]
btw - http://www.rebol.net/r3blogs/0088.html
Max - scrap the MM thing. We don't need another non supported timers. 
Queued timers is the way to go then ...
Maxim
27-Oct-2010
[2244x4]
that is only true on linux.
Windows... the OS doesn't allow sub 15ms timing. using standard window 
events... its hard-coded in the event engine.
it doesn't really matter from the r3 script's point of view.   but 
MM timers are a bit more precise since they even allow for audio 
frequency precise timing.
the issue is that in vista/win 7 there are new multi-media libraries 
which aren't accessible by WinAPI which sucks.
Pekr
27-Oct-2010
[2248x2]
http://www.codeproject.com/KB/system/timers_intro.aspx
Queue timers is the only way to go ...
Maxim
27-Oct-2010
[2250x2]
yep, I read the whole MSDN section on the differences between queue 
and MM timers, they both have advantages.
MM timers where replaced by new stuff in the new interface system 
which is part of silverlight/net  I can't remember the name of it.
Pekr
27-Oct-2010
[2252]
Does deprecated means - still awailable, but not suggested to be 
used? I mean - what if Win 8 in 2 years removes them?
Maxim
27-Oct-2010
[2253x4]
the way I see it, win8 will remove a lot more than MM timers.
but really, its not a big deal what is used as long as the r3 API 
doesn't change from one OS to the other.
Cyphre and I prefer to use timer setup funcs rather than merge them 
within the gob infrastructure.
timers are rarely needed for a control specifically.  usually you 
want the timer to handle things like network pings, fps controled 
redraws, etc.