[scilab-Users] using SDL library in Scilab [interfacing]

Allan CORNET allan.cornet at scilab.org
Tue Mar 27 12:51:16 CEST 2012


Hi,

Try to check if you have really loaded all dependencies required before to
execute loader.sce

What is the result of link('libSDL.so') ?

Simple DirectMedia Layer is a very good multimedia multiplatform library.

Why you create another Image processing module and not to try to participate
to some current projects ?
(I am persuaded that authors of SIVP or IPD will be happy to have some new
contributors)

Allan

-----Message d'origine-----
De : Remy_Abergel [mailto:remy.abergel at parisdescartes.fr] 
Envoyé : mardi 27 mars 2012 12:32
À : users at lists.scilab.org
Objet : [scilab-Users] using SDL library in Scilab [interfacing]

Hello, 

I'm trying to create a new *Image Processing Toolbox* for Scilab.
I could implement successfully basics functions (displaying grayscaled image
on the screen, zooming using the mouse left double click, showing pixels
coordinates and values using mouse left-click, ...) using Scilab graphic
objects (figures) and Matplot.

This is efficient, but not fully satisfying me. That is why I would like to
re-write the main display functions in *C-code with SDL library*. I would
then interface the code with Scilab.

As a first try, I would like *to draw a SDL window on the screen*. For that
I use the following code:

void show_win()
{
    SDL_Init(SDL_INIT_VIDEO); // SDL initialisation
    SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE); 
    pause();
    SDL_Quit(); // quit SDL
}

void pause() //wait until the window is closed {
	int cont = 1;
	SDL_Event event;
   while (cont){
		SDL_WaitEvent(&event);
		switch(event.type){
			case SDL_QUIT:
			cont = 0;
		}
	}
}



And here is the interface that I wrote (in the same file as functions
"pause" and "show_win"):

int interface_show_win(char *fname)
{
  int minlhs=0, maxlhs=0, minrhs=0, maxrhs=0;
  CheckRhs(minrhs,maxrhs) ;
  CheckLhs(minlhs,maxlhs) ;
  show_window();
  return 0;
}


the include files are the following:

#include <stdlib.h>
#include <stdio.h>
#include "stack-c.h"
#include <SDL/SDL.h>


and here is the builder.sce file content:

ilib_name  = 'lib_show_win'	// interface library name 
files = ['interface_show_win.o'];
libs  = [] 		// other libs needed for linking
table =['show_win', 'interface_show_win'];
ilib_build(ilib_name,table,files,libs)


when I type in Scilab: exec builder.sce
the loader.sce file is sucessfuly created.

But when I type in Scilab: exec builder.sce *I get the following error*:


-->addinter(lib_show_win_path+'/lib_show_win.so','lib_show_win',list_fun
-->ctions);
Link failed for dynamic library
'/home/remy/Workspaces/Scilab/interface/window//lib_show_win.so'.
An error occurred:
/home/remy/Workspaces/Scilab/interface/window//lib_show_win.so: undefined
symbol: SDL_WaitEvent
Link failed for dynamic library
'/home/remy/Workspaces/Scilab/interface/window//lib_show_win.so'.
An error occurred:
/home/remy/Workspaces/Scilab/interface/window//lib_show_win.so: undefined
symbol: SDL_WaitEvent
addinter(lib_show_win_path+'/lib_show_win.so','lib_show_win',list_functions)
;
                                                                            
!--error 236
addinter: The shared archive was not loaded: (null)
at line       7 of exec file called by :    
exec loader.sce
 
 

I guess this is due to a bad linking of SDL library. It remains a little bit
confuse for me, but I tryied to change the libs'var in builder.sce, trying
successively: 

libs  = ['SDL'] 		// other libs needed for linking 
libs  = ['libSDL'] 		// other libs needed for linking 
libs  = ['lSDL'] 		// other libs needed for linking 
libs  = ['SDLmain'] 		// other libs needed for linking 

It still doesn't work. If you know what is wrong, please let me know.

Best Regards, 

R. Abergel

--
View this message in context:
http://mailinglists.scilab.org/using-SDL-library-in-Scilab-interfacing-tp386
0938p3860938.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at
Nabble.com.

--
To unsubscribe from this mailing-list, please send an empty mail to
users-unsubscribe at lists.scilab.org
To check the archives of this mailing list, see
http://mailinglists.scilab.org/





More information about the users mailing list