i'm new to ctypes. can someone help me use sdl_pango with python? here's the documentation: http://sdlpango.sourceforge.net/
here's my code: ----------------------------------------------------- import pygame from ctypes import * import win32api MATRIX_TRANSPARENT_BACK_WHITE_LETTER = c_char_p("\xFF\xFF\0\0\xFF\xFF \0\0\xFF\xFF\0\0\0\xFF\0\0") margin_x = margin_y = 10 def sdlwrite(rtext, width, height=None): context = sdlpango.SDLPango_CreateContext() sdlpango.SDLPango_SetDefaultColor(context, MATRIX_TRANSPARENT_BACK_WHITE_LETTER) sdlpango.SDLPango_SetMinimumSize(context, width, height) sdlpango.SDLPango_SetMarkup(context, rtext, -1) w = sdlpango.SDLPango_GetLayoutWidth(context) h = sdlpango.SDLPango_GetLayoutHeight(context) surface = sdl.SDL_CreateRGBSurface(sdlpango.SDL_SWSURFACE, w + margin_x, h + margin_y, 32, 255 << (8*3), 255 << (8*2), 255 << (8*1), 255) sp = POINTER(surface) sdlpango.SDLPango_Draw(context, ps, margin_x, margin_y) sdl.SDL_FreeSurface(ps) return context def surfwrite(rtext, width, height=None): sdlcontext = sdlwrite(rtext, width, height) print 'sdlcontext:', sdlcontext #scr = pygame.set_mode() #rloss, gloss, bloss, aloss = scr. sdlpango = windll.LoadLibrary(r"C:\projects\soundshop\pango-1.18.3\bin \sdl_pango.dll") sdl = windll.LoadLibrary(r"sdl.dll") #sdlpango.SDLPango_SetDefaultColor.argtypes = [c_void_p, c_char_p] #sdlpango.SDLPango_SetMinimumSize.argtypes = [c_void_p, c_int, c_int] #sdlpango.SDLPango_SetMarkup.argtypes = [c_void_p, c_char_p, c_int] #sdlpango.SDLPango_GetLayoutWidth.argtypes = [c_void_p] #sdlpango.SDLPango_GetLayoutHeight.argtypes = [c_void_p] #sdl.SDL_CreateRGBSurface.argtypes = [c_uint, c_int, c_int, c_int, c_uint, c_uint, c_uint, c_uint] #sdlpango.SDLPango_Draw.argtypes = [c_void_p, c_uint, c_int, c_int] #sdl.SDL_FreeSurface.argtypes = [c_void_p] sdlpango.SDLPango_SetDefaultColor.argtypes = [c_uint, c_uint] sdlpango.SDLPango_SetMinimumSize.argtypes = [c_uint, c_int, c_int] sdlpango.SDLPango_SetMarkup.argtypes = [c_uint, c_char_p, c_int] sdlpango.SDLPango_GetLayoutWidth.argtypes = [c_uint] sdlpango.SDLPango_GetLayoutHeight.argtypes = [c_uint] sdl.SDL_CreateRGBSurface.argtypes = [c_uint, c_int, c_int, c_int, c_uint, c_uint, c_uint, c_uint] sdlpango.SDLPango_Draw.argtypes = [c_uint, c_uint, c_int, c_int] sdl.SDL_FreeSurface.argtypes = [c_uint] surfwrite("hello", 640) ----------------------------------------------------- here's the .h file that i got MATRIX_TRANSPARENT_BACK_WHITE_LETTER from. http://sdlpango.sourceforge.net/_s_d_l___pango_8h-source.html ----------------------------------------------------- here's my error: Traceback (most recent call last): File "C:\projects\soundshop\sdlpango.py", line 54, in <module> surfwrite("hello", 640) File "C:\projects\soundshop\sdlpango.py", line 25, in surfwrite sdlcontext = sdlwrite(rtext, width, height) File "C:\projects\soundshop\sdlpango.py", line 13, in sdlwrite sdlpango.SDLPango_SetDefaultColor(context, MATRIX_TRANSPARENT_BACK_WHITE_LETTER) ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: wrong type ----------------------------------------------------- i've tried other things, like using c_char_p instead for MATRIX_TRANSPARENT_BACK_WHITE_LETTER, but the only other result i can manage to get is this: C:\projects\soundshop>sdlpango.py Traceback (most recent call last): File "C:\projects\soundshop\sdlpango.py", line 52, in <module> surfwrite("hello", 640) File "C:\projects\soundshop\sdlpango.py", line 25, in surfwrite sdlcontext = sdlwrite(rtext, width, height) File "C:\projects\soundshop\sdlpango.py", line 13, in sdlwrite sdlpango.SDLPango_SetDefaultColor(context, MATRIX_TRANSPARENT_BACK_WHITE_LETTER) ValueError: Procedure probably called with too many arguments (8 bytes in excess) ----------------------------------------------------- thx for any help. -- http://mail.python.org/mailman/listinfo/python-list