> On Feb 23, 2016, at 8:30 AM, Michalis Kamburelis <michalis.ka...@gmail.com> 
> wrote:
> 
> It looks like the majority of the startup code is in castlewindow_android but 
> I was expected to see an OpenGL context (surface view I think in Android). 
> How do you render OpenGL then?
> 
> 
> castlewindow_android.inc does
> 
>   {$I castlewindow_egl.inc}
> 
> and the code that initializes OpenGLES context is inside 
> castlewindow_egl.inc. It's using EGL library, 
> https://www.khronos.org/registry/egl/ , specification blessed by Khronos, 
> available on Android, able to initialize OpenGL ES context.
> 
> It can also be used to initialize OpenGL ES context on the desktops (which is 
> useful to test OpenGL ES renderer on Linux, Windows etc.). That's why the 
> code is not inside castlewindow_android.inc --- it's more generally useful.
> 

I see now! I’m using OpenGLES 1.x but I think I can use the EGL window 
functions you have translated in your OpenGLES 2 unit.

> So UNIX I/O “works” but you can’t read anything without the asset manager? 
> That doesn’t really make sense but either way using the Asset manager in a 
> stream like you did is just fine. I only need to read the contents of images 
> and XML files anyways.
> 
> 
> UNIX I/O works for reading files. On disk (device internal memory, sdcard 
> etc.).
> 
> It doesn't work to read stuff from the apk. Because the files you put inside 
> apk ("assets" in Android terminology) are not available to you as normal 
> files inside the Android application. You don't know where (and if, at all) 
> they are unpackaged on the Android filesystem. You can only access them 
> (read-only) using AssetManager.

Ok. I need to learn about the file system more then.

> 
> I was using ReadXMLFile to read the XML file but I assume this is just a 
> helper function that wraps something lower level I could use in conjunction 
> with the asset manager. Is that correct? Can’t find your code for this.
> 
> 
> See the URLReadXML implementation:
> 
> procedure URLReadXML(out Doc: TXMLDocument; const URL: String);
> var
>  Stream: TStream;
> begin
>  Doc := nil; // clean "out" param at start, just like ReadXMLFile
>  Stream := Download(URL, []);
>  try
>    ReadXMLFile(Doc, Stream);
>  finally FreeAndNil(Stream) end;
> end;
> 
> So it simply reads URL to a TStream, then uses overloaded ReadXMLFile version 
> that reads XML from a stream:)
> So internally Android just uses the same C libraries we were using in Pascal? 
> I guess that makes sense but I was thinking EVERYTHING on the system was now 
> Java but that’s not the case I guess. The lesson here is that Android is 
> built on Linux so we’re sharing more than I think.

This will probably make more sense when I learn about the asset manager more. I 
think I read there is a format like asset:// for file URL’s.

Thanks again!



Regards,
        Ryan Joseph

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to