Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
GoogleCodeExporter opened this issue Apr 6, 2015 · 1 comment
Open

Comments

@GoogleCodeExporter
Copy link

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 [email protected] on 30 Jan 2015 at 5:43

@GoogleCodeExporter
Copy link
Author

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 [email protected] on 30 Jan 2015 at 5:44

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant