Next step for me, is to create a small opengl test app:
- does it cross-compile (on Ubunutu)?
- does it run in QEMU?
- does it run on a Pandaboard?

Here's the result:
DerelictGL3 and DerelictUtil cross-compiles ok with no gdc-arm failures.

On the other hand, a very simple app has linker errors:

import derelict.opengl3.gl3;
void main()
  {
  // DerelictGL3.load();
  // DerelictGL3.reload();
  printf("Start opengl: version %s\n", DerelictGL3.loadedVersion);
  }

I'm using -nophoboslib so there are linker errors related to phobos. If I don't use -nophoboslib I still get errors:

make testgl3
/home/arrizza/x-tools/arm-cortexa9_neon-linux-gnueabihf/bin/arm-cortexa9_neon-linux-gnueabihf-gdc -I./DerelictUtil/source -I./DerelictGL3/source -Llib testgl3.d -o opengl3
/tmp/ccSSbl9j.o: In function `_Dmain':
testgl3.d:(.text+0x40): undefined reference to `_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader' testgl3.d:(.text+0x44): undefined reference to `_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader' testgl3.d:(.text+0x58): undefined reference to `_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader' testgl3.d:(.text+0x5c): undefined reference to `_D8derelict7opengl33gl311DerelictGL3C8derelict7opengl33gl317DerelictGL3Loader' /tmp/ccSSbl9j.o:(.data+0xc): undefined reference to `_D8derelict7opengl33gl312__ModuleInfoZ'
collect2: error: ld returned 1 exit status
make: *** [testgl3] Error 1


I was stuck, so I started on a different front. I created a variant of the framebuffer test (in C for now) that sets every pixel in the framebuffer while I kept track of the time. The results are interesting. In QEMU:
 ./fbrate
 time 1140000 11ms 90 fps

on the Pandaboard:
 ./fbrate
 time 40000 4ms 250 fps

(that's with -03 btw).

The idea is that I can now convert this to D and see what the frame rate is then.

But before I did, I tried to see if mouse events could be captured in a D app. I found out the QEMU distro has mev in it and so that was an even simpler first step. If that works, I would then find the (open) source code for mev and convert that to D. Unfortunately, it didn't work. The mouse capture in my version of QEMU is not working like I expect and so I don't see any mouse events coming out of QEMU. Haven't tried mev on the Pandaboard yet.

Any advice?


Reply via email to