shailesh / pyglet

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

Label formatting issue when using Python 3 on Pyglet 1.2 RC1 #774

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Install Pyglet version 1.2 RC1
2. Create a script based on the tutorial from the pyglet programming guide. 
Found here: http://www.pyglet.org/doc/programming_guide/hello_world.html
3. Run the script using Python 3.

I have tried running this script in both Python 2 and Python 3. Python 2 runs 
everything just fine while 3 just loads up a black window and crashes before 
the Label is drawn.

################################################################################
####################

Paste in the traceback or error message (this was produced when running each 
line of the script in the Python3 interpreter):

>>> label = pyglet.text.Label('Hello World', font_name = 'Times New Roman', 
font_size = 10, x = window.width//2, y = window.height//2, anchor_x = 'center', 
anchor_y = 'center')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/__init__.py", line 441, in __init__
    'align': align,
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/document.py", line 595, in set_style
    0, len(self.text), attributes)
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/document.py", line 506, in set_style
    self.dispatch_event('on_style_text', start, end, attributes)
  File "/usr/local/lib/python3.4/dist-packages/pyglet/event.py", line 355, in dispatch_event
    if handler(*args):
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/layout.py", line 1004, in on_style_text
    self._init_document()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/layout.py", line 977, in _init_document
    self._update()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/layout.py", line 911, in _update
    lines = self._get_lines()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/layout.py", line 887, in _get_lines
    glyphs = self._get_glyphs()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/layout.py", line 1009, in _get_glyphs
    self._document.get_font_runs(dpi=self._dpi),
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/document.py", line 605, in get_font_runs
    ft = self.get_font(dpi=dpi)
  File "/usr/local/lib/python3.4/dist-packages/pyglet/text/document.py", line 615, in get_font
    bold=bool(bold), italic=bool(italic), dpi=dpi) 
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/__init__.py", line 648, in load
    font = _font_class(name, size, bold=bold, italic=italic, dpi=dpi)
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/freetype.py", line 246, in __init__
    self._set_face(self._load_font_face())
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/freetype.py", line 275, in _load_font_face
    return self._load_font_face_from_system()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/freetype.py", line 278, in _load_font_face_from_system
    match = get_fontconfig().find_font(self.name, self.size, self.bold, self.italic)
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/fontconfig.py", line 136, in find_font
    result = search_pattern.match()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/fontconfig.py", line 299, in match
    self._prepare_search_pattern()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/fontconfig.py", line 309, in _prepare_search_pattern
    self._set_string(FC_FAMILY, self.name)
  File "/usr/local/lib/python3.4/dist-packages/pyglet/font/fontconfig.py", line 222, in _set_string
    self._fontconfig.FcPatternAddString(self._pattern, name, value)
ctypes.ArgumentError: argument 3: <class 'TypeError'>: wrong type

################################################################################
############################

Paste in the output of `python -m pyglet.info` (This is actually from running 
'python3 -m pyglet.info'. I wasn't sure if there was a difference but I figured 
this would be more relevant for this issue):

Python
------------------------------------------------------------------------------
sys.version: 3.4.2 (default, Oct  8 2014, 13:08:17) 
[GCC 4.9.1]
sys.platform: linux
sys.maxint: 9223372036854775807
os.getcwd(): /home/alex

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

pyglet.window
------------------------------------------------------------------------------
platform: <pyglet.window.Platform object at 0x7fe3874b5dd8>
display: <pyglet.canvas.xlib.XlibDisplay object at 0x7fe382943470>
screens[0]: XlibScreen(display=<pyglet.canvas.xlib.XlibDisplay object at 
0x7fe382943470>, x=0, y=0, width=1366, height=768, xinerama=0)
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'] = 8
config['green_size'] = 8
config['blue_size'] = 8
config['alpha_size'] = 8
config['depth_size'] = 24
config['stencil_size'] = 8
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: XlibContextARB()

window.context._info
------------------------------------------------------------------------------
gl_info.get_version(): 3.0 Mesa 10.3.2
gl_info.get_vendor(): Intel Open Source Technology Center
gl_info.get_renderer(): Mesa DRI Intel(R) Ivybridge Mobile 
gl_info.get_extensions():
   GL_3DFX_texture_compression_FXT1
   GL_AMD_conservative_depth
   GL_AMD_draw_buffers_blend
   GL_AMD_performance_monitor
   GL_AMD_seamless_cubemap_per_texture
   GL_AMD_shader_trinary_minmax
   GL_ANGLE_texture_compression_dxt3
   GL_ANGLE_texture_compression_dxt5
   GL_APPLE_object_purgeable
   GL_APPLE_packed_pixels
   GL_APPLE_vertex_array_object
   GL_ARB_ES2_compatibility
   GL_ARB_ES3_compatibility
   GL_ARB_blend_func_extended
   GL_ARB_buffer_storage
   GL_ARB_clear_buffer_object
   GL_ARB_clear_texture
   GL_ARB_color_buffer_float
   GL_ARB_compressed_texture_pixel_storage
   GL_ARB_conditional_render_inverted
   GL_ARB_conservative_depth
   GL_ARB_copy_buffer
   GL_ARB_copy_image
   GL_ARB_debug_output
   GL_ARB_depth_buffer_float
   GL_ARB_depth_clamp
   GL_ARB_depth_texture
   GL_ARB_derivative_control
   GL_ARB_draw_buffers
   GL_ARB_draw_buffers_blend
   GL_ARB_draw_elements_base_vertex
   GL_ARB_draw_instanced
   GL_ARB_explicit_attrib_location
   GL_ARB_explicit_uniform_location
   GL_ARB_fragment_coord_conventions
   GL_ARB_fragment_program
   GL_ARB_fragment_program_shadow
   GL_ARB_fragment_shader
   GL_ARB_framebuffer_object
   GL_ARB_framebuffer_sRGB
   GL_ARB_get_program_binary
   GL_ARB_half_float_pixel
   GL_ARB_half_float_vertex
   GL_ARB_instanced_arrays
   GL_ARB_internalformat_query
   GL_ARB_invalidate_subdata
   GL_ARB_map_buffer_alignment
   GL_ARB_map_buffer_range
   GL_ARB_multi_bind
   GL_ARB_multisample
   GL_ARB_multitexture
   GL_ARB_occlusion_query
   GL_ARB_occlusion_query2
   GL_ARB_pixel_buffer_object
   GL_ARB_point_parameters
   GL_ARB_point_sprite
   GL_ARB_provoking_vertex
   GL_ARB_robustness
   GL_ARB_sample_shading
   GL_ARB_sampler_objects
   GL_ARB_seamless_cube_map
   GL_ARB_seamless_cubemap_per_texture
   GL_ARB_separate_shader_objects
   GL_ARB_shader_atomic_counters
   GL_ARB_shader_bit_encoding
   GL_ARB_shader_objects
   GL_ARB_shader_texture_lod
   GL_ARB_shading_language_100
   GL_ARB_shading_language_420pack
   GL_ARB_shading_language_packing
   GL_ARB_shadow
   GL_ARB_sync
   GL_ARB_texture_border_clamp
   GL_ARB_texture_compression
   GL_ARB_texture_compression_bptc
   GL_ARB_texture_compression_rgtc
   GL_ARB_texture_cube_map
   GL_ARB_texture_cube_map_array
   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_gather
   GL_ARB_texture_mirror_clamp_to_edge
   GL_ARB_texture_mirrored_repeat
   GL_ARB_texture_multisample
   GL_ARB_texture_non_power_of_two
   GL_ARB_texture_query_levels
   GL_ARB_texture_query_lod
   GL_ARB_texture_rectangle
   GL_ARB_texture_rg
   GL_ARB_texture_rgb10_a2ui
   GL_ARB_texture_storage
   GL_ARB_texture_storage_multisample
   GL_ARB_texture_swizzle
   GL_ARB_texture_view
   GL_ARB_timer_query
   GL_ARB_transform_feedback2
   GL_ARB_transform_feedback3
   GL_ARB_transform_feedback_instanced
   GL_ARB_transpose_matrix
   GL_ARB_uniform_buffer_object
   GL_ARB_vertex_array_bgra
   GL_ARB_vertex_array_object
   GL_ARB_vertex_attrib_binding
   GL_ARB_vertex_buffer_object
   GL_ARB_vertex_program
   GL_ARB_vertex_shader
   GL_ARB_vertex_type_10f_11f_11f_rev
   GL_ARB_vertex_type_2_10_10_10_rev
   GL_ARB_window_pos
   GL_ATI_blend_equation_separate
   GL_ATI_draw_buffers
   GL_ATI_separate_stencil
   GL_ATI_texture_env_combine3
   GL_ATI_texture_float
   GL_EXT_abgr
   GL_EXT_bgra
   GL_EXT_blend_color
   GL_EXT_blend_equation_separate
   GL_EXT_blend_func_separate
   GL_EXT_blend_minmax
   GL_EXT_blend_subtract
   GL_EXT_compiled_vertex_array
   GL_EXT_copy_texture
   GL_EXT_draw_buffers2
   GL_EXT_draw_instanced
   GL_EXT_draw_range_elements
   GL_EXT_fog_coord
   GL_EXT_framebuffer_blit
   GL_EXT_framebuffer_multisample
   GL_EXT_framebuffer_multisample_blit_scaled
   GL_EXT_framebuffer_object
   GL_EXT_framebuffer_sRGB
   GL_EXT_gpu_program_parameters
   GL_EXT_multi_draw_arrays
   GL_EXT_packed_depth_stencil
   GL_EXT_packed_float
   GL_EXT_packed_pixels
   GL_EXT_pixel_buffer_object
   GL_EXT_point_parameters
   GL_EXT_polygon_offset
   GL_EXT_provoking_vertex
   GL_EXT_rescale_normal
   GL_EXT_secondary_color
   GL_EXT_separate_specular_color
   GL_EXT_shader_integer_mix
   GL_EXT_shadow_funcs
   GL_EXT_stencil_two_side
   GL_EXT_stencil_wrap
   GL_EXT_subtexture
   GL_EXT_texture
   GL_EXT_texture3D
   GL_EXT_texture_array
   GL_EXT_texture_compression_dxt1
   GL_EXT_texture_compression_rgtc
   GL_EXT_texture_compression_s3tc
   GL_EXT_texture_cube_map
   GL_EXT_texture_edge_clamp
   GL_EXT_texture_env_add
   GL_EXT_texture_env_combine
   GL_EXT_texture_env_dot3
   GL_EXT_texture_filter_anisotropic
   GL_EXT_texture_integer
   GL_EXT_texture_lod_bias
   GL_EXT_texture_object
   GL_EXT_texture_rectangle
   GL_EXT_texture_sRGB
   GL_EXT_texture_sRGB_decode
   GL_EXT_texture_shared_exponent
   GL_EXT_texture_snorm
   GL_EXT_texture_swizzle
   GL_EXT_timer_query
   GL_EXT_transform_feedback
   GL_EXT_vertex_array
   GL_EXT_vertex_array_bgra
   GL_IBM_multimode_draw_arrays
   GL_IBM_rasterpos_clip
   GL_IBM_texture_mirrored_repeat
   GL_INGR_blend_func_separate
   GL_INTEL_performance_query
   GL_KHR_debug
   GL_MESA_pack_invert
   GL_MESA_texture_signed_rgba
   GL_MESA_window_pos
   GL_NV_blend_square
   GL_NV_conditional_render
   GL_NV_depth_clamp
   GL_NV_light_max_exponent
   GL_NV_packed_depth_stencil
   GL_NV_primitive_restart
   GL_NV_texgen_reflection
   GL_NV_texture_env_combine4
   GL_NV_texture_rectangle
   GL_OES_EGL_image
   GL_OES_read_format
   GL_S3_s3tc
   GL_SGIS_generate_mipmap
   GL_SGIS_texture_border_clamp
   GL_SGIS_texture_edge_clamp
   GL_SGIS_texture_lod
   GL_SUN_multi_draw_arrays

pyglet.gl.glu_info
------------------------------------------------------------------------------
glu_info.get_version(): 1.3
glu_info.get_extensions():
   GLU_EXT_nurbs_tessellator
   GLU_EXT_object_space_tess

pyglet.gl.glx_info
------------------------------------------------------------------------------
context.is_direct(): 1
glx_info.get_server_vendor(): SGI
glx_info.get_server_version(): 1.4
glx_info.get_server_extensions():
   GLX_ARB_create_context
   GLX_ARB_create_context_profile
   GLX_ARB_create_context_robustness
   GLX_ARB_fbconfig_float
   GLX_ARB_framebuffer_sRGB
   GLX_ARB_multisample
   GLX_EXT_create_context_es2_profile
   GLX_EXT_framebuffer_sRGB
   GLX_EXT_import_context
   GLX_EXT_texture_from_pixmap
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_MESA_copy_sub_buffer
   GLX_OML_swap_method
   GLX_SGI_swap_control
   GLX_SGIS_multisample
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGIX_visual_select_group
   GLX_INTEL_swap_event
glx_info.get_client_vendor(): Mesa Project and SGI
glx_info.get_client_version(): 1.4
glx_info.get_client_extensions():
   GLX_ARB_create_context
   GLX_ARB_create_context_profile
   GLX_ARB_create_context_robustness
   GLX_ARB_fbconfig_float
   GLX_ARB_framebuffer_sRGB
   GLX_ARB_get_proc_address
   GLX_ARB_multisample
   GLX_EXT_import_context
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_EXT_fbconfig_packed_float
   GLX_EXT_framebuffer_sRGB
   GLX_EXT_create_context_es2_profile
   GLX_MESA_copy_sub_buffer
   GLX_MESA_multithread_makecurrent
   GLX_MESA_query_renderer
   GLX_MESA_swap_control
   GLX_OML_swap_method
   GLX_OML_sync_control
   GLX_SGI_make_current_read
   GLX_SGI_swap_control
   GLX_SGI_video_sync
   GLX_SGIS_multisample
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGIX_visual_select_group
   GLX_EXT_texture_from_pixmap
   GLX_INTEL_swap_event
   GLX_EXT_buffer_age
glx_info.get_extensions():
   GLX_ARB_create_context
   GLX_ARB_create_context_profile
   GLX_ARB_create_context_robustness
   GLX_ARB_fbconfig_float
   GLX_ARB_framebuffer_sRGB
   GLX_ARB_get_proc_address
   GLX_ARB_multisample
   GLX_EXT_import_context
   GLX_EXT_visual_info
   GLX_EXT_visual_rating
   GLX_EXT_framebuffer_sRGB
   GLX_EXT_create_context_es2_profile
   GLX_MESA_copy_sub_buffer
   GLX_MESA_multithread_makecurrent
   GLX_MESA_query_renderer
   GLX_MESA_swap_control
   GLX_OML_swap_method
   GLX_OML_sync_control
   GLX_SGI_make_current_read
   GLX_SGI_swap_control
   GLX_SGI_video_sync
   GLX_SGIS_multisample
   GLX_SGIX_fbconfig
   GLX_SGIX_pbuffer
   GLX_SGIX_visual_select_group
   GLX_EXT_texture_from_pixmap
   GLX_INTEL_swap_event
   GLX_EXT_buffer_age

pyglet.media
------------------------------------------------------------------------------
audio driver: <pyglet.media.drivers.pulse.PulseAudioDriver object at 
0x7fe37fcff128>

pyglet.media.avbin
------------------------------------------------------------------------------
AVbin not available.

pyglet.media.drivers.openal
------------------------------------------------------------------------------
Library: <CDLL 'libopenal.so.1', handle 2557d50 at 7fe37fc749e8>
Version: (1, 1)
Extensions:
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/pyglet/info.py", line 206, in _try_dump
    func()
  File "/usr/local/lib/python3.4/dist-packages/pyglet/info.py", line 184, in dump_al
    for extension in driver.get_extensions():
  File "/usr/local/lib/python3.4/dist-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.

Original issue reported on code.google.com by alx...@gmail.com on 30 Jan 2015 at 5:43

GoogleCodeExporter commented 9 years ago
Sorry if this is a duplicate report. I could not find anything when searching 
for this issue but I might not have been searching for the right terms.

Original comment by alx...@gmail.com on 30 Jan 2015 at 5:44