IrrNaCl - Irrlicht port for Google Native Client

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

IrrNaCl - Irrlicht port for Google Native Client

Post by codetiger »

Completed porting Irrlicht to Google Chrome Native Client (NaCl).

IrrNaCl Source Git

Irrlicht NaCl Demo #1

My Progress:
July 25, 2012:
I've uploaded the sydney demo to our server. Right now it only works on 32-bit Chrome, for 64-bit chrome you have to wait for sometime. One of the dependencies (nacl-mounts) is not compiling with 64bit, I've just asked about in NaCl discussion forum and waiting for someone to respond.

July 22, 2012:
1) Fixed Shader problem related to texture coord.
Image

July 20, 2012:
1) Fixed Filesystem related problems. Now, Irrlicht can load the files from the server.
2) Rendering loop is now running on the main thread.
3) Debugging log is now redirected to the Javascript console.
:wink: :wink: :wink: Sydney is here. Am not sure why she's not waving her hands. Am yet to fix some problem in animations and textures.
Image

June 04, 2012: I just succeeded running my basic IrrLicht Renderer on my browser. Here is a screenshot of a cube rendered. I am yet to write a Filesystem to load resources.
Image

May 29, 2012: I am just trying to compile the whole Irrlicht without leaving any dependencies, so its useful for everyone. However, I had to downgrade libpng to 1.2. NaCl has a lot of restrictions and my progress is too slow. The next big thing I've to face is porting opengles driver.


If someone with experience in NaCl can help me, that should speed up the completion. I've NaCl filesystem code to transfer files to the browser from the old port. So once we fix the rendering it should be almost ready.

I am very new to NaCl so it takes me too long to fix simple things.
Last edited by codetiger on Wed Jul 25, 2012 10:45 am, edited 5 times in total.
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
tonic
Posts: 69
Joined: Mon Dec 10, 2007 6:18 pm
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by tonic »

Your work sounds very interesting, keep posting when you make some progress. :)
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by codetiger »

Yes, it first sounded interesting. Its already 3 days and am still not able to build the dependencies. Now badly seeking expert help in NaCl platform.
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by codetiger »

With minimal changes to makefile that comes with OpenGL ES branch, I was able to finally compile and build the library with all dependencies. Now, all I've to do is create CIrrDeviceNaCl.cpp and later add custom filesystem support which I'll use from old port.
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
tonic
Posts: 69
Joined: Mon Dec 10, 2007 6:18 pm
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by tonic »

Wow, that was fast. :) Are you using the COGLES2Driver?
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by codetiger »

yes, I am yet to see the render on my screen. So far, I've just compiled it into a library and now porting the COGLES2Driver and creating CIrrDeviceNaCl.cpp
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by codetiger »

I am struggling to link libIrrlicht.so file with my example source files.

Here is my makefile

Code: Select all

 
PROJECT:=testirrlicht
LDFLAGS:=-lppapi_gles2 -lppapi_cpp -Iinclude -lppapi libs/libIrrlicht.so
CXX_SOURCES:=testirrlicht.cc
 
THIS_MAKEFILE:=$(abspath $(lastword $(MAKEFILE_LIST)))
NACL_SDK_ROOT?=$(abspath $(dir $(THIS_MAKEFILE))../..)
 
CXXFLAGS:=-pthread -g -Wall -Werror -I./include -D_IRR_STATIC_LIB_ -fabi-version=1
 
OSNAME:=win
TC_PATH:=$(abspath $(NACL_SDK_ROOT)/toolchain/$(OSNAME)_x86_newlib)
CXX:=$(TC_PATH)/bin/i686-nacl-g++
 
CYGWIN ?= nodosfilewarning
export CYGWIN
 
all: $(PROJECT)_x86_32.nexe $(PROJECT)_x86_64.nexe
 
# Define 32 bit compile and link rules for C++ sources
x86_32_OBJS:=$(patsubst %.cc,%_32.o,$(CXX_SOURCES))
$(x86_32_OBJS) : %_32.o : %.cc $(THIS_MAKE)
        $(CXX) -o $@ -c $< -m32 -O0 -g $(CXXFLAGS)
 
$(PROJECT)_x86_32.nexe : $(x86_32_OBJS)
        $(CXX) -o $@ $^ -m32 -O0 -g $(CXXFLAGS) $(LDFLAGS)
 
# Define 64 bit compile and link rules for C++ sources
x86_64_OBJS:=$(patsubst %.cc,%_64.o,$(CXX_SOURCES))
$(x86_64_OBJS) : %_64.o : %.cc $(THIS_MAKE)
        $(CXX) -o $@ -c $< -m64 -O0 -g $(CXXFLAGS)
 
$(PROJECT)_x86_64.nexe : $(x86_64_OBJS)
        $(CXX) -o $@ $^ -m64 -O0 -g $(CXXFLAGS) $(LDFLAGS)
 
 
# Define a phony rule so it always runs, to build nexe and start up server.
.PHONY: RUN 
RUN: all
        python ../httpd.py
 
Here is my compilation error:

Code: Select all

 
$ make
/cygdrive/d/naclsdk/pepper_18/toolchain/win_x86_newlib/bin/i686-nacl-g++ -o testirrlicht_x86_3.nexe testirrlicht_32.o -m32 -O0 -g -pthread -g -Wall -Werror -I./include -D_IRR_STATIC_LIB_ -abi-version=1 -lppapi_gles2 -lppapi_cpp -Iinclude -lppapi libs/libIrrlicht.so
/x86_64-nacl-ld: warning: libstdc++.so.6, needed by libs/libIrrlicht.so, not found (try using rpath or -rpath-link)
/x86_64-nacl-ld: warning: libm.so.3c8d1f2e, needed by libs/libIrrlicht.so, not found (try usin -rpath or -rpath-link)
/x86_64-nacl-ld: warning: libgcc_s.so.1, needed by libs/libIrrlicht.so, not found (try using -path or -rpath-link)
/x86_64-nacl-ld: warning: libpthread.so.3c8d1f2e, needed by libs/libIrrlicht.so, not found (tr using -rpath or -rpath-link)
/x86_64-nacl-ld: warning: libc.so.3c8d1f2e, needed by libs/libIrrlicht.so, not found (try usin -rpath or -rpath-link)
libs/libIrrlicht.so: undefined reference to `wcscpy@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glAttachShader'
libs/libIrrlicht.so: undefined reference to `operator new[](unsigned int)@GLIBCXX_3.4'
libs/libIrrlicht.so: undefined reference to `glEnable'
libs/libIrrlicht.so: undefined reference to `glBindAttribLocation'
libs/libIrrlicht.so: undefined reference to `glHint'
libs/libIrrlicht.so: undefined reference to `glLineWidth'
libs/libIrrlicht.so: undefined reference to `wcslen@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `asin@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glIsEnabled'
libs/libIrrlicht.so: undefined reference to `glGetShaderiv'
libs/libIrrlicht.so: undefined reference to `memset@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glFrontFace'
libs/libIrrlicht.so: undefined reference to `glGetActiveUniform'
libs/libIrrlicht.so: undefined reference to `glBindRenderbuffer'
libs/libIrrlicht.so: undefined reference to `glDisable'
libs/libIrrlicht.so: undefined reference to `operator delete(void*)@GLIBCXX_3.4'
libs/libIrrlicht.so: undefined reference to `glTexParameterf'
libs/libIrrlicht.so: undefined reference to `glClear'
libs/libIrrlicht.so: undefined reference to `gmtime@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glFramebufferTexture2D'
libs/libIrrlicht.so: undefined reference to `__cxa_guard_release@CXXABI_1.3'
libs/libIrrlicht.so: undefined reference to `strncpy@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `swprintf@GLIBC_2.2'
libs/libIrrlicht.so: undefined reference to `glGetError'
libs/libIrrlicht.so: undefined reference to `glUniform4iv'
libs/libIrrlicht.so: undefined reference to `mbstowcs@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `strtod@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glStencilFunc'
libs/libIrrlicht.so: undefined reference to `eglInitialize'
libs/libIrrlicht.so: undefined reference to `fmod@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glStencilMask'
libs/libIrrlicht.so: undefined reference to `glGetAttachedShaders'
libs/libIrrlicht.so: undefined reference to `sscanf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glDisableVertexAttribArray'
libs/libIrrlicht.so: undefined reference to `glDeleteProgram'
libs/libIrrlicht.so: undefined reference to `glGenRenderbuffers'
libs/libIrrlicht.so: undefined reference to `__cxa_guard_acquire@CXXABI_1.3'
libs/libIrrlicht.so: undefined reference to `glUniformMatrix4fv'
libs/libIrrlicht.so: undefined reference to `glUseProgram'
libs/libIrrlicht.so: undefined reference to `glClearColor'
libs/libIrrlicht.so: undefined reference to `glUniformMatrix3fv'
libs/libIrrlicht.so: undefined reference to `strcmp@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glUniform1iv'
libs/libIrrlicht.so: undefined reference to `sin@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `longjmp@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `eglCreateContext'
libs/libIrrlicht.so: undefined reference to `localtime@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `ftell@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `sinf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `eglMakeCurrent'
libs/libIrrlicht.so: undefined reference to `glDeleteBuffers'
libs/libIrrlicht.so: undefined reference to `glReadPixels'
libs/libIrrlicht.so: undefined reference to `glDeleteShader'
libs/libIrrlicht.so: undefined reference to `_setjmp@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `eglQueryString'
libs/libIrrlicht.so: undefined reference to `glCheckFramebufferStatus'
libs/libIrrlicht.so: undefined reference to `strtoul@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `puts@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glEnableVertexAttribArray'
libs/libIrrlicht.so: undefined reference to `glGenFramebuffers'
libs/libIrrlicht.so: undefined reference to `glActiveTexture'
libs/libIrrlicht.so: undefined reference to `glBufferData'
libs/libIrrlicht.so: undefined reference to `acosf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `atol@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glColorMask'
libs/libIrrlicht.so: undefined reference to `ferror@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `eglSwapBuffers'
libs/libIrrlicht.so: undefined reference to `floorf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glBlendFunc'
libs/libIrrlicht.so: undefined reference to `glDetachShader'
libs/libIrrlicht.so: undefined reference to `tan@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glGetProgramInfoLog'
libs/libIrrlicht.so: undefined reference to `acos@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glCopyTexSubImage2D'
libs/libIrrlicht.so: undefined reference to `fwrite@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `getenv@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `fseek@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glBindTexture'
libs/libIrrlicht.so: undefined reference to `glRenderbufferStorage'
libs/libIrrlicht.so: undefined reference to `fputc@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glGetProgramiv'
libs/libIrrlicht.so: undefined reference to `glDepthMask'
libs/libIrrlicht.so: undefined reference to `malloc@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glStencilOp'
libs/libIrrlicht.so: undefined reference to `strstr@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `cosf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `printf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glCreateShader'
libs/libIrrlicht.so: undefined reference to `glDeleteTextures'
libs/libIrrlicht.so: undefined reference to `strncmp@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glGenerateMipmap'
libs/libIrrlicht.so: undefined reference to `glBlendEquation'
libs/libIrrlicht.so: undefined reference to `glBufferSubData'
libs/libIrrlicht.so: undefined reference to `glCullFace'
libs/libIrrlicht.so: undefined reference to `glCreateProgram'
libs/libIrrlicht.so: undefined reference to `fflush@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `fread@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `stderr@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `memcpy@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glPixelStorei'
libs/libIrrlicht.so: undefined reference to `glGetIntegerv'
libs/libIrrlicht.so: undefined reference to `strlen@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glGenBuffers'
libs/libIrrlicht.so: undefined reference to `operator delete[](void*)@GLIBCXX_3.4'
libs/libIrrlicht.so: undefined reference to `__errno_location@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `atan2f@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `atan2@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glDrawElements'
libs/libIrrlicht.so: undefined reference to `glDeleteFramebuffers'
libs/libIrrlicht.so: undefined reference to `glFramebufferRenderbuffer'
libs/libIrrlicht.so: undefined reference to `cos@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `eglSwapInterval'
libs/libIrrlicht.so: undefined reference to `glUniformMatrix2fv'
libs/libIrrlicht.so: undefined reference to `glTexImage2D'
libs/libIrrlicht.so: undefined reference to `eglGetError'
libs/libIrrlicht.so: undefined reference to `pow@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glUniform2iv'
libs/libIrrlicht.so: undefined reference to `glDepthFunc'
libs/libIrrlicht.so: undefined reference to `memcmp@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `fopen@GLIBC_2.1'
libs/libIrrlicht.so: undefined reference to `glDrawArrays'
libs/libIrrlicht.so: undefined reference to `fmodf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glDeleteRenderbuffers'
libs/libIrrlicht.so: undefined reference to `glClearDepthf'
libs/libIrrlicht.so: undefined reference to `glScissor'
libs/libIrrlicht.so: undefined reference to `time@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `fprintf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `atof@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glTexSubImage2D'
libs/libIrrlicht.so: undefined reference to `powf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glVertexAttribPointer'
libs/libIrrlicht.so: undefined reference to `atoi@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glGetBooleanv'
libs/libIrrlicht.so: undefined reference to `strcpy@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `wcscmp@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `memmove@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glGetString'
libs/libIrrlicht.so: undefined reference to `glBindBuffer'
libs/libIrrlicht.so: undefined reference to `__assert_fail@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glPolygonOffset'
libs/libIrrlicht.so: undefined reference to `glBindFramebuffer'
libs/libIrrlicht.so: undefined reference to `glLinkProgram'
libs/libIrrlicht.so: undefined reference to `glUniform3iv'
libs/libIrrlicht.so: undefined reference to `abort@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glUniform1fv'
libs/libIrrlicht.so: undefined reference to `glGetShaderInfoLog'
libs/libIrrlicht.so: undefined reference to `__cxa_pure_virtual@CXXABI_1.3'
libs/libIrrlicht.so: undefined reference to `sprintf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glUniform2fv'
libs/libIrrlicht.so: undefined reference to `glShaderSource'
libs/libIrrlicht.so: undefined reference to `__cxa_atexit@GLIBC_2.1.3'
libs/libIrrlicht.so: undefined reference to `exit@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `snprintf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `eglBindAPI'
libs/libIrrlicht.so: undefined reference to `operator new(unsigned int)@GLIBCXX_3.4'
libs/libIrrlicht.so: undefined reference to `glViewport'
libs/libIrrlicht.so: undefined reference to `glUniform3fv'
libs/libIrrlicht.so: undefined reference to `gettimeofday@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glUniform4fv'
libs/libIrrlicht.so: undefined reference to `eglGetDisplay'
libs/libIrrlicht.so: undefined reference to `eglTerminate'
libs/libIrrlicht.so: undefined reference to `glGetUniformLocation'
libs/libIrrlicht.so: undefined reference to `glTexParameteri'
libs/libIrrlicht.so: undefined reference to `eglCreateWindowSurface'
libs/libIrrlicht.so: undefined reference to `free@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `logf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `setlocale@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `fclose@GLIBC_2.1'
libs/libIrrlicht.so: undefined reference to `sqrtf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `glGenTextures'
libs/libIrrlicht.so: undefined reference to `glCompileShader'
libs/libIrrlicht.so: undefined reference to `ceilf@GLIBC_2.0'
libs/libIrrlicht.so: undefined reference to `eglChooseConfig'
libs/libIrrlicht.so: undefined reference to `sqrt@GLIBC_2.0'
collect2: ld returned 1 exit status
Makefile:58: recipe for target `testirrlicht_x86_32.nexe' failed
make: *** [testirrlicht_x86_32.nexe] Error 1
 
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by codetiger »

Down to final errors while linking libIrrlicht.so in sample code.

Code: Select all

$ make
/cygdrive/d/naclsdk/pepper_18/toolchain/win_x86_glibc/bin/i686-nacl-gcc -o testirrlicht_x86_32.nexe testirrlicht_32.o -m32 -O0 -g -Wall -Iinclude -lpthread -lppapi_cpp -lppapi -lstdc++ -lgcc -lppapi_gles2 libs/libIrrlicht.so
/libexec/../lib/gcc/x86_64-nacl/4.4.3/../../../../x86_64-nacl/lib/../lib32/libppapi_cpp.so: warning: warning: pthread_cancel is not implemented and will always fail
libs/libIrrlicht.so: undefined reference to `eglCreateWindowSurface'
libs/libIrrlicht.so: undefined reference to `eglBindAPI'
libs/libIrrlicht.so: undefined reference to `eglCreateContext'
libs/libIrrlicht.so: undefined reference to `eglMakeCurrent'
libs/libIrrlicht.so: undefined reference to `eglGetDisplay'
libs/libIrrlicht.so: undefined reference to `eglChooseConfig'
libs/libIrrlicht.so: undefined reference to `eglInitialize'
libs/libIrrlicht.so: undefined reference to `eglQueryString'
/libexec/../lib/gcc/x86_64-nacl/4.4.3/../../../../x86_64-nacl/lib/../lib32/libppapi_cpp.so: undefined reference to `pp::CreateModule()'
libs/libIrrlicht.so: undefined reference to `eglSwapInterval'
libs/libIrrlicht.so: undefined reference to `eglSwapBuffers'
libs/libIrrlicht.so: undefined reference to `eglGetError'
libs/libIrrlicht.so: undefined reference to `eglTerminate'
collect2: ld returned 1 exit status
Makefile:58: recipe for target `testirrlicht_x86_32.nexe' failed
make: *** [testirrlicht_x86_32.nexe] Error 1
 
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
tonic
Posts: 69
Joined: Mon Dec 10, 2007 6:18 pm
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by tonic »

I think there isn't egl library in NaCl.

See this page:
http://aras-p.info/blog/2011/06/02/note ... lugin-api/

Quote from the paragraph about Graphics:
PPAPI provides an OpenGL ES 2.0 implementation for your 3D needs. You need to setup the context and initial surfaces via PPAPI (ppapi/cpp/dev/context_3d_dev.h, ppapi/cpp/dev/surface_3d_dev.h) – similar to what you’d use EGL on other platforms for – and beyond that you just include GLES2/gl2.h, GLES2/gl2ext.h and call ye olde GLES2.0 functions.
So I guess any egl calls should be mapped to something equivalent in the PPAPI.
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by hybrid »

Yeah, that's basically part of the native device then, as that's the place for window creation etc. Due to the Irrlicht design, some parts can also be in the driver, so just check out all those places and make sure it uses your code parts and functions.
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by codetiger »

@Hybrid
Thanks on that tip.

Meanwhile, I've changed the COGLES2Driver files to fit NaCl. However, it is still not complete. I've uploaded both IrrNaCl and TestIrrNaCL (which is a port of tumbler example project but built in glibc compiler). This project crashes in createdevice function.

https://github.com/codetiger/IrrNacl
https://github.com/codetiger/ExampleIrrNaCl

I need some help, atleast a clue on how to go ahead. I am new to both Irrlicht (just completed our first Tech Demo) and NaCl (this is my first try porting Irrlicht).
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by hybrid »

Maybe you should create a basic, unaltered version of the ogl-es drivers first, and make sure that everything is running as expected there. And only then trying to port something over to new code and platforms. But yes, both drivers are almost complete and support most features of Irrlicht.
Nadro
Posts: 1648
Joined: Sun Feb 19, 2006 9:08 am
Location: Warsaw, Poland

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by Nadro »

Nice work! :) In this week I'll try release some stuff for an Andoid and full iOS support in our official OGL ES branch. When Your NaCL port will be ready we will be allowed to add it to this branch too. Nice to see an Irrlicht on next platforms :)
Library helping with network requests, tasks management, logger etc in desktop and mobile apps: https://github.com/GrupaPracuj/hermes
link3rn3l
Posts: 81
Joined: Wed Nov 15, 2006 5:51 pm

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by link3rn3l »

nice project .. please upload too "libIrrNaCl.so" and other libs.. in example to compile more easy...

and a .BAT file too.. jajaja..

thx this project is great!!!!! :mrgreen:
Bennu (Best 2d and 3D dev-tool)
http://bennupack.blogspot.com

Pixtudio (Best 2D development tool)
http://pixtudiopack.blogspot.com

Bennu3D(3D Libs for bennu)
http://3dm8ee.blogspot.com/

Colombian Developers - Blog:
http://coldev.blogspot.com/
codetiger
Posts: 103
Joined: Wed May 02, 2012 9:24 am
Location: Chennai, India
Contact:

Re: IrrNaCl - Irrlicht port for Google Native Client [Team N

Post by codetiger »

I've fixed most part of the NaCl port.
Like Hybrid suggested, I tried with all changes compiled and run it on windows with OpenGL-ES2.0 emulator and it worked properly. I have now started removing EGL library references, however, it crashes in glGetString() function in the driver.

My initial idea was to remove gl initializing code from the driver. The NaCl main class will initialize everything and IrrLicht should start just rendering. Do you think this approach meaningful?
IrrNaCl - Irrlicht Port for Google Chrome Native Client - Demo

Iyan 3D - Make your own 3d animation using your iOS Device
Post Reply