Thanks,
Yes, I will look into cder. 
Regards,Jon

> Date: Sat, 8 Aug 2015 21:40:16 +0800
> From: [email protected]
> To: [email protected]
> Subject: Re: [Jprogramming] J calling C++ SDL
> 
> I think your code will not work on 64-bit platforms. You need to figure out
> which parameters will be 64-bit.
> 
> when using c, the c compiler will figure this out for you, but when using
> J, you are on you own.
> 
> if cd raise domain error, cder'' will tell why is failed.
> 
> please study the j user manual.
> 
> I am really just experimenting here. SDL is a well known C/C++ media
> library. https://www.libsdl.org/download-2.0.php
> It is possible to use SDL for all kinds of things, but it is often used for
> games and game prototyping.
> This is a well known series of tutorials for SDL:
> http://lazyfoo.net/tutorials/SDL/02_getting_an_image_on_the_screen/index.php
> These functions need to be called first:
> SDL_Init( SDL_INIT_VIDEO );
> SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED,
> SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
> SDL_GetWindowSurface( gWindow );
> SDL_CreateWindow and SDL_GetWindowSurface return pointers to SDL objects.
> This is my J attempt at calling these functions:
> 
> load 'dll files'
> 
> 
> lib =: '/path/to/libSDL2.so'
> 
> NB. takes an int, returns a pointer
> 
> SDL_Init =: 'SDL_Init i i'
> 
> NB. takes window title, dimensions and returns a pointer
> 
> SDL_CreateWindow =: 'SDL_CreateWindow i *c i i i i i'
> 
> NB. takes the previous pointer and returns a pointer to a window surface.
> 
> SDL_GetWindowSurface =: 'SDL_GetWindowSurface i x'
> 
> NB. Load a bitmap, needs the path to the bitmap
> 
> SDL_LoadBMP =: 'SDL_LoadBMP i *c'
> 
> 
> initParams =: <0
> 
> cwParams =: 'DEMO';10;10;700;500;0
> 
> bmpParams =: <'path/to/bmp file'
> 
> 
> call1 =: lib, ' ',SDL_Init
> 
> call2 =: lib,' ',SDL_CreateWindow
> 
> call3 =: lib,' ',SDL_GetWindowSurface
> 
> 
> call4 =: lib,' ', SDL_LoadBMP
> 
> 
> 
> 
> Now I do
> 
> call1 cd initParams NB. seems ok after calling this
> 
> call2 cd cwParams NB. seems ok. Window should be created. On Mac / Linux it
> created a black window
> 
> call3 cd 1292939 NB. the right argument is the previous result's returned
> pointer.
> 
> 
> The last call crashes J on Mac, but doesn't crash it on Linux (32-bit
> Ubuntu).
> 
> So on Ubuntu I got this far, and it seems like it might just work, so I
> want to try putting a bitmap on the screen. First I need to load the bitmap.
> 
> call4 cd bmpParams
> 
> This is where I always get a domain error. I am not sure why. It sould be
> noted that you can't use PNG files with LoadBitmap, you need another
> library (SDL_image).
> 
> Why call4 gives a domain error is difficult to understand. The path is
> correct, and it SDL_LoadBMP looks like this:
> 
> https://wiki.libsdl.org/SDL_LoadBMP
> 
> Any ideas how to proceed? Thanks in advance. As I said, I am really just
> experimenting so I do not know if this should work.
> 
> Thanks,
> 
> Jon
> 
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
                                          
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to