OGRE port to NaCl (Google's Native Client)

Discussion area about developing or extending OGRE, adding plugins for it or building applications on it. No newbie questions please, use the Help forum for that.
Post Reply
dermont
Bugbear
Posts: 812
Joined: Thu Dec 09, 2004 2:51 am
x 42

Re: OGRE port to NaCl (Google's Native Client)

Post by dermont »

Assaf Raman wrote:After 3 different people asked me for it, I created a zip file that you can download and compile out of the box that includes all the relevant files and is not relative path dependent.
It makes compiling OGRE for NaCl mush easier.
So try it out.
1. Install the NaCl SDK (Google it and figure it out for yourself.)
2. Set an environment variable called "NACL_SDK_ROOT" to the NaCl SDK directory (Ex: "C:\nacl\sdk_update\nacl_sdk\pepper_16" - make sure you have the pepper_xx in it...)
3. Download this file: http://goo.gl/UvTeu
4. There are two batch files in the zip to build OGRE - OGRE_32_NaCl.bat and OGRE_64_NaCl.bat to build the 32 and 64 bit versions of OGRE - just execute them.
I can't seem to access the site but since I'm running Linux the batch files probably won't be of much use. I just wanted to know what version of the ogre dependencies you used: the libs from naclports; Cabalistic's ogredep or your own? Thanks.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

naclports with some fixes.
Watch out for my OGRE related tweets here.
uzik
Goblin
Posts: 202
Joined: Sun Feb 25, 2007 1:45 am
Location: USA
x 6
Contact:

Re: OGRE port to NaCl (Google's Native Client)

Post by uzik »

Any idea how NaCL handles hardware abstraction?
[*]Tell the client it has the latest version of OpenGL and emulate things the hardware doesn't have
[*] Tell the client it has a very old version
[*] Pass through what's truly present on the hardware the user is running on
---A dream doesn't become reality through magic; it takes sweat, determination and hard work.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

Watch out for my OGRE related tweets here.
User avatar
Lee04
Minaton
Posts: 945
Joined: Mon Jul 05, 2004 4:06 pm
Location: Sweden
x 1

Re: OGRE port to NaCl (Google's Native Client)

Post by Lee04 »

Is there any version of NaCl Chrome browser or so, where you just can use NaCl as is without the app being a store app?

I was thinking of getting the app once for the store, and then make use of it. Just for development purposes.

But I get

"lastError: NaCl module load failed: could not load manifest url."

Where is the manifest stored and what name does it have?

Cheers

Lee
Ph.D. student in game development
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

This is a general NaCl question, try finding your answer here: https://groups.google.com/forum/#!forum ... nt-discuss
Watch out for my OGRE related tweets here.
coldev
Gnoblar
Posts: 1
Joined: Sat Feb 25, 2012 4:35 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by coldev »

hello


:lol:


is possible that you share prebuild nacl libs and headers to compile ogre in one pass? included a one test.c ?

thx .. be will nice..
realazthat
Gnoblar
Posts: 8
Joined: Sun Apr 24, 2011 1:50 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by realazthat »

dermont wrote:[
These are the changes that I made:

Code: Select all

diff --git a/Samples/Browser/include/SampleBrowser_NaCl.h b/Samples/Browser/include/SampleBrowser_NaCl.h
--- a/Samples/Browser/include/SampleBrowser_NaCl.h
+++ b/Samples/Browser/include/SampleBrowser_NaCl.h
@@ -63,7 +63,8 @@
 #include "ppapi/cpp/completion_callback.h"
 #include "ppapi/cpp/input_event.h"
 #include "OgreZip.h"
-#include <GLES2\gl2.h>
+#include <GLES2/gl2.h>
+//#include <gl2.h>
 
 namespace 
 {
@@ -836,9 +837,9 @@
                 void capture(){};
                 OIS::Interface* queryInterface(OIS::Interface::IType) {return NULL;};
                 void _initialize(){};
-                bool isKeyDown(OIS::KeyCode){return false;};
+                bool isKeyDown(OIS::KeyCode) const {return false;};
                 const std::string& getAsString(OIS::KeyCode){return "";};
-                void copyKeyStates(char*){};
+                void copyKeyStates(char*) const {};
                 bool HandleInputEvent(const pp::InputEvent& event)
                 {
                     const pp::KeyboardInputEvent *keyboardEvent =
diff --git a/Samples/Browser/src/FileSystemLayerImpl_NaCl.cpp b/Samples/Browser/src/FileSystemLayerImpl_NaCl.cpp
--- a/Samples/Browser/src/FileSystemLayerImpl_NaCl.cpp
+++ b/Samples/Browser/src/FileSystemLayerImpl_NaCl.cpp
@@ -27,9 +27,9 @@
  */
 #include "FileSystemLayerImpl.h"
 #include <sys/types.h>
-#include <ppapi\cpp\file_system.h>
-#include <ppapi\cpp\file_ref.h>
-#include <ppapi\cpp\file_io.h>
+#include <ppapi/cpp/file_system.h>
+#include <ppapi/cpp/file_ref.h>
+#include <ppapi/cpp/file_io.h>
 
 namespace OgreBites
 {
These changes are good, I had to make the same changes. Dermont, to get OIS to compile, get Assaf's fake NaCl implementation in the modified OIS that you can download in his dependencies zip, and simply make your own project in your favorite build system. Compile the OIS source files and NaCl subdirectory source files (OIS autotools will try to compile the Linux sources, resulting in your error). Anyway, the NaCl OIS implementation there is a dud I think, but it allows it to compile; the actual NaCl implementation is in SampleBrowser_NaCl.h, hardcoded in. You can extract it from there.
realazthat
Gnoblar
Posts: 8
Joined: Sun Apr 24, 2011 1:50 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by realazthat »

Hi Assaf, very good work. I managed to get my program to compile and run, but the viewport remains white, so I have a few questions. Firstly, I noticed you used to have the JS render loop via ping ponging a "renderedOneFrame" and "renderOneFrame" back and forth, but I see you removed that from the C++ source code, but not from the JS; so I am wondering, how/what is the JS render loop? I am looking at this for the JS: http://ogre3d-nacl-demos.googlecode.com/svn/trunk/ogre/.

My program is basically extracted bits and pieces from SampleBrowser_NaCl.h; I am suspicious that there isn't even one frame being drawn. Are there any common mistakes that would cause the viewport to remain undrawn? I actually managed to get *something* drawn at one point, but it was very stretched out, low resolution. I been scratching my head as to what is wrong, and the first thing is that renderOneFrame() is just not getting called except on ininitialization.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

What does the javascript console output say?
Watch out for my OGRE related tweets here.
realazthat
Gnoblar
Posts: 8
Joined: Sun Apr 24, 2011 1:50 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by realazthat »

Assaf Raman wrote:What does the javascript console output say?
Thanks for your reply.

Everything *runs* fine. No problems in the log. If you want to look at it, here (notice, it has some additional scaffolding):

Code: Select all

now initOgre
ogredemo_b.html:53initOgre:500:500
ogredemo_b.html:53initOgre
ogredemo_b.html:53500
ogredemo_b.html:53500
ogredemo_b.html:53192
ogredemo_b.html:53Creating resource group General
ogredemo_b.html:53Creating resource group Internal
ogredemo_b.html:53Creating resource group Autodetect
ogredemo_b.html:53SceneManagerFactory for type 'DefaultSceneManager' registered.
ogredemo_b.html:53Registering ResourceManager for type Material
ogredemo_b.html:53Registering ResourceManager for type Mesh
ogredemo_b.html:53Registering ResourceManager for type Skeleton
ogredemo_b.html:53MovableObjectFactory for type 'ParticleSystem' registered.
ogredemo_b.html:53OverlayElementFactory for type Panel registered.
ogredemo_b.html:53OverlayElementFactory for type BorderPanel registered.
ogredemo_b.html:53OverlayElementFactory for type TextArea registered.
ogredemo_b.html:53Registering ResourceManager for type Font
ogredemo_b.html:53ArchiveFactory for archive type FileSystem registered.
ogredemo_b.html:53ArchiveFactory for archive type Zip registered.
ogredemo_b.html:53ArchiveFactory for archive type EmbeddedZip registered.
ogredemo_b.html:53DDS codec registering
ogredemo_b.html:53FreeImage version: 3.14.1
ogredemo_b.html:53This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
ogredemo_b.html:53Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,bay,bmq,cr2,crw,cs1,dc2,dcr,dng,erf,fff,hdr,k25,kdc,mdc,mos,mrw,nef,orf,pef,pxn,raf,raw,rdc,sr2,srf,arw,3fr,cine,ia,kc2,mef,nrw,qtk,rw2,sti,drf,dsc,ptx,cap,iiq,rwz
ogredemo_b.html:53PVRTC codec registering
ogredemo_b.html:53Registering ResourceManager for type HighLevelGpuProgram
ogredemo_b.html:53Registering ResourceManager for type Compositor
ogredemo_b.html:53MovableObjectFactory for type 'Entity' registered.
ogredemo_b.html:53MovableObjectFactory for type 'Light' registered.
ogredemo_b.html:53MovableObjectFactory for type 'BillboardSet' registered.
ogredemo_b.html:53MovableObjectFactory for type 'ManualObject' registered.
ogredemo_b.html:53MovableObjectFactory for type 'BillboardChain' registered.
ogredemo_b.html:53MovableObjectFactory for type 'RibbonTrail' registered.
ogredemo_b.html:53*-*-* OGRE Initialising
ogredemo_b.html:53*-*-* Version 1.8.0unstable (Byatis)
ogredemo_b.html:53Installing plugin: OpenGL ES 2.0 RenderSystem
ogredemo_b.html:53Installing plugin: OpenGL ES 2.0 RenderSystem
ogredemo_b.html:53OpenGL ES 2.x Rendering Subsystem created.
ogredemo_b.html:53OpenGL ES 2.x Rendering Subsystem created.
ogredemo_b.html:53	GLSupport addConfig called
ogredemo_b.html:53	GLSupport addConfig called
ogredemo_b.html:53Plugin successfully installed
ogredemo_b.html:53Plugin successfully installed
ogredemo_b.html:53Installing plugin: Octree Scene Manager
ogredemo_b.html:53Installing plugin: Octree Scene Manager
ogredemo_b.html:53Plugin successfully installed
ogredemo_b.html:53Plugin successfully installed
ogredemo_b.html:53CPU Identifier & Features
ogredemo_b.html:53CPU Identifier & Features
ogredemo_b.html:53-------------------------
ogredemo_b.html:53-------------------------
ogredemo_b.html:53 *   CPU ID: X86
ogredemo_b.html:53 *   CPU ID: X86
ogredemo_b.html:53-------------------------
ogredemo_b.html:53-------------------------
ogredemo_b.html:53	GLSupport start called
ogredemo_b.html:53	GLSupport start called
ogredemo_b.html:53	GLSupport createWindow called
ogredemo_b.html:53	GLSupport createWindow called
ogredemo_b.html:53GLES2RenderSystem::_createRenderWindow "Barebones Ogre test", 500x500 windowed  miscParams: pp::Instance=271572456 
ogredemo_b.html:53GLES2RenderSystem::_createRenderWindow "Barebones Ogre test", 500x500 windowed  miscParams: pp::Instance=271572456 
ogredemo_b.html:53	GLSupport newWindow called
ogredemo_b.html:53	GLSupport newWindow called
ogredemo_b.html:53	create called
ogredemo_b.html:53	create called
ogredemo_b.html:53	initNativeCreatedWindow called
ogredemo_b.html:53	initNativeCreatedWindow called
ogredemo_b.html:53	getting pp::Instance - if stopped here - it means the parameter is null!
ogredemo_b.html:53	getting pp::Instance - if stopped here - it means the parameter is null!
ogredemo_b.html:53	got the pp::Instance.
ogredemo_b.html:53	got the pp::Instance.
ogredemo_b.html:53	initNativeCreatedWindow ended
ogredemo_b.html:53	initNativeCreatedWindow ended
ogredemo_b.html:53	create context started
ogredemo_b.html:53	create context started
ogredemo_b.html:53GL_VERSION = OpenGL ES 2.0 Chromium
ogredemo_b.html:53GL_VERSION = OpenGL ES 2.0 Chromium
ogredemo_b.html:53GL_VENDOR = NVIDIA Corporation
ogredemo_b.html:53GL_VENDOR = NVIDIA Corporation
ogredemo_b.html:53GL_RENDERER = GeForce GTX 260M/PCI/SSE2
ogredemo_b.html:53GL_RENDERER = GeForce GTX 260M/PCI/SSE2
ogredemo_b.html:53GL_EXTENSIONS = GL_CHROMIUM_resource_safe GL_CHROMIUM_resize GL_CHROMIUM_strict_attribs GL_CHROMIUM_swapbuffers_complete_callback GL_CHROMIUM_rate_limit_offscreen_context GL_CHROMIUM_set_visibility GL_CHROMIUM_gpu_memory_manager GL_ANGLE_translated_shader_source GL_CHROMIUM_webglsl GL_EXT_texture_compression_dxt1 GL_CHROMIUM_texture_compression_dxt3 GL_CHROMIUM_texture_compression_dxt5 GL_EXT_texture_filter_anisotropic GL_GOOGLE_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_EXT_read_format_bgra GL_OES_rgb8_rgba8 GL_OES_texture_npot GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_CHROMIUM_framebuffer_multisample GL_OES_depth24 GL_OES_standard_derivatives GL_CHROMIUM_stream_texture GL_ARB_texture_rectangle GL_EXT_texture_storage GL_ANGLE_instanced_arrays GL_CHROMIUM_map_sub GL_CHROMIUM_flipy
ogredemo_b.html:53GL_EXTENSIONS = GL_CHROMIUM_resource_safe GL_CHROMIUM_resize GL_CHROMIUM_strict_attribs GL_CHROMIUM_swapbuffers_complete_callback GL_CHROMIUM_rate_limit_offscreen_context GL_CHROMIUM_set_visibility GL_CHROMIUM_gpu_memory_manager GL_ANGLE_translated_shader_source GL_CHROMIUM_webglsl GL_EXT_texture_compression_dxt1 GL_CHROMIUM_texture_compression_dxt3 GL_CHROMIUM_texture_compression_dxt5 GL_EXT_texture_filter_anisotropic GL_GOOGLE_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_EXT_read_format_bgra GL_OES_rgb8_rgba8 GL_OES_texture_npot GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_CHROMIUM_framebuffer_multisample GL_OES_depth24 GL_OES_standard_derivatives GL_CHROMIUM_stream_texture GL_ARB_texture_rectangle GL_EXT_texture_storage GL_ANGLE_instanced_arrays GL_CHROMIUM_map_sub GL_CHROMIUM_flipy
ogredemo_b.html:53EXT:GL_CHROMIUM_resource_safe
ogredemo_b.html:53EXT:GL_CHROMIUM_resource_safe
ogredemo_b.html:53EXT:GL_CHROMIUM_resize
ogredemo_b.html:53EXT:GL_CHROMIUM_resize
ogredemo_b.html:53EXT:GL_CHROMIUM_strict_attribs
ogredemo_b.html:53EXT:GL_CHROMIUM_strict_attribs
ogredemo_b.html:53EXT:GL_CHROMIUM_swapbuffers_complete_callback
ogredemo_b.html:53EXT:GL_CHROMIUM_swapbuffers_complete_callback
ogredemo_b.html:53EXT:GL_CHROMIUM_rate_limit_offscreen_context
ogredemo_b.html:53EXT:GL_CHROMIUM_rate_limit_offscreen_context
ogredemo_b.html:53EXT:GL_CHROMIUM_set_visibility
ogredemo_b.html:53EXT:GL_CHROMIUM_set_visibility
ogredemo_b.html:53EXT:GL_CHROMIUM_gpu_memory_manager
ogredemo_b.html:53EXT:GL_CHROMIUM_gpu_memory_manager
ogredemo_b.html:53EXT:GL_ANGLE_translated_shader_source
ogredemo_b.html:53EXT:GL_ANGLE_translated_shader_source
ogredemo_b.html:53EXT:GL_CHROMIUM_webglsl
ogredemo_b.html:53EXT:GL_CHROMIUM_webglsl
ogredemo_b.html:53EXT:GL_EXT_texture_compression_dxt1
ogredemo_b.html:53EXT:GL_EXT_texture_compression_dxt1
ogredemo_b.html:53EXT:GL_CHROMIUM_texture_compression_dxt3
ogredemo_b.html:53EXT:GL_CHROMIUM_texture_compression_dxt3
ogredemo_b.html:53EXT:GL_CHROMIUM_texture_compression_dxt5
ogredemo_b.html:53EXT:GL_CHROMIUM_texture_compression_dxt5
ogredemo_b.html:53EXT:GL_EXT_texture_filter_anisotropic
ogredemo_b.html:53EXT:GL_EXT_texture_filter_anisotropic
ogredemo_b.html:53EXT:GL_GOOGLE_depth_texture
ogredemo_b.html:53EXT:GL_GOOGLE_depth_texture
ogredemo_b.html:53EXT:GL_OES_packed_depth_stencil
ogredemo_b.html:53EXT:GL_OES_packed_depth_stencil
ogredemo_b.html:53EXT:GL_EXT_texture_format_BGRA8888
ogredemo_b.html:53EXT:GL_EXT_texture_format_BGRA8888
ogredemo_b.html:53EXT:GL_EXT_read_format_bgra
ogredemo_b.html:53EXT:GL_EXT_read_format_bgra
ogredemo_b.html:53EXT:GL_OES_rgb8_rgba8
ogredemo_b.html:53EXT:GL_OES_rgb8_rgba8
ogredemo_b.html:53EXT:GL_OES_texture_npot
ogredemo_b.html:53EXT:GL_OES_texture_npot
ogredemo_b.html:53EXT:GL_OES_texture_float
ogredemo_b.html:53EXT:GL_OES_texture_float
ogredemo_b.html:53EXT:GL_OES_texture_float_linear
ogredemo_b.html:53EXT:GL_OES_texture_float_linear
ogredemo_b.html:53EXT:GL_OES_texture_half_float
ogredemo_b.html:53EXT:GL_OES_texture_half_float
ogredemo_b.html:53EXT:GL_OES_texture_half_float_linear
ogredemo_b.html:53EXT:GL_OES_texture_half_float_linear
ogredemo_b.html:53EXT:GL_CHROMIUM_framebuffer_multisample
ogredemo_b.html:53EXT:GL_CHROMIUM_framebuffer_multisample
ogredemo_b.html:53EXT:GL_OES_depth24
ogredemo_b.html:53EXT:GL_OES_depth24
ogredemo_b.html:53EXT:GL_OES_standard_derivatives
ogredemo_b.html:53EXT:GL_OES_standard_derivatives
ogredemo_b.html:53EXT:GL_CHROMIUM_stream_texture
ogredemo_b.html:53EXT:GL_CHROMIUM_stream_texture
ogredemo_b.html:53EXT:GL_ARB_texture_rectangle
ogredemo_b.html:53EXT:GL_ARB_texture_rectangle
ogredemo_b.html:53EXT:GL_EXT_texture_storage
ogredemo_b.html:53EXT:GL_EXT_texture_storage
ogredemo_b.html:53EXT:GL_ANGLE_instanced_arrays
ogredemo_b.html:53EXT:GL_ANGLE_instanced_arrays
ogredemo_b.html:53EXT:GL_CHROMIUM_map_sub
ogredemo_b.html:53EXT:GL_CHROMIUM_map_sub
ogredemo_b.html:53EXT:GL_CHROMIUM_flipy
ogredemo_b.html:53EXT:GL_CHROMIUM_flipy
ogredemo_b.html:53**************************************
ogredemo_b.html:53**************************************
ogredemo_b.html:53*** OpenGL ES 2.x Renderer Started ***
ogredemo_b.html:53*** OpenGL ES 2.x Renderer Started ***
ogredemo_b.html:53**************************************
ogredemo_b.html:53**************************************
ogredemo_b.html:53GLSL ES support detected
ogredemo_b.html:53GLSL ES support detected
ogredemo_b.html:53Registering ResourceManager for type GpuProgram
ogredemo_b.html:53Registering ResourceManager for type GpuProgram
ogredemo_b.html:53GL ES 2: Using FBOs for rendering to textures
ogredemo_b.html:53GL ES 2: Using FBOs for rendering to textures
ogredemo_b.html:53FBO PF_UNKNOWN depth/stencil support: D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_UNKNOWN depth/stencil support: D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_L8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_L8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_L16 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_L16 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_BYTE_LA depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_BYTE_LA depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_R5G6B5 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_R5G6B5 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_B5G6R5 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_B5G6R5 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A4R4G4B4 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A4R4G4B4 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A1R5G5B5 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A1R5G5B5 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A8B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_A8B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_B8G8R8A8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_B8G8R8A8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_X8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_X8R8G8B8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_X8B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53FBO PF_X8B8G8R8 depth/stencil support: D0S0 D16S0 D24S0 Packed-D24S8 
ogredemo_b.html:53[GLES2] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_BYTE_LA PF_R5G6B5 PF_B5G6R5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_A8B8G8R8 PF_B8G8R8A8 PF_X8R8G8B8 PF_X8B8G8R8 
ogredemo_b.html:53[GLES2] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_BYTE_LA PF_R5G6B5 PF_B5G6R5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_A8B8G8R8 PF_B8G8R8A8 PF_X8R8G8B8 PF_X8B8G8R8 
ogredemo_b.html:53RenderSystem capabilities
ogredemo_b.html:53RenderSystem capabilities
ogredemo_b.html:53-------------------------
ogredemo_b.html:53-------------------------
ogredemo_b.html:53RenderSystem Name: OpenGL ES 2.x Rendering Subsystem
ogredemo_b.html:53RenderSystem Name: OpenGL ES 2.x Rendering Subsystem
ogredemo_b.html:53GPU Vendor: nvidia
ogredemo_b.html:53GPU Vendor: nvidia
ogredemo_b.html:53Device Name: GeForce GTX 260M/PCI/SSE2
ogredemo_b.html:53Device Name: GeForce GTX 260M/PCI/SSE2
ogredemo_b.html:53Driver Version: 0.0.0.0
ogredemo_b.html:53Driver Version: 0.0.0.0
ogredemo_b.html:53 * Fixed function pipeline: no
ogredemo_b.html:53 * Fixed function pipeline: no
ogredemo_b.html:53 * Hardware generation of mipmaps: yes
ogredemo_b.html:53 * Hardware generation of mipmaps: yes
ogredemo_b.html:53 * Texture blending: yes
ogredemo_b.html:53 * Texture blending: yes
ogredemo_b.html:53 * Anisotropic texture filtering: yes
ogredemo_b.html:53 * Anisotropic texture filtering: yes
ogredemo_b.html:53 * Dot product texture operation: yes
ogredemo_b.html:53 * Dot product texture operation: yes
ogredemo_b.html:53 * Cube mapping: yes
ogredemo_b.html:53 * Cube mapping: yes
ogredemo_b.html:53 * Hardware stencil buffer: yes
ogredemo_b.html:53 * Hardware stencil buffer: yes
ogredemo_b.html:53   - Stencil depth: 8
ogredemo_b.html:53   - Stencil depth: 8
ogredemo_b.html:53   - Two sided stencil support: yes
ogredemo_b.html:53   - Two sided stencil support: yes
ogredemo_b.html:53   - Wrap stencil values: yes
ogredemo_b.html:53   - Wrap stencil values: yes
ogredemo_b.html:53 * Hardware vertex / index buffers: yes
ogredemo_b.html:53 * Hardware vertex / index buffers: yes
ogredemo_b.html:53 * Vertex programs: yes
ogredemo_b.html:53 * Vertex programs: yes
ogredemo_b.html:53 * Number of floating-point constants for vertex programs: 1024
ogredemo_b.html:53 * Number of floating-point constants for vertex programs: 1024
ogredemo_b.html:53 * Number of integer constants for vertex programs: 1024
ogredemo_b.html:53 * Number of integer constants for vertex programs: 1024
ogredemo_b.html:53 * Number of boolean constants for vertex programs: 1024
ogredemo_b.html:53 * Number of boolean constants for vertex programs: 1024
ogredemo_b.html:53 * Fragment programs: yes
ogredemo_b.html:53 * Fragment programs: yes
ogredemo_b.html:53 * Number of floating-point constants for fragment programs: 512
ogredemo_b.html:53 * Number of floating-point constants for fragment programs: 512
ogredemo_b.html:53 * Number of integer constants for fragment programs: 512
ogredemo_b.html:53 * Number of integer constants for fragment programs: 512
ogredemo_b.html:53 * Number of boolean constants for fragment programs: 512
ogredemo_b.html:53 * Number of boolean constants for fragment programs: 512
ogredemo_b.html:53 * Geometry programs: no
ogredemo_b.html:53 * Geometry programs: no
ogredemo_b.html:53 * Number of floating-point constants for geometry programs: 0
ogredemo_b.html:53 * Number of floating-point constants for geometry programs: 0
ogredemo_b.html:53 * Number of integer constants for geometry programs: 0
ogredemo_b.html:53 * Number of integer constants for geometry programs: 0
ogredemo_b.html:53 * Number of boolean constants for geometry programs: 0
ogredemo_b.html:53 * Number of boolean constants for geometry programs: 0
ogredemo_b.html:53 * Supported Shader Profiles: glsles
ogredemo_b.html:53 * Supported Shader Profiles: glsles
ogredemo_b.html:53 * Texture Compression: yes
ogredemo_b.html:53 * Texture Compression: yes
ogredemo_b.html:53   - DXT: no
ogredemo_b.html:53   - DXT: no
ogredemo_b.html:53   - VTC: no
ogredemo_b.html:53   - VTC: no
ogredemo_b.html:53   - PVRTC: no
ogredemo_b.html:53   - PVRTC: no
ogredemo_b.html:53 * Scissor Rectangle: yes
ogredemo_b.html:53 * Scissor Rectangle: yes
ogredemo_b.html:53 * Hardware Occlusion Query: no
ogredemo_b.html:53 * Hardware Occlusion Query: no
ogredemo_b.html:53 * User clip planes: no
ogredemo_b.html:53 * User clip planes: no
ogredemo_b.html:53 * VET_UBYTE4 vertex element type: yes
ogredemo_b.html:53 * VET_UBYTE4 vertex element type: yes
ogredemo_b.html:53 * Infinite far plane projection: yes
ogredemo_b.html:53 * Infinite far plane projection: yes
ogredemo_b.html:53 * Hardware render-to-texture: yes
ogredemo_b.html:53 * Hardware render-to-texture: yes
ogredemo_b.html:53 * Floating point textures: yes
ogredemo_b.html:53 * Floating point textures: yes
ogredemo_b.html:53 * Non-power-of-two textures: no
ogredemo_b.html:53 * Non-power-of-two textures: no
ogredemo_b.html:53 * Volume textures: no
ogredemo_b.html:53 * Volume textures: no
ogredemo_b.html:53 * Multiple Render Targets: 1
ogredemo_b.html:53 * Multiple Render Targets: 1
ogredemo_b.html:53   - With different bit depths: no
ogredemo_b.html:53   - With different bit depths: no
ogredemo_b.html:53 * Point Sprites: yes
ogredemo_b.html:53 * Point Sprites: yes
ogredemo_b.html:53 * Extended point parameters: yes
ogredemo_b.html:53 * Extended point parameters: yes
ogredemo_b.html:53 * Max Point Size: 0
ogredemo_b.html:53 * Max Point Size: 0
ogredemo_b.html:53 * Vertex texture fetch: no
ogredemo_b.html:53 * Vertex texture fetch: no
ogredemo_b.html:53 * Number of world matrices: 0
ogredemo_b.html:53 * Number of world matrices: 0
ogredemo_b.html:53 * Number of texture units: 32
ogredemo_b.html:53 * Number of texture units: 32
ogredemo_b.html:53 * Stencil buffer depth: 8
ogredemo_b.html:53 * Stencil buffer depth: 8
ogredemo_b.html:53 * Number of vertex blend matrices: 0
ogredemo_b.html:53 * Number of vertex blend matrices: 0
ogredemo_b.html:53 * Render to Vertex Buffer : no
ogredemo_b.html:53 * Render to Vertex Buffer : no
ogredemo_b.html:53 * GL 1.5 without VBO workaround: no
ogredemo_b.html:53 * GL 1.5 without VBO workaround: no
ogredemo_b.html:53 * Frame Buffer objects: yes
ogredemo_b.html:53 * Frame Buffer objects: yes
ogredemo_b.html:53 * Frame Buffer objects (ARB extension): no
ogredemo_b.html:53 * Frame Buffer objects (ARB extension): no
ogredemo_b.html:53 * Frame Buffer objects (ATI extension): no
ogredemo_b.html:53 * Frame Buffer objects (ATI extension): no
ogredemo_b.html:53 * PBuffer support: no
ogredemo_b.html:53 * PBuffer support: no
ogredemo_b.html:53 * GL 1.5 without HW-occlusion workaround: no
ogredemo_b.html:53 * GL 1.5 without HW-occlusion workaround: no
ogredemo_b.html:53 * Separate shader objects: no
ogredemo_b.html:53 * Separate shader objects: no
ogredemo_b.html:53Registering ResourceManager for type Texture
ogredemo_b.html:53Registering ResourceManager for type Texture
ogredemo_b.html:53DefaultWorkQueue('Root') initialising on thread main.
ogredemo_b.html:53DefaultWorkQueue('Root') initialising on thread main.
ogredemo_b.html:53Particle Renderer Type 'billboard' registered
ogredemo_b.html:53Particle Renderer Type 'billboard' registered
ogredemo_b.html:53SceneManagerFactory for type 'OctreeSceneManager' registered.
ogredemo_b.html:53SceneManagerFactory for type 'OctreeSceneManager' registered.
ogredemo_b.html:53/mnt/sdb1/super/ldump/foundations/projects/ogretest/src/naclutils.cpp: 123
ogredemo_b.html:53/mnt/sdb1/super/ldump/foundations/projects/ogretest/src/naclutils.cpp: 123
ogredemo_b.html:53/mnt/sdb1/super/ldump/foundations/projects/ogretest/src/naclutils.cpp: 128
ogredemo_b.html:53/mnt/sdb1/super/ldump/foundations/projects/ogretest/src/naclutils.cpp: 128
ogredemo_b.html:53/mnt/sdb1/super/ldump/foundations/projects/ogretest/src/naclutils.cpp: 134
ogredemo_b.html:53/mnt/sdb1/super/ldump/foundations/projects/ogretest/src/naclutils.cpp: 134
ogredemo_b.html:53Parsing scripts for resource group Autodetect
ogredemo_b.html:53Parsing scripts for resource group Autodetect
ogredemo_b.html:53Finished parsing scripts for resource group Autodetect
ogredemo_b.html:53Finished parsing scripts for resource group Autodetect
ogredemo_b.html:53Creating resources for group Autodetect
ogredemo_b.html:53Creating resources for group Autodetect
ogredemo_b.html:53All done
ogredemo_b.html:53All done
ogredemo_b.html:53Parsing scripts for resource group General
ogredemo_b.html:53Parsing scripts for resource group General
ogredemo_b.html:53Finished parsing scripts for resource group General
ogredemo_b.html:53Finished parsing scripts for resource group General
ogredemo_b.html:53Creating resources for group General
ogredemo_b.html:53Creating resources for group General
ogredemo_b.html:53All done
ogredemo_b.html:53All done
ogredemo_b.html:53Parsing scripts for resource group Internal
ogredemo_b.html:53Parsing scripts for resource group Internal
ogredemo_b.html:53Finished parsing scripts for resource group Internal
ogredemo_b.html:53Finished parsing scripts for resource group Internal
ogredemo_b.html:53Creating resources for group Internal
ogredemo_b.html:53Creating resources for group Internal
ogredemo_b.html:53All done
ogredemo_b.html:53All done
ogredemo_b.html:53*** Initializing NACL OIS ***
ogredemo_b.html:53*** Initializing NACL OIS ***
ogredemo_b.html:53Extracting (585) meshes
ogredemo_b.html:53Extracting (585) meshes
ogredemo_b.html:53Extracting tree #0
ogredemo_b.html:53Extracting tree #0
ogredemo_b.html:53  Extraction time (ticks): 20000 Level: 3
ogredemo_b.html:53  Extraction time (ticks): 20000 Level: 3
ogredemo_b.html:53Extracting tree #1
ogredemo_b.html:53Extracting tree #1

..... REMOVED (application specific) ... TOO MANY CHARACTERS ....


ogredemo_b.html:53  Extraction time (ticks): 30000 Level: 1
ogredemo_b.html:53  Extraction time (ticks): 30000 Level: 1
ogredemo_b.html:53  vertices: 129 indices: 453
ogredemo_b.html:53  vertices: 129 indices: 453
ogredemo_b.html:53Extracting tree #584
ogredemo_b.html:53Extracting tree #584
ogredemo_b.html:53  Extraction time (ticks): 40000 Level: 0
ogredemo_b.html:53  Extraction time (ticks): 40000 Level: 0
ogredemo_b.html:53  vertices: 126 indices: 744
ogredemo_b.html:53  vertices: 126 indices: 744
ogredemo_b.html:53done ogre init!!!
ogredemo_b.html:53done ogre init!!!
ogredemo_b.html:53resize:500x500
ogredemo_b.html:53	resize called
ogredemo_b.html:53	resize called
ogredemo_b.html:53	resizing
ogredemo_b.html:53	resizing
ogredemo_b.html:53	done resizing
ogredemo_b.html:53	done resizing
ogredemo_b.html:53renderedOneFrame
ogredemo_b.html:53renderOneFrame
Because I didn't know what is driving the render loop, I decided to use setTimeout() and postMessage("renderOneFrame()"), and re-enable the check for that in HandleMessage() to call renderOneFrame(), so the rest of the console log is filled with scaffolding logs like "renderOneFrame() called".

The problem is that nothing is rendering (its white). I have no doubt that its something wrong in my application setup that I hacked out of your SampleBrowser_NaCl.h code. Sometimes, while playing with it (the code), I get some weird things to display, which look like very low-resolution ... "something" and it fades out on the page. If it would help, I can reduce my code to something you can compile and test. Basically, most of my code is to adapt the BasicApplication paradigm to NaCl, similar to your effort with the SampleBrowser.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

The log looks good.
I don't have a clue.
Get back to my sample, get it to work, then slowly change to your code...
Watch out for my OGRE related tweets here.
realazthat
Gnoblar
Posts: 8
Joined: Sun Apr 24, 2011 1:50 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by realazthat »

Assaf Raman wrote:The log looks good.
I don't have a clue.
Get back to my sample, get it to work, then slowly change to your code...
Yeah I am recompiling Ogre with the samples. Should I be using the html/js/nmf files from googlecode, or are they included with Ogre (can't find them)? Also, I think those files might be outdated, as I mentioned earlier, I don't understand *what* drives the renderloop anymore. There is a postMessage("renderOneFrame") called, but you removed the check for that in the samplebrowser, and nothing actually calls renderOneFrame().

Just in case someone wants to compile my reduced application:

https://gist.github.com/54c84cbe72fda63e6b85 (just press download to get an archive).

I am curious if this problem is reproduced in other people's setup, since I kludged a few things just getting Ogre to compile in my nacl environment.

An nmf file needs to be added, and the embed tag modified to point to it.
realazthat
Gnoblar
Posts: 8
Joined: Sun Apr 24, 2011 1:50 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by realazthat »

Erg, compiling the samples is turning out to be a large pain. Somehow, cmake is still looking for X11 and linking it in to SampleBrowser. Problem is, while it is finding X11, its in /usr/lib/, my system X11. The nacl compiler doesn't look in the system libs, so it complains -lX11 not found. I been looking through the mess of cmake files. I found line 75 in CMake/Dependencies.cmake and changed it like so:

Code: Select all

if (UNIX AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS AND NOT OGRE_BUILD_PLATFORM_NACL)
Still didn't help; X11 must be being added somewhere else too.
The library itself built ok without X11 though. Linking SampleBrowser fails (-lX11 not found).
I just grep'ed the ogre directory, and am going to track down every mention of X11 and strike it.

edit: btw this is how I run cmake:

Code: Select all


cmake ../ogre -DOGRE_BUILD_PLATFORM_NACL=true -DOGRE_STATIC=true \
        -DOGRE_BUILD_TOOLS=false -DOGRE_CONFIG_THREADS=0 -DOGRE_BUILD_RENDERSYSTEM_GL=false \
        -DOGRE_BUILD_RENDERSYSTEM_GLES2=true -DOGRE_CONFIG_ALLOCATOR=1 \
        -DOGRE_USE_BOOST=false -DOGRE_BUILD_PLUGIN_CG=false \
        -DOGRE_BUILD_SAMPLES=true \
        -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
        -DOPENGLES2_INCLUDE_DIR=$NACL_SYSTEM_PREFIX/include \
                -DOPENGLES2_gl_LIBRARY=$NACL_SYSTEM_PREFIX/lib32/libppapi_gles2.a \
        -DOIS_INCLUDE_DIR=$INSTALL_PREFIX/include/OIS \
                -DOIS_LIBRARY_REL=$INSTALL_PREFIX/lib/libOIS.a \
                -DOIS_LIBRARY_DBG=$INSTALL_PREFIX/lib/libOIS.a \
        -DZLIB_INCLUDE_DIR=$INSTALL_PREFIX/include \
                -DZLIB_LIBRARY_REL=$INSTALL_PREFIX/lib/libz.a\
        -DZZip_INCLUDE_DIR=$INSTALL_PREFIX/include \
                -DZZip_LIBRARY_REL=$INSTALL_PREFIX/lib/libzzip.a \
        -DFREETYPE_INCLUDE_DIR=$INSTALL_PREFIX/include/freetype2 \
                -DFREETYPE_FT2BUILD_INCLUDE_DIR=$INSTALL_PREFIX/include \
                -DFREETYPE_LIBRARY_REL=$INSTALL_PREFIX/lib/libfreetype.a \
        -DFreeImage_INCLUDE_DIR=$INSTALL_PREFIX/include \
                -DFreeImage_LIBRARY_REL=$INSTALL_PREFIX/lib/libfreeimage.a
realazthat
Gnoblar
Posts: 8
Joined: Sun Apr 24, 2011 1:50 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by realazthat »

Struck X11, and EGL too.

Now I just get linker errors when creating the binary. CMake is not linking in the gles2, ppapi, and ppapi_cpp (maybe some others) libraries. Also pthread, but I added that in for CMAKE_LINKER_FLAGS and those errors go away. However, CMAKE_LINKER_FLAGS must be filtering out the -l flags or something, because -lppapi_gles2 etc. doesn't help a thing.
realazthat
Gnoblar
Posts: 8
Joined: Sun Apr 24, 2011 1:50 pm

Re: OGRE port to NaCl (Google's Native Client)

Post by realazthat »

Ok, rehacked at the cmake files, link errors gone, only thing missing is -lnosys.
yak32
Gnoblar
Posts: 1
Joined: Thu Apr 02, 2009 8:09 am

Re: OGRE port to NaCl (Google's Native Client)

Post by yak32 »

VCProjectConverter.cs from conversion tool, function GetRelativePath(), line 57 should be changed to
something like

if ( l_builder.Length > 0 )
l_builder.Length--;

at least it fixed problem with exception in my case
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

where you able to compile the result solution and run it?
Watch out for my OGRE related tweets here.
wuxin
Gnoblar
Posts: 12
Joined: Wed Aug 22, 2012 8:08 am

Re: OGRE port to NaCl (Google's Native Client)

Post by wuxin »

can you upload the dependences zip again?because the address you load the source became invalid before.I receive some issues with the ogredependences instead when compiling
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

I checked the link on the first post on this thread and it works.
Are you in China?
Watch out for my OGRE related tweets here.
wuxin
Gnoblar
Posts: 12
Joined: Wed Aug 22, 2012 8:08 am

Re: OGRE port to NaCl (Google's Native Client)

Post by wuxin »

yes,what can I do to get the dependences?
wuxin
Gnoblar
Posts: 12
Joined: Wed Aug 22, 2012 8:08 am

Re: OGRE port to NaCl (Google's Native Client)

Post by wuxin »

thank for your help .I have solved the problem and I have downloaded the dependences.
wuxin
Gnoblar
Posts: 12
Joined: Wed Aug 22, 2012 8:08 am

Re: OGRE port to NaCl (Google's Native Client)

Post by wuxin »

I had Compiled the ogre_nacl.sln with vs(Chinese version) yesterday following your steps,but I found a link problem when I had compiled the project of SampleBrowser。The problem is below

Code: Select all

  
1>  Performing Custom Build Tools
1>  Compiling "F:\ogrenacl1-8\Samples\Browser\src\SampleBrowser.cpp" for 32 bit
1>  In file included from F:/ogrenacl1-8/OgreMain/include/OgreResourceBackgroundQueue.h:36,
1>                   from F:/ogrenacl1-8/OgreMain/include/Ogre.h:95,
1>                   from F:/ogrenacl1-8/Samples/Common/include/OgreStaticPluginLoader.h:24,
1>                   from F:/ogrenacl1-8/Samples/Common/include/SampleContext.h:80,
1>                   from F:/ogrenacl1-8/Samples/Browser/include/SampleBrowser.h:32,
1>                   from F:\ogrenacl1-8\Samples\Browser\src\SampleBrowser.cpp:33:
1>  F:/ogrenacl1-8/OgreMain/include/OgreWorkQueue.h:475: warning: extra 鈥?鈥?[-pedantic]
1>  F:/ogrenacl1-8/OgreMain/include/OgreWorkQueue.h:532: warning: extra 鈥?鈥?[-pedantic]
1>  In file included from F:\ogrenacl1-8\Samples\Browser\src\SampleBrowser.cpp:44:
1>  F:/ogrenacl1-8/Samples/Browser/include/SampleBrowser_NaCl.h: In member function 鈥榲irtual const std::string& Ogre::AppDelegate::IosInputNaCl::NaClKeyboard::getAsString(OIS::KeyCode)鈥?
1>  F:/ogrenacl1-8/Samples/Browser/include/SampleBrowser_NaCl.h:841: warning: returning reference to temporary
1>  Performing Custom Build Tools
1>  Compiling "F:\ogrenacl1-8\Samples\Browser\src\FileSystemLayerImpl_NaCl.cpp" for 32 bit
1>  Performing Custom Build Tools
1>  Linking SampleBrowser for NaCl 32 bit
1>  F:\ogrenacl1-8\build\out/libzziplib_NaCl_x86_32.a(err_32.o): In function `zzip_errno':
1>  err.c:(.text+0xbc): warning: the stub `__errno' is not thread-safe, don't use it in multi-threaded environment
1>  F:\ogrenacl1-8\build\out/libOgreRTShaderSystem_x86_32.a(OgreShaderGenerator_32.o): In function `Ogre::RTShader::ShaderGenerator::setShaderCachePath(std::string const&)':
1>  OgreShaderGenerator.cpp:(.text+0xdc1c): warning: the `remove' function is not implemented and will always fail
1>  /libexec/../lib/gcc/x86_64-nacl/4.4.3/../../../../x86_64-nacl/lib/../lib32/libnosys.a(__errno.o): In function `__errno':
1>  /cygdrive/e/b/build/slave/windows-sdk-multirel/build/src/native_client/src\untrusted\nosys/__errno.c:15: warning: the stub `errno' is not thread-safe, don't use it in multi-threaded environment
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLES2HardwarePixelBuffer_32.o): In function `Ogre::GLES2RenderBuffer::GLES2RenderBuffer(unsigned int, unsigned int, unsigned int, int)':
1>  OgreGLES2HardwarePixelBuffer.cpp:(.text+0x155c): undefined reference to `GLES2RenderbufferStorageMultisampleAPPLE'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLES2HardwarePixelBuffer_32.o): In function `Ogre::GLES2RenderBuffer::GLES2RenderBuffer(unsigned int, unsigned int, unsigned int, int)':
1>  OgreGLES2HardwarePixelBuffer.cpp:(.text+0x171c): undefined reference to `GLES2RenderbufferStorageMultisampleAPPLE'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESProgramPipeline_32.o): In function `Ogre::GLSLESProgramPipeline::~GLSLESProgramPipeline()':
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x85c): undefined reference to `GLES2DeleteProgramPipelinesEXT'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESProgramPipeline_32.o): In function `Ogre::GLSLESProgramPipeline::~GLSLESProgramPipeline()':
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x91c): undefined reference to `GLES2DeleteProgramPipelinesEXT'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESProgramPipeline_32.o): In function `Ogre::GLSLESProgramPipeline::~GLSLESProgramPipeline()':
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x9bc): undefined reference to `GLES2DeleteProgramPipelinesEXT'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESProgramPipeline_32.o): In function `Ogre::GLSLESProgramPipeline::updateUniforms(Ogre::SharedPtr<Ogre::GpuProgramParameters>, unsigned short, Ogre::GpuProgramType)':
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xbfc): undefined reference to `GLES2ProgramUniform1fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xc5c): undefined reference to `GLES2ProgramUniform2fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xcbc): undefined reference to `GLES2ProgramUniform3fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xd1c): undefined reference to `GLES2ProgramUniform4fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xd7c): undefined reference to `GLES2ProgramUniform1ivEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xdfc): undefined reference to `GLES2ProgramUniformMatrix2fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xe7c): undefined reference to `GLES2ProgramUniformMatrix3fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xefc): undefined reference to `GLES2ProgramUniformMatrix4fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xf5c): undefined reference to `GLES2ProgramUniform1ivEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0xfbc): undefined reference to `GLES2ProgramUniform2ivEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x101c): undefined reference to `GLES2ProgramUniform3ivEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x107c): undefined reference to `GLES2ProgramUniform4ivEXT'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESProgramPipeline_32.o): In function `Ogre::GLSLESProgramPipeline::updatePassIterationUniforms(Ogre::SharedPtr<Ogre::GpuProgramParameters>)':
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x11dc): undefined reference to `GLES2ProgramUniform1fvEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x123c): undefined reference to `GLES2ProgramUniform1fvEXT'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESProgramPipeline_32.o): In function `Ogre::GLSLESProgramPipeline::compileAndLink()':
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x12dc): undefined reference to `GLES2GenProgramPipelinesEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x12fc): undefined reference to `GLES2BindProgramPipelineEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x13dc): undefined reference to `GLES2ProgramParameteriEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x161c): undefined reference to `GLES2ProgramParameteriEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x19fc): undefined reference to `GLES2UseProgramStagesEXT'
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x1a5c): undefined reference to `GLES2UseProgramStagesEXT'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESProgramPipeline_32.o): In function `Ogre::GLSLESProgramPipeline::_useProgram()':
1>  OgreGLSLESProgramPipeline.cpp:(.text+0x80d): undefined reference to `GLES2BindProgramPipelineEXT'
1>  F:\ogrenacl1-8\build\out/libRenderSystem_GLES2_x86_32.a(OgreGLSLESExtSupport_32.o): In function `Ogre::logObjectInfo(std::string const&, unsigned int)':
1>  OgreGLSLESExtSupport.cpp:(.text+0xfc): undefined reference to `GLES2IsProgramPipelineEXT'
1>  OgreGLSLESExtSupport.cpp:(.text+0x11c): undefined reference to `GLES2ValidateProgramPipelineEXT'
1>  OgreGLSLESExtSupport.cpp:(.text+0x13c): undefined reference to `GLES2GetProgramPipelineivEXT'
1>  OgreGLSLESExtSupport.cpp:(.text+0x3dc): undefined reference to `GLES2IsProgramPipelineEXT'
1>  OgreGLSLESExtSupport.cpp:(.text+0x61c): undefined reference to `GLES2GetProgramPipelineInfoLogEXT'
1>  collect2: ld returned 1 exit status
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: “cmd.exe”已退出,代码为 1。


The LinkNacl of SampleBrowser is below

Code: Select all

set CYGWIN=nodosfilewarning
echo Linking SampleBrowser for NaCl $(PlatformArchitecture) bit
cd "$(ProjectDir)$(Configuration)_$(PlatformArchitecture)"
"$(NACL_SDK_ROOT)\toolchain\win_x86_newlib\bin\x86_64-nacl-g++" -o "$(SolutionDir)out\$(ProjectName)_x86_$(PlatformArchitecture).nexe"  -melf_nacl -m$(PlatformArchitecture) --strip-all "SampleBrowser_$(PlatformArchitecture).o" "FileSystemLayerImpl_NaCl_$(PlatformArchitecture).o" "-L$(SolutionDir)out" -lOgreTerrain_x86_$(PlatformArchitecture)  -lSample_BezierPatch_x86_$(PlatformArchitecture) -lSample_BSP_x86_$(PlatformArchitecture) -lSample_CameraTrack_x86_$(PlatformArchitecture) -lSample_CelShading_x86_$(PlatformArchitecture) -lSample_Character_x86_$(PlatformArchitecture) -lSample_Compositor_x86_$(PlatformArchitecture) -lSample_CubeMapping_x86_$(PlatformArchitecture) -lSample_DeferredShading_x86_$(PlatformArchitecture) -lSample_Dot3Bump_x86_$(PlatformArchitecture) -lSample_DynTex_x86_$(PlatformArchitecture) -lSample_FacialAnimation_x86_$(PlatformArchitecture) -lSample_Fresnel_x86_$(PlatformArchitecture) -lSample_Grass_x86_$(PlatformArchitecture) -lSample_Instancing_x86_$(PlatformArchitecture) -lSample_Isosurf_x86_$(PlatformArchitecture) -lSample_Lighting_x86_$(PlatformArchitecture) -lSample_NewInstancing_x86_$(PlatformArchitecture) -lSample_Ocean_x86_$(PlatformArchitecture) -lSample_ParticleFX_x86_$(PlatformArchitecture) -lSample_ParticleGS_x86_$(PlatformArchitecture) -lSample_ShaderSystem_x86_$(PlatformArchitecture) -lSample_Shadows_x86_$(PlatformArchitecture) -lSample_SkeletalAnimation_x86_$(PlatformArchitecture) -lSample_SkyBox_x86_$(PlatformArchitecture) -lSample_SkyDome_x86_$(PlatformArchitecture) -lSample_SkyPlane_x86_$(PlatformArchitecture) -lSample_Smoke_x86_$(PlatformArchitecture) -lSample_SphereMapping_x86_$(PlatformArchitecture) -lSample_Terrain_x86_$(PlatformArchitecture) -lSample_TextureArray_x86_$(PlatformArchitecture) -lSample_TextureFX_x86_$(PlatformArchitecture) -lSample_Transparency_x86_$(PlatformArchitecture) -lSample_VolumeTex_x86_$(PlatformArchitecture) -lSample_Water_x86_$(PlatformArchitecture) -lOgrePaging_x86_$(PlatformArchitecture)  -lPlugin_BSPSceneManager_x86_$(PlatformArchitecture) -lPlugin_OctreeSceneManager_x86_$(PlatformArchitecture) -lPlugin_OctreeZone_x86_$(PlatformArchitecture) -lPlugin_ParticleFX_x86_$(PlatformArchitecture) -lPlugin_PCZSceneManager_x86_$(PlatformArchitecture) -lOgreRTShaderSystem_x86_$(PlatformArchitecture) -lRenderSystem_GLES2_x86_$(PlatformArchitecture)  -lOgreMain_x86_$(PlatformArchitecture) -lfreetype_NaCl_x86_$(PlatformArchitecture) -lOIS_NaCl_x86_$(PlatformArchitecture)  -lzziplib_NaCl_x86_$(PlatformArchitecture) -lFreeImageLib_x86_$(PlatformArchitecture) -lOpenEXR_x86_$(PlatformArchitecture) -lLibJPEG_x86_$(PlatformArchitecture) -lLibMNG_x86_$(PlatformArchitecture) -lLibOpenJPEG_x86_$(PlatformArchitecture) -lLibPNG_x86_$(PlatformArchitecture) -lLibRawLite_x86_$(PlatformArchitecture) -lLibTIFF_x86_$(PlatformArchitecture) -lZLib-FreeImage_x86_$(PlatformArchitecture)  -lppapi_gles2 -lppapi -lppapi_cpp -lnosys

I do not know where the error is。I am upset with it now。Can you give me some advices which can solve my problem?Wait for your advices。
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

I will try to help. I will try to build with latest NaCl SDK and latest OGRE and see the issue.
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: OGRE port to NaCl (Google's Native Client)

Post by Assaf Raman »

Building now, will have answers for you in about two hours.
Watch out for my OGRE related tweets here.
Post Reply