[squeak-dev] 64 bit FFI
Bert Freudenberg
bert at freudenbergs.de
Thu Mar 19 23:06:37 UTC 2020
The OpenGL class has two example methods on the class side. Trying these is
what I meant with "make sure it works in 32 bits":
example "OpenGL example"
"A very simple OpenGL example"
| ogl frames startTime deltaTime framesPerSec bounds font |
font := StrikeFont familyName: 'Atlanta' pointSize: 11.
bounds := 0 at 0 extent: 400 at 400.
ogl := OpenGL newIn: bounds.
ogl ifNil:[^self error: 'Unable to create renderer'].
[frames := 0.
startTime := Time millisecondClockValue.
[Sensor anyButtonPressed] whileFalse:[
"start counting at second frame since first frame is penalized
by the upload of the bitmap font outside of ogl."
frames = 1 ifTrue:[startTime := Time millisecondClockValue].
ogl beginFrame.
"--- this is the actual scene content ---"
ogl glDisable: GLDepthTest. "for the simple example only"
ogl glDisable: GLLighting. "for the simple example only"
ogl glClearColor: 1.0 with: 1.0 with: 1.0 with: 1.0.
ogl glClear: GLColorBufferBit.
ogl glRotatef: 5.0 with: 0.0 with: 0.0 with: 1.0.
ogl glColor3f: 1.0 with: 0.0 with: 0.0.
ogl glBegin: GLPolygon.
ogl glVertex2f: -0.7 with: -0.7.
ogl glVertex2f: 0.7 with: -0.7.
ogl glVertex2f: 0.7 with: 0.7.
ogl glVertex2f: -0.7 with: 0.7.
ogl glEnd.
"--- here is the 2d overlay setup ---"
ogl glMatrixMode: GLProjection.
ogl glPushMatrix.
ogl glLoadIdentity.
ogl glMatrixMode: GLModelview.
ogl glPushMatrix.
ogl glLoadIdentity.
ogl glTranslated: -1 with: 1 with: 0.0.
ogl glScaled: (2.0 / bounds width) with: (-2.0 / bounds height) with: 1.0.
ogl glDisable: GLDepthTest.
ogl glEnable: GLBlend.
ogl glBlendFunc: GLOne with: GLOneMinusSrcAlpha.
"--- here is the 2d overlay rendering ---"
deltaTime := Time millisecondsSince: startTime.
framesPerSec := frames * 1000 / (deltaTime max: 1) asFloat.
"@@@@: Fixme. It appears as if #drawString: depends on glColor being set.
Makes no sense but I'm not going to figure this out - probably some mishap
wrt. GLLighting being disabled."
ogl glColor3f: 0.0 with: 0.0 with: 0.0.
ogl drawString: frames printString, ' frames: ', (framesPerSec
truncateTo: 0.1), ' fps'
at: 0 at font height at 0 font: font color: Color black.
ogl glDisable: GLBlend.
ogl glMatrixMode: GLModelview.
ogl glPopMatrix.
ogl glMatrixMode: GLProjection.
ogl glPopMatrix.
ogl glMatrixMode: GLModelview.
"--- end the end frame operations"
ogl endFrame.
ogl swapBuffers.
frames := frames + 1.
].
] ensure:[ogl destroy].
- Bert -
On Thu, Mar 19, 2020 at 5:57 AM gettimothy via Squeak-dev <
squeak-dev at lists.squeakfoundation.org> wrote:
>
> Hi Subbu,
>
> I will keep it in mind. My focus now is on building openGL tutorial
> programs such as this: https://paroj.github.io/gltut/index.html
> or this:
> https://www.linuxjournal.com/content/introduction-opengl-programming
>
>
> the exercise is already giving me insight into the Squeak openGL and
> should be of use when I get to the FFI part.
>
> cheers,
>
> t
>
> ---- On Thu, 19 Mar 2020 04:00:06 -0400 *K K Subbu <kksubbu.ml at gmail.com
> <kksubbu.ml at gmail.com>>* wrote ----
>
> On 18/03/20 5:28 PM, gettimothy via Squeak-dev wrote:
> >
> > Step 1: verify working on 32 bit machines. Well, I do not have a 32 bit
> > machine that can run squeak (old pentium laptop --the kind that catches
> > on fire) and I tried running side-by-side on Ubuntu.
> > 64 bit runs fine, 32 bit tries to launch and cannot find the display
> > driver. I could install 32 bit compat libs on my Slackware distro boot,
> > but I prefer to keep that pristine.
> > I don't care for fighting with Ubuntu, so if anybody knows a quick fix,
> > much appreciated. I can get the exact error if needed, just need to
> > reboot and retry.
> Have you tried booting 32-bit Ubuntu from a live USB (4GB+) drive for
> your experiments?
>
> Regards .. Subbu
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20200319/c98bbaae/attachment.html>
More information about the Squeak-dev
mailing list
|