윈도우 및 타 플랫폼에서 구동이 가능한 openGL ES 1.0 (+alpha) software render 를 일단 완성을 시켰습니다.
내부적으로 C++ template 가 좀 과도하여 minGW 에서 컴파일 성공 시키기가 쉽진 않았 습니다만 열심히 표준 class 규격을 맞춰 가며 내부 구현을 완료 하였네요.

지원되는 사항은 다음과 같습니다.
eglInitialize();

eglCreateContext();
eglCreateWindowSurface();
eglDestroySurface();
eglGetCurrentContext();
eglGetCurrentDisplay();
eglGetCurrentSurface();
eglGetDisplay();

eglMakeCurrent();
eglSwapBuffers();
eglWaitGL();
eglWaitNative();

glAccum();
glAlphaFunc();
glBindTexture();
glBlendFunc();
glCallList();
glCallLists();
glClear();
glClearColor();
glClearColorx();
glClearDepth();
glClearDepthx();
.... 등등 ...

EGL 의 경우는 render surface를 단순 byte배열로 잡기 때문에 PC 의 경우 DIB 를 만들어야 합니다.
RGB565 , RGBX8888 , RGBA8888 을 지원하고 있습니다.
단, 이 해당 모델은 빌드를 다르게 해야 하는 구조이므로 한번에 다양한 BPP 를 지원하지는 못합니다.
또한 Bilinear filtering 같은 속도저하가 발생하는 요소는 지원하지 않습니다 .. ㅠㅠ;

아직 테스트가 많이 남았으므로 바로 공개는 하지 못하겠지만 표준 OpenGL 기능도 일부 지원하므로 구버젼게임인 Quake 에서도 driver 세팅을 할 수 있어 보입니다.
목적은 Quake에서 정상적인 화면+속도 가 보장되는 것 이기 때문에 적절한 테스트 후 공개하겠습니다.

Posted by 견족자K rageworx