Re: [sdljava-users] UnsatisfiedLinkError Exception Problem
Status: Beta
Brought to you by:
ivan_ganza
From: Ivan Z. G. <iva...@ya...> - 2005-06-10 02:15:05
|
This is strange. Is the function present in the sdljava.dll? send me your sdljava.dll. Are you compiling from sources? -Ivan/ Chris Dennett wrote: > Hi, I'm having a bit of a problem with: > IntBuffer pixelData = surface.getPixelData().asIntBuffer(); > > The code is throwing me the following exception. > > Exception in thread "main" java.lang.UnsatisfiedLinkError: > SWIG_getPixelDirectByteBuffer > at > sdljava.x.swig.SWIG_SDLVideoJNI.SWIG_getPixelDirectByteBuffer(Native > Method) > at > sdljava.x.swig.SWIG_SDLVideo.SWIG_getPixelDirectByteBuffer(SWIG_SDLVideo.java:266) > > at sdljava.video.SDLSurface.getPixelData(SDLSurface.java:950) > at > loach.screen.SurfaceTransformer.flipHorizontal(SurfaceTransformer.java:27) > > at loach.Loach.<init>(Loach.java:102) > at loach.Loach.main(Loach.java:177) > Picked up _JAVA_OPTIONS: -Dsun.java2d.d3d=true > > Please help, I'm not sure what is wrong. This code is used in some > horizontal image flip transformation code I wrote. > > public static void flipHorizontal(SDLSurface surface) throws > SDLException { > surface.lockSurface(); > int > width = surface.getWidth(), > height = surface.getHeight(), > pixels = width * height > ; > IntBuffer pixelData = surface.getPixelData().asIntBuffer(); > int[] data = pixelData.array(); > int[][] pData = new int[pixels][4]; > for (int i = 0; i < pixels; i++) { > for (int j = 0; j < 4; j++) { > pData[i][j] = data[i * j]; > } > } > int[][][] rData = new int[height][width][4]; > for (int row = 0; row < height; row++) { > for (int col = 0; col < width; col++) { > rData[row][col] = pData[row * col]; > } > } > int[] temp = new int[width]; > for (int row = 0; row < height; row++) { > for (int left = 0, right = rData[row].length - 1; left < > right; left++, right--) { > /* exchange the first and last */ > temp = rData[row][left]; > rData[row][left] = rData[row][right]; > rData[row][right] = temp; > } > } > /* deconstruct this shit and give me a fucking normal int > array */ > for (int row = 0; row < height; row++) { > for (int col = 0; col < width; col++) { > for (int i = 0; i < 4; i++) { > data[row * col * i] = rData[row][col][i]; > } > } > } > pixelData.clear(); > pixelData.put(data); > surface.unlockSurface(); > } > > Thanks in advance, > Chris > |