kmonsoor / pyglet

Automatically exported from code.google.com/p/pyglet
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

ctypes.ArgumentError from Python 3.4.2 after modifying image.anchor of an animated Gif #775

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Have you tried Pyglet 1.2 alpha1 or the repository code?

What steps will reproduce the problem?

Run the program below from 

OS X 10.10.2, Python 3.4.2
parse_version(pyglet.version)
('00000001', '00000002', '*alpha', '00000001', '*final')

Run the same code with Python 2.7.8 and there are no errors

Run the program without the section to modify the image anchor and it works in 
both Python 3 and Python 2

Program to display a sprite with an animated gif

import pyglet

window = pyglet.window.Window(800, 800) 

pyglet.resource.path = ['../resources']
pyglet.resource.reindex()

animation = pyglet.resource.animation("large_earth.gif")

anchor_x = animation.get_max_width()/2
anchor_y = animation.get_max_height()/2

for f in animation.frames:
    f.image.anchor_x = anchor_x
    f.image.anchor_y = anchor_y

world = pyglet.sprite.Sprite(img=animation, x=400, y=400) 

@window.event 

def on_draw(): 
        window.clear()
        world.draw()

if __name__ == '__main__': 

    pyglet.app.run()

Paste in the traceback or error message:

Traceback (most recent call last):
  File "./animate.py", line 18, in <module>
    world = pyglet.sprite.Sprite(img=animation, x=400, y=400) 
  File "/usr/local/lib/python3.4/site-packages/pyglet/sprite.py", line 229, in __init__
    self._texture = img.frames[0].image.get_texture()
  File "/usr/local/lib/python3.4/site-packages/pyglet/image/__init__.py", line 818, in get_texture
    force_rectangle)
  File "/usr/local/lib/python3.4/site-packages/pyglet/image/__init__.py", line 809, in create_texture
    self.anchor_x, self.anchor_y, 0, None)
  File "/usr/local/lib/python3.4/site-packages/pyglet/image/__init__.py", line 986, in blit_to_texture
    data)
ctypes.ArgumentError: argument 3: <class 'TypeError'>: wrong type

Paste in the output of `python -m pyglet.info`:

Python
------------------------------------------------------------------------------
sys.version: 3.4.2 (default, Oct 19 2014, 17:55:38) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)]
sys.platform: darwin
sys.maxint: 9223372036854775807
PyObjC not available
os.getcwd(): /Users/ianhoward/IansFiles/Python/pyglet/Firstprogram/version1

pyglet
------------------------------------------------------------------------------
pyglet.version: 1.2alpha1
pyglet.compat_platform: darwin
pyglet.__file__: /usr/local/lib/python3.4/site-packages/pyglet/__init__.py
pyglet.options['search_local_libs'] = True
pyglet.options['debug_gl'] = True
pyglet.options['debug_texture'] = False
pyglet.options['debug_gl_trace_args'] = False
pyglet.options['debug_trace_depth'] = 1
pyglet.options['debug_trace'] = False
pyglet.options['xlib_fullscreen_override_redirect'] = False
pyglet.options['xsync'] = True
pyglet.options['debug_trace_flush'] = True
pyglet.options['vsync'] = None
pyglet.options['debug_gl_trace'] = False
pyglet.options['debug_win32'] = False
pyglet.options['audio'] = ('directsound', 'pulse', 'openal', 'silent')
pyglet.options['debug_trace_args'] = False
pyglet.options['graphics_vbo'] = True
pyglet.options['font'] = ('gdiplus', 'win32')
pyglet.options['debug_graphics_batch'] = False
pyglet.options['debug_x11'] = False
pyglet.options['debug_font'] = False
pyglet.options['debug_media'] = False
pyglet.options['shadow_window'] = True
pyglet.options['darwin_cocoa'] = True
pyglet.options['debug_lib'] = False

pyglet.window
------------------------------------------------------------------------------
platform: <pyglet.window.Platform object at 0x109f232e8>
display: <pyglet.canvas.cocoa.CocoaDisplay object at 0x10a5934a8>
screens[0]: CocoaScreen(x=0, y=0, width=2560, height=1440)
config['double_buffer'] = 1
config['stereo'] = 0
config['buffer_size'] = 32
config['aux_buffers'] = 0
config['sample_buffers'] = 0
config['samples'] = 0
config['red_size'] = 0
config['green_size'] = 0
config['blue_size'] = 0
config['alpha_size'] = 8
config['depth_size'] = 32
config['stencil_size'] = 0
config['accum_red_size'] = 0
config['accum_green_size'] = 0
config['accum_blue_size'] = 0
config['accum_alpha_size'] = 0
config['major_version'] = None
config['minor_version'] = None
config['forward_compatible'] = None
config['debug'] = None
context: CocoaContext()

window.context._info
------------------------------------------------------------------------------
gl_info.get_version(): 2.1 ATI-1.30.5
gl_info.get_vendor(): ATI Technologies Inc.
gl_info.get_renderer(): AMD Radeon R9 M295X OpenGL Engine
gl_info.get_extensions():
   GL_APPLE_aux_depth_stencil
   GL_APPLE_client_storage
   GL_APPLE_element_array
   GL_APPLE_fence
   GL_APPLE_float_pixels
   GL_APPLE_flush_buffer_range
   GL_APPLE_flush_render
   GL_APPLE_object_purgeable
   GL_APPLE_packed_pixels
   GL_APPLE_pixel_buffer
   GL_APPLE_rgb_422
   GL_APPLE_row_bytes
   GL_APPLE_specular_vector
   GL_APPLE_texture_range
   GL_APPLE_transform_hint
   GL_APPLE_vertex_array_object
   GL_APPLE_vertex_array_range
   GL_APPLE_vertex_point_size
   GL_APPLE_vertex_program_evaluators
   GL_APPLE_ycbcr_422
   GL_ARB_color_buffer_float
   GL_ARB_depth_buffer_float
   GL_ARB_depth_clamp
   GL_ARB_depth_texture
   GL_ARB_draw_buffers
   GL_ARB_draw_elements_base_vertex
   GL_ARB_draw_instanced
   GL_ARB_fragment_program
   GL_ARB_fragment_program_shadow
   GL_ARB_fragment_shader
   GL_ARB_framebuffer_object
   GL_ARB_framebuffer_sRGB
   GL_ARB_half_float_pixel
   GL_ARB_half_float_vertex
   GL_ARB_imaging
   GL_ARB_instanced_arrays
   GL_ARB_multisample
   GL_ARB_multitexture
   GL_ARB_occlusion_query
   GL_ARB_pixel_buffer_object
   GL_ARB_point_parameters
   GL_ARB_point_sprite
   GL_ARB_provoking_vertex
   GL_ARB_seamless_cube_map
   GL_ARB_shader_objects
   GL_ARB_shader_texture_lod
   GL_ARB_shading_language_100
   GL_ARB_shadow
   GL_ARB_shadow_ambient
   GL_ARB_sync
   GL_ARB_texture_border_clamp
   GL_ARB_texture_compression
   GL_ARB_texture_compression_rgtc
   GL_ARB_texture_cube_map
   GL_ARB_texture_env_add
   GL_ARB_texture_env_combine
   GL_ARB_texture_env_crossbar
   GL_ARB_texture_env_dot3
   GL_ARB_texture_float
   GL_ARB_texture_mirrored_repeat
   GL_ARB_texture_non_power_of_two
   GL_ARB_texture_rectangle
   GL_ARB_texture_rg
   GL_ARB_transpose_matrix
   GL_ARB_vertex_array_bgra
   GL_ARB_vertex_blend
   GL_ARB_vertex_buffer_object
   GL_ARB_vertex_program
   GL_ARB_vertex_shader
   GL_ARB_window_pos
   GL_ATI_blend_equation_separate
   GL_ATI_blend_weighted_minmax
   GL_ATI_separate_stencil
   GL_ATI_texture_compression_3dc
   GL_ATI_texture_env_combine3
   GL_ATI_texture_float
   GL_ATI_texture_mirror_once
   GL_EXT_abgr
   GL_EXT_bgra
   GL_EXT_bindable_uniform
   GL_EXT_blend_color
   GL_EXT_blend_equation_separate
   GL_EXT_blend_func_separate
   GL_EXT_blend_minmax
   GL_EXT_blend_subtract
   GL_EXT_clip_volume_hint
   GL_EXT_debug_label
   GL_EXT_debug_marker
   GL_EXT_depth_bounds_test
   GL_EXT_draw_buffers2
   GL_EXT_draw_range_elements
   GL_EXT_fog_coord
   GL_EXT_framebuffer_blit
   GL_EXT_framebuffer_multisample
   GL_EXT_framebuffer_object
   GL_EXT_framebuffer_sRGB
   GL_EXT_geometry_shader4
   GL_EXT_gpu_program_parameters
   GL_EXT_gpu_shader4
   GL_EXT_multi_draw_arrays
   GL_EXT_packed_depth_stencil
   GL_EXT_packed_float
   GL_EXT_provoking_vertex
   GL_EXT_rescale_normal
   GL_EXT_secondary_color
   GL_EXT_separate_specular_color
   GL_EXT_shadow_funcs
   GL_EXT_stencil_two_side
   GL_EXT_stencil_wrap
   GL_EXT_texture_array
   GL_EXT_texture_compression_dxt1
   GL_EXT_texture_compression_s3tc
   GL_EXT_texture_env_add
   GL_EXT_texture_filter_anisotropic
   GL_EXT_texture_integer
   GL_EXT_texture_lod_bias
   GL_EXT_texture_mirror_clamp
   GL_EXT_texture_rectangle
   GL_EXT_texture_sRGB
   GL_EXT_texture_sRGB_decode
   GL_EXT_texture_shared_exponent
   GL_EXT_timer_query
   GL_EXT_transform_feedback
   GL_EXT_vertex_array_bgra
   GL_IBM_rasterpos_clip
   GL_NV_blend_square
   GL_NV_conditional_render
   GL_NV_depth_clamp
   GL_NV_fog_distance
   GL_NV_light_max_exponent
   GL_NV_texgen_reflection
   GL_NV_texture_barrier
   GL_SGIS_generate_mipmap
   GL_SGIS_texture_edge_clamp
   GL_SGIS_texture_lod
   GL_SGI_color_matrix

pyglet.gl.glu_info
------------------------------------------------------------------------------
glu_info.get_version(): 1.3 MacOSX
glu_info.get_extensions():

pyglet.gl.glx_info
------------------------------------------------------------------------------
GLX not available.

pyglet.media
------------------------------------------------------------------------------
audio driver: <pyglet.media.drivers.openal.OpenALDriver object at 0x10fb35048>

pyglet.media.avbin
------------------------------------------------------------------------------
Library: <CDLL '/usr/local/lib/libavbin.dylib', handle 7f8734533f30 at 
10fb26390>
AVbin version: 10
FFmpeg revision: 0

pyglet.media.drivers.openal
------------------------------------------------------------------------------
Library: <CDLL '/System/Library/Frameworks/OpenAL.framework/OpenAL', handle 
7f8734247440 at 10f81e7f0>
Version: (1, 1)
Extensions:
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/site-packages/pyglet/info.py", line 206, in _try_dump
    func()
  File "/usr/local/lib/python3.4/site-packages/pyglet/info.py", line 184, in dump_al
    for extension in driver.get_extensions():
  File "/usr/local/lib/python3.4/site-packages/pyglet/media/drivers/openal/__init__.py", line 635, in get_extensions
    return ctypes.cast(extensions, ctypes.c_char_p).value.split(' ')
TypeError: Type str doesn't support the buffer API

pyglet.input.wintab
------------------------------------------------------------------------------
WinTab not available.

Any additional info (platform/language/hardware) that may be relevant?

Apologies if this is a duplicate or user error

Original issue reported on code.google.com by howardan...@aol.com on 3 Feb 2015 at 10:48

GoogleCodeExporter commented 9 years ago
Further testing I have found an animated Gif that doesn't produce the error and 
two that do:

These two cause the error
http://www.netanimations.net/GPS-satellite-around-Earth-moving-animation.gif
and
http://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gi
f

This one doesn't
http://www.gifanimations.com/download.php?dlKey=Mz1kb2h0ZU15cmV2aWxlZCZlZXJmPWVw
eVRkYW9sbndvZCY9RTJOeklHTzBZV05qWkdNPURJZWxpZm9ycCY9RTJOeklHTzBZV05qWldNNUVqTT1E
SWFpZGVtZmM1ZjQ4YjM3YQ==, 
http://www.gifanimations.com/photo/MjE5MWZjNWY0OGIzN2E=/explosion.html

Original comment by howardan...@aol.com on 4 Feb 2015 at 7:25