ANN: OpenGL + NativeBoost + Mac ==> success

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

ANN: OpenGL + NativeBoost + Mac ==> success

Igor Stasenko
Today i'm happy to announce that i can run my 2 years-old demo which i
did when created NBOpenGL bindings first on Windows,
working without ANY changes in code on Mac.

The main hurdle with adding MacOsx support was that it is largely
unknown platform to me , and there are 3 different ways to get there,
namely CGL, Carbon and Cocoa.
Fortunately CGL approach worked well, despite its a bit limited (you
cannot create a windowed context, only fullscreen or offscreen one).
But since i am using FBO's , it doesn't really matters.
Of course it may make difference for people who want to use GL in
different setup.

In order to load project, take a fresh Pharo 1.4 image, load

ConfigurationOfNBOpenGL package using MC from

MCHttpRepository
    location: 'http://www.squeaksource.com/NBOpenGL'
    user: 'sig'
    password: ''


or by

Gofer it
  squeaksource: 'NBOpenGL';
  package: 'ConfigurationOfNBOpenGL';
  load

and then issue:

ConfigurationOfNBOpenGL project lastVersion load.

Remember, that you have to use CogVM with NativeBoost plugin, which
you can download from here:

https://ci.lille.inria.fr/pharo/view/NativeBoost/job/NB-Cog-Mac-Carbon/lastSuccessfulBuild/artifact/


If everything goes well, you should be able to run a demo by doing:

GLTTRenderingDemo new openInWorld.

P.S. @ Windows users: due to refactorings which i did, a
windows-specific support code is currently broken. So please use older
versions of packages (prior to this month).
I will fix them very soon.


--
Best regards,
Igor Stasenko.

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] ANN: OpenGL + NativeBoost + Mac ==> success

LawsonEnglish
OK, I've got NB and NBOpenGL isntalled on my Mac.

Very slick! I'm doing a video on how to install it for my tutorial series.

However, many things pop up as I experiment.

If I attempt to create more than one instance of the demo I sometimes
get errors. If the instances create without error, then resizing one
window will resize the drawing a the other, even though they are still
drawing different images. Regardless, very slick and smooth. I hope that
this becomes an extremely popular package for both Pharo and Squeak and
eventually will let us use OpenGL as the main drawing engine at the
lowest level (or other 3D engines as they become available).

test := GLTTRenderingDemo new openInWorld.
test1 := GLTTRenderingDemo new openInWorld.

Lawson

On 1/20/12 11:52 AM, Igor Stasenko wrote:

> Today i'm happy to announce that i can run my 2 years-old demo which i
> did when created NBOpenGL bindings first on Windows,
> working without ANY changes in code on Mac.
>
> The main hurdle with adding MacOsx support was that it is largely
> unknown platform to me , and there are 3 different ways to get there,
> namely CGL, Carbon and Cocoa.
> Fortunately CGL approach worked well, despite its a bit limited (you
> cannot create a windowed context, only fullscreen or offscreen one).
> But since i am using FBO's , it doesn't really matters.
> Of course it may make difference for people who want to use GL in
> different setup.
>


Reply | Threaded
Open this post in threaded view
|

Re: ANN: OpenGL + NativeBoost + Mac ==> success

LawsonEnglish
In reply to this post by Igor Stasenko
I created a new video how to for installing NativeBoost OpenGL on Pharo
1.4 Smalltalk on the Mac: http://www.youtube.com/watch?v=RAvlIVG4biM

Igor, your code is very nice. I think there's a lot of potential here
for NativeBoost and OpenGL that might attract new classes of programmers
to smalltalk. I'd be happy to help create demos and videos of what can
be done.

Lawson



On 1/20/12 11:52 AM, Igor Stasenko wrote:

> Today i'm happy to announce that i can run my 2 years-old demo which i
> did when created NBOpenGL bindings first on Windows,
> working without ANY changes in code on Mac.
>
> The main hurdle with adding MacOsx support was that it is largely
> unknown platform to me , and there are 3 different ways to get there,
> namely CGL, Carbon and Cocoa.
> Fortunately CGL approach worked well, despite its a bit limited (you
> cannot create a windowed context, only fullscreen or offscreen one).
> But since i am using FBO's , it doesn't really matters.
> Of course it may make difference for people who want to use GL in
> different setup.
>
> In order to load project, take a fresh Pharo 1.4 image, load
>
> ConfigurationOfNBOpenGL package using MC from
>
> MCHttpRepository
>      location: 'http://www.squeaksource.com/NBOpenGL'
>      user: 'sig'
>      password: ''
>
>
> or by
>
> Gofer it
>    squeaksource: 'NBOpenGL';
>    package: 'ConfigurationOfNBOpenGL';
>    load
>
> and then issue:
>
> ConfigurationOfNBOpenGL project lastVersion load.
>
> Remember, that you have to use CogVM with NativeBoost plugin, which
> you can download from here:
>
> https://ci.lille.inria.fr/pharo/view/NativeBoost/job/NB-Cog-Mac-Carbon/lastSuccessfulBuild/artifact/
>
>
> If everything goes well, you should be able to run a demo by doing:
>
> GLTTRenderingDemo new openInWorld.
>
> P.S. @ Windows users: due to refactorings which i did, a
> windows-specific support code is currently broken. So please use older
> versions of packages (prior to this month).
> I will fix them very soon.
>
>


Reply | Threaded
Open this post in threaded view
|

Re: ANN: OpenGL + NativeBoost + Mac ==> success

Karl Ramberg
Nice looking.

Karl


On Sun, Jan 22, 2012 at 4:23 AM, Lawson English <[hidden email]> wrote:
I created a new video how to for installing NativeBoost OpenGL on Pharo 1.4 Smalltalk on the Mac: http://www.youtube.com/watch?v=RAvlIVG4biM

Igor, your code is very nice. I think there's a lot of potential here for NativeBoost and OpenGL that might attract new classes of programmers to smalltalk. I'd be happy to help create demos and videos of what can be done.


Lawson



On 1/20/12 11:52 AM, Igor Stasenko wrote:
Today i'm happy to announce that i can run my 2 years-old demo which i
did when created NBOpenGL bindings first on Windows,
working without ANY changes in code on Mac.

The main hurdle with adding MacOsx support was that it is largely
unknown platform to me , and there are 3 different ways to get there,
namely CGL, Carbon and Cocoa.
Fortunately CGL approach worked well, despite its a bit limited (you
cannot create a windowed context, only fullscreen or offscreen one).
But since i am using FBO's , it doesn't really matters.
Of course it may make difference for people who want to use GL in
different setup.

In order to load project, take a fresh Pharo 1.4 image, load

ConfigurationOfNBOpenGL package using MC from

MCHttpRepository
    location: 'http://www.squeaksource.com/NBOpenGL'
    user: 'sig'
    password: ''


or by

Gofer it
  squeaksource: 'NBOpenGL';
  package: 'ConfigurationOfNBOpenGL';
  load

and then issue:

ConfigurationOfNBOpenGL project lastVersion load.

Remember, that you have to use CogVM with NativeBoost plugin, which
you can download from here:

https://ci.lille.inria.fr/pharo/view/NativeBoost/job/NB-Cog-Mac-Carbon/lastSuccessfulBuild/artifact/


If everything goes well, you should be able to run a demo by doing:

GLTTRenderingDemo new openInWorld.

P.S. @ Windows users: due to refactorings which i did, a
windows-specific support code is currently broken. So please use older
versions of packages (prior to this month).
I will fix them very soon.







Reply | Threaded
Open this post in threaded view
|

Re: ANN: OpenGL + NativeBoost + Mac ==> success

Igor Stasenko
On 22 January 2012 21:29, karl ramberg <[hidden email]> wrote:
> Nice looking.
>
btw, on recorded video the font glyph having rough edges..
look's like Lawson's GL engine doesn't supports a shader which is
responsible for rendering smooth edges.
but again it was demo to show that you can do things with opengl..,
not to show that to make it work everywhere,
you have to spend many torturing sessions trying to support various
graphic cards vendors
and their drivers while still keeping your rendering approach in mind :).

> Karl
> On Sun, Jan 22, 2012 at 4:23 AM, Lawson English <[hidden email]> wrote:
>>
>> I created a new video how to for installing NativeBoost OpenGL on Pharo
>> 1.4 Smalltalk on the Mac: http://www.youtube.com/watch?v=RAvlIVG4biM
>>
>> Igor, your code is very nice. I think there's a lot of potential here for
>> NativeBoost and OpenGL that might attract new classes of programmers to
>> smalltalk. I'd be happy to help create demos and videos of what can be done.
>>
>>
>> Lawson
>>
>>
>>
>> On 1/20/12 11:52 AM, Igor Stasenko wrote:
>>>
>>> Today i'm happy to announce that i can run my 2 years-old demo which i
>>> did when created NBOpenGL bindings first on Windows,
>>> working without ANY changes in code on Mac.
>>>
>>> The main hurdle with adding MacOsx support was that it is largely
>>> unknown platform to me , and there are 3 different ways to get there,
>>> namely CGL, Carbon and Cocoa.
>>> Fortunately CGL approach worked well, despite its a bit limited (you
>>> cannot create a windowed context, only fullscreen or offscreen one).
>>> But since i am using FBO's , it doesn't really matters.
>>> Of course it may make difference for people who want to use GL in
>>> different setup.
>>>
>>> In order to load project, take a fresh Pharo 1.4 image, load
>>>
>>> ConfigurationOfNBOpenGL package using MC from
>>>
>>> MCHttpRepository
>>>     location: 'http://www.squeaksource.com/NBOpenGL'
>>>     user: 'sig'
>>>     password: ''
>>>
>>>
>>> or by
>>>
>>> Gofer it
>>>   squeaksource: 'NBOpenGL';
>>>   package: 'ConfigurationOfNBOpenGL';
>>>   load
>>>
>>> and then issue:
>>>
>>> ConfigurationOfNBOpenGL project lastVersion load.
>>>
>>> Remember, that you have to use CogVM with NativeBoost plugin, which
>>> you can download from here:
>>>
>>>
>>> https://ci.lille.inria.fr/pharo/view/NativeBoost/job/NB-Cog-Mac-Carbon/lastSuccessfulBuild/artifact/
>>>
>>>
>>> If everything goes well, you should be able to run a demo by doing:
>>>
>>> GLTTRenderingDemo new openInWorld.
>>>
>>> P.S. @ Windows users: due to refactorings which i did, a
>>> windows-specific support code is currently broken. So please use older
>>> versions of packages (prior to this month).
>>> I will fix them very soon.
>>>
>>>
>>
>>
>
>
>
>



--
Best regards,
Igor Stasenko.

Reply | Threaded
Open this post in threaded view
|

Re: ANN: OpenGL + NativeBoost + Mac ==> success

LawsonEnglish
On 1/22/12 4:33 PM, Igor Stasenko wrote:

> On 22 January 2012 21:29, karl ramberg<[hidden email]>  wrote:
>> Nice looking.
>>
> btw, on recorded video the font glyph having rough edges..
> look's like Lawson's GL engine doesn't supports a shader which is
> responsible for rendering smooth edges.
> but again it was demo to show that you can do things with opengl..,
> not to show that to make it work everywhere,
> you have to spend many torturing sessions trying to support various
> graphic cards vendors
> and their drivers while still keeping your rendering approach in mind :).
>
>
And this comes back to a very important point about Smalltalk-based
development: it is easier and faster to do the torturing sessions using
an integrated development environment with immediate feedback...

People have been saying that no-one would want to use Smalltalk unless
you can show them a situation where you can accomplish something that
can't be done in another language. Obviously that is not possible since
all Turing Complete languages can everything.

BUT, showing how the environment facilitates development IS a real
Smalltalk/Squeak/Pharo advantage.

I'm not an OpenGL guru. I'm barely a beginner. My knowledge level is the
level I acquired by porting the NeHe tutorials. But I should be able to
create some killer demos with a little help.


L.

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Fwd: [squeak-dev] ANN: OpenGL + NativeBoost + Mac ==> success

LawsonEnglish
In reply to this post by LawsonEnglish
On 1/22/12 4:27 PM, Igor Stasenko wrote:

>
> On 22 January 2012 15:13, Stéphane Ducasse<[hidden email]>  wrote:
>> On Jan 22, 2012, at 1:29 PM, Lawson English wrote:
>>
>>
>>> 2) large windows tended to leave a lot of artifacts behind during movement (the video shows this towards the end).
> there is two "modes" to blit on Morphic display - one is just copy
> directly to Display, and another is to separate form and then draw
> that form as usual.
> so, these artefact is not related to OpenGL per se, but mainly to how
> you make rendered results appear integrated in morphic.

Is there a way to directly draw to the system window using OpenGL so
that intermediate software blitting is eliminated?

The integration of 3D and 2D on the squeak desktop (World morph) would
be much easier and faster if there weren't so many layers of copying
being done, as is the case with my demo video.

If there IS a way, can you create a demo of it,, or explain to me how to
create a demo of it?




Thanks,
Lawson

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Fwd: [squeak-dev] ANN: OpenGL + NativeBoost + Mac ==> success

Hans-Martin Mosner
Am 23.01.2012 18:03, schrieb Lawson English:
>
> Is there a way to directly draw to the system window using OpenGL so that intermediate software blitting is eliminated?
>
The opengl context is already drawing directly to the screen (or rather, to the back buffer managed by opengl).
There is no intermediate software blitting involved AFAIK.

Cheers,
Hans-Martin

Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Fwd: [squeak-dev] ANN: OpenGL + NativeBoost + Mac ==> success

LawsonEnglish
Kool. So how could I make the entire World a drawing surface so that I
could use the OpenGL drawing throughout the entire squeak/pharo OS
window, instead of within another window?

Could a 2D/3D mashup like I have in this video be accomplished? The fps
is too slow to be useable for most things, at this point:
http://www.youtube.com/watch?v=nSLZKIXeXR4

On 1/23/12 3:00 PM, Hans-Martin Mosner wrote:

> Am 23.01.2012 18:03, schrieb Lawson English:
>> Is there a way to directly draw to the system window using OpenGL so that intermediate software blitting is eliminated?
>>
> The opengl context is already drawing directly to the screen (or rather, to the back buffer managed by opengl).
> There is no intermediate software blitting involved AFAIK.
>
> Cheers,
> Hans-Martin
>
>


Reply | Threaded
Open this post in threaded view
|

Re: ANN: OpenGL + NativeBoost + Mac ==> success

LawsonEnglish
In reply to this post by Igor Stasenko
Kool. So how could I make the entire World a drawing surface so that I
could use the OpenGL drawing throughout the entire squeak/pharo OS
window, instead of within another window?

Could a 2D/3D mashup like I have in this video be accomplished? The fps
is too slow to be useable for most things, at this point:
http://www.youtube.com/watch?v=nSLZKIXeXR4

On 1/23/12 3:00 PM, Hans-Martin Mosner wrote:
 > Am 23.01.2012 18:03, schrieb Lawson English:
 >> Is there a way to directly draw to the system window using OpenGL so
that intermediate software blitting is eliminated?
 >>
 > The opengl context is already drawing directly to the screen (or
rather, to the back buffer managed by opengl).
 > There is no intermediate software blitting involved AFAIK.
 >
 > Cheers,
 > Hans-Martin
 >
 >