[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