Firstly, I want to introduce myself, I’m studing at university of technology in Ho Chi Minh city. This term, I’m going to do my graduation thesis. My intent is porting/implement OpenGL/ES to T-engine board. T-engine is an old logic board used to mobile applications development.It has SH7760 CPU and have 64Mb RAM.
I’m quite new to OpenGL and computer graphics. So it’s a little hard to do this work. I’ve made some research and intended to use some available implements such as Vincent or Meisa or this here.
My question is:
How hard is implementation/porting OpenGL/ES to new board ?
Is it legal to use source code mentioned above in my work ( my project is only a graduation thesis, not comercial )?
Thanks every one and sorry about my bad English
gles-1.0c.tgz from Khronos is only a shim that sits above OpenGL on a desktop PC so it is not suitable for your porting effort.
I think mesa relies on a JIT compiler to compile loops at run-time according to the specified GL state. This means that it is quite complicated to port to CPUs not already supported.
Vincent may be your best starting point but note that (a) it is written in C++, (b) it is not particularly fast.
Creating an OpenGL ES 1.0 implementation from scratch is a substantial piece of work, especially one with a JIT compiler. OpenGL ES 2.0 is even more work because of the need to support shaders. A software implementation of ES 2.0 is impractical unless the hardware has an FPU because GLSL ES is entirely floating point.
The jit doesn’t really matter in effort, it’s all implemented in C, so as long as you have a C compiler it’s not too bad. However the software stacks are quite large, so updating make files and build system can take a while. Windowing and any linux specifics will be other big part.
Mesa is designed to handle GLES2, so a lot of the porting effort would be a waste, so porting vincents soft gles1 implementation would definitely be the easiest. Fixed function stacks are much smaller and less complex.
It seems to be Mesa project implement OpenGL and OpenGL ES in one project. This project is quite big, a lot of code line. I got embarrassed with this stuff of source code
So I think Vincent is a good choice,too. I should check out if g++ supported my SH7760. If the CPU was not supported complied by g++, maybe no way