hugoam / kiui Goto Github PK
View Code? Open in Web Editor NEWAuto-layout Ui library, lightweight, skinnable and system agnostic, with an OpenGL backend
License: zlib License
Auto-layout Ui library, lightweight, skinnable and system agnostic, with an OpenGL backend
License: zlib License
If I move the cursor to the end of the textbox in the "Text Editor" demo and start typing, everything's OK. If I put a space, the cursor will appear on the next line. Continuing to type will move it back to the correct position...until I enter another space.
the kiui is compiled fine but the examples do not
1>------ Build started: Project: kiui_example, Configuration: Debug Win32 ------
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall mk::UiWindow::init(void)" (__imp_?init@UiWindow@mk@@QAEXXZ) referenced in function _main
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class mk::RootForm & __thiscall mk::UiWindow::rootForm(void)" (__imp_?rootForm@UiWindow@mk@@QAEAAVRootForm@2@XZ) referenced in function _main
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl mk::createUiTest(class mk::Form &)" (__imp_?createUiTest@mk@@YAXAAVForm@1@@Z) referenced in function _main
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall mk::GlWindow::GlWindow(unsigned int,unsigned int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (__imp_??0GlWindow@mk@@QAE@IIV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) referenced in function _main
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall mk::GlWindow::~GlWindow(void)" (__imp_??1GlWindow@mk@@QAE@XZ) referenced in function _main
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class mk::UiWindow & __thiscall mk::GlWindow::uiWindow(void)" (__imp_?uiWindow@GlWindow@mk@@QAEAAVUiWindow@2@XZ) referenced in function _main
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall mk::GlWindow::initContext(void)" (__imp_?initContext@GlWindow@mk@@QAEXXZ) referenced in function _main
1>example_nanovg.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: bool __thiscall mk::GlWindow::renderFrame(void)" (__imp_?renderFrame@GlWindow@mk@@QAE_NXZ) referenced in function _main
1>G:\dev\cpp\2d\kiui\kiui\build\example\Debug\kiui_example.exe : fatal error LNK1120: 8 unresolved externals
========== Build: 0 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========
Gdb backtrace of hanged thread. Looks like hang at libkiui.so dynamic lib start:
(gdb) bt
0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
1 0x00007ffff63e3023 in __cxa_guard_acquire () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
2 0x00007ffff79c6132 in mk::Type::cls() () from /usr/local/lib/libkiui.so
3 0x00007ffff79c5ebc in mk::Type::Type() () from /usr/local/lib/libkiui.so
4 0x00007ffff79c6150 in mk::Type::cls() () from /usr/local/lib/libkiui.so
5 0x00007ffff79c5ebc in mk::Type::Type() () from /usr/local/lib/libkiui.so
6 0x00007ffff79cf05d in mk::Type& mk::typecls() () from /usr/local/lib/libkiui.so
7 0x00007ffff79d21b8 in mk::Dispatch<mk::ValueWidget, bool&, &(mk::WValue& mk::valueWidget<bool&, mk::Input >(mk::Sheet*, mk::Lref&, bool&))>::Dispatch() () from /usr/local/lib/libkiui.so
8 0x00007ffff79cee44 in __static_initialization_and_destruction_0 () from /usr/local/lib/libkiui.so
9 0x00007ffff79cefb1 in _GLOBAL__sub_I_mkInput.cpp () from /usr/local/lib/libkiui.so
10 0x00007ffff7dea9fa in call_init (l=, argc=argc@entry=1, argv=argv@entry=0x7fffffffe0c8,
env=env@entry=0x7fffffffe0d8) at dl-init.c:78
11 0x00007ffff7deaae3 in call_init (env=0x7fffffffe0d8, argv=0x7fffffffe0c8, argc=1, l=) at dl-init.c:36
12 _dl_init (main_map=0x7ffff7ffe1a8, argc=1, argv=0x7fffffffe0c8, env=0x7fffffffe0d8) at dl-init.c:126
13 0x00007ffff7ddd1ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
14 0x0000000000000001 in ?? ()
15 0x00007fffffffe3dc in ?? ()
16 0x0000000000000000 in ?? ()
Hi, I've run valgrind memory analyzer on kiui_example. Everything below may be missdetected problems.
There are some interesting places to check:
Once on startup:
Source and destination overlap in memcpy(0xeca1370, 0xeca1370, 2016)
in nvg__drawListRenderTriangles at /home/alexey/dev/src/kiui/src/Ui/Nano/nanovg/nanovg.c:625
1: memcpy@@GLIBC_2.14 в /mnt/valgrind-3.10.0/memcheck/../shared/vg_replace_strmem.c:915
2: nvg__drawListRenderTriangles в /home/alexey/dev/src/kiui/src/Ui/Nano/nanovg/nanovg.c:625
3: nvg__renderText в /home/alexey/dev/src/kiui/src/Ui/Nano/nanovg/nanovg.c:2914
4: nvgText в /home/alexey/dev/src/kiui/src/Ui/Nano/nanovg/nanovg.c:2991
5: mk::NanoInk::redrawText() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoInk.cpp:367
6: mk::NanoInk::drawText() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoInk.cpp:273
7: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:222
8: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
9: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
10: mk::NanoLayer::nanodraw() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:207
11: mk::NanoTarget::nanodraw() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:240
12: mk::NanoWindow::nextFrame(double, double) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:293
13: mk::GlWindow::renderFrame() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkGlWindow.cpp:265
14: main в /home/alexey/dev/src/kiui/example/example.cpp:44
Running example long time, error reported on exit:
8,064 bytes in 168 blocks are definitely lost in loss record 127 of 129
in nvgCreateDisplayList at /home/alexey/dev/src/kiui/src/Ui/Nano/nanovg/nanovg.c:636
1: malloc в /mnt/valgrind-3.10.0/coregrind/m_replacemalloc/vg_replace_malloc.c:296
2: nvgCreateDisplayList в /home/alexey/dev/src/kiui/src/Ui/Nano/nanovg/nanovg.c:636
3: mk::NanoInk::drawText() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoInk.cpp:270
4: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:222
5: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
6: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
7: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
8: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
9: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
10: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
11: mk::NanoLayer::drawText(mk::Frame&) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:227
12: mk::NanoLayer::nanodraw() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:207
13: mk::NanoTarget::nanodraw() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:240
14: mk::NanoWindow::nextFrame(double, double) в /home/alexey/dev/src/kiui/src/Ui/Nano/mkNanoWindow.cpp:293
15: mk::GlWindow::renderFrame() в /home/alexey/dev/src/kiui/src/Ui/Nano/mkGlWindow.cpp:265
16: main в /home/alexey/dev/src/kiui/example/example.cpp:44
And such a lot of similar reports about nvgCreateDisplayList
Regards, Alexey Knyshev
See video:
https://www.youtube.com/watch?v=xsOf9IKryDs
I detected some flickering and size changing when selecting combobox items.
Regards, Alexey Knyshev
I have compiled kiui on linux (debian).
And started example app.
Here is an screenshoot of glfw window:
libyaml:
Package: libyaml-dev
Section: libdevel
Installed-Size: 225
Architecture: amd64
Multi-Arch: same
Version: 0.1.6-3
glfw3:
Package: libglfw3-dev
Installed-Size: 138
Architecture: amd64
Multi-Arch: same
Source: glfw3
Version: 3.0.4-1
Depends: libglfw3 (= 3.0.4-1), mesa-common-dev, libglu1-mesa-dev | libglu-dev
glxinfo:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx 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_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx 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_buffer_age, GLX_EXT_create_context_es2_profile,
GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_INTEL_swap_event, 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_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX 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_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_INTEL_swap_event, 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_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.3.2
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile 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_AMD_vertex_shader_layer, GL_AMD_vertex_shader_viewport_index,
GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5,
GL_APPLE_object_purgeable, GL_ARB_ES2_compatibility,
GL_ARB_ES3_compatibility, GL_ARB_base_instance,
GL_ARB_blend_func_extended, GL_ARB_buffer_storage,
GL_ARB_clear_buffer_object, GL_ARB_clear_texture,
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_derivative_control,
GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend,
GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect,
GL_ARB_draw_instanced, GL_ARB_explicit_attrib_location,
GL_ARB_explicit_uniform_location, GL_ARB_fragment_coord_conventions,
GL_ARB_fragment_shader, GL_ARB_framebuffer_object,
GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary, GL_ARB_gpu_shader5,
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_multi_draw_indirect,
GL_ARB_occlusion_query2, GL_ARB_pixel_buffer_object, 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_420pack, GL_ARB_shading_language_packing,
GL_ARB_sync, GL_ARB_texture_buffer_object,
GL_ARB_texture_buffer_object_rgb32, GL_ARB_texture_buffer_range,
GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc,
GL_ARB_texture_cube_map_array, GL_ARB_texture_float,
GL_ARB_texture_gather, GL_ARB_texture_mirror_clamp_to_edge,
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_uniform_buffer_object,
GL_ARB_vertex_array_bgra, GL_ARB_vertex_array_object,
GL_ARB_vertex_attrib_binding, GL_ARB_vertex_shader,
GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,
GL_ARB_viewport_array, GL_ATI_blend_equation_separate,
GL_ATI_texture_float, GL_EXT_abgr, GL_EXT_blend_equation_separate,
GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_framebuffer_blit,
GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled,
GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float,
GL_EXT_pixel_buffer_object, GL_EXT_provoking_vertex,
GL_EXT_shader_integer_mix, GL_EXT_texture_array,
GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_rgtc,
GL_EXT_texture_compression_s3tc, GL_EXT_texture_filter_anisotropic,
GL_EXT_texture_integer, 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_bgra, GL_IBM_multimode_draw_arrays,
GL_INTEL_performance_query, GL_KHR_debug, GL_MESA_pack_invert,
GL_MESA_texture_signed_rgba, GL_NV_conditional_render, GL_NV_depth_clamp,
GL_NV_packed_depth_stencil, GL_OES_EGL_image, GL_OES_read_format,
GL_S3_s3tcOpenGL version string: 3.0 Mesa 10.3.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL 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_arraysOpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.3.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.0
OpenGL ES profile extensions:
GL_ANGLE_texture_compression_dxt3, GL_ANGLE_texture_compression_dxt5,
GL_APPLE_texture_max_level, GL_EXT_blend_minmax,
GL_EXT_color_buffer_float, GL_EXT_discard_framebuffer,
GL_EXT_map_buffer_range, GL_EXT_multi_draw_arrays,
GL_EXT_read_format_bgra, GL_EXT_separate_shader_objects,
GL_EXT_shader_integer_mix, GL_EXT_texture_compression_dxt1,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_format_BGRA8888,
GL_EXT_texture_rg, GL_EXT_texture_type_2_10_10_10_REV,
GL_EXT_unpack_subimage, GL_INTEL_performance_query, GL_NV_draw_buffers,
GL_NV_fbo_color_attachments, GL_NV_read_buffer, GL_OES_EGL_image,
GL_OES_EGL_image_external, GL_OES_compressed_ETC1_RGB8_texture,
GL_OES_depth24, GL_OES_depth_texture, GL_OES_depth_texture_cube_map,
GL_OES_element_index_uint, GL_OES_fbo_render_mipmap,
GL_OES_get_program_binary, GL_OES_mapbuffer, GL_OES_packed_depth_stencil,
GL_OES_rgb8_rgba8, GL_OES_standard_derivatives, GL_OES_stencil8,
GL_OES_surfaceless_context, GL_OES_texture_3D, GL_OES_texture_npot,
GL_OES_vertex_array_object
Hello,
When i try to generate the src files in CMake i cant get over the check for dirent.h
I get this error message:
CMake Error at src/CMakeLists.txt:46 (message):
MSVC has no support for Dirent API, please include the header manually.
See: http://www.softagalleria.net/dirent.php
I placed the dirent.h header file in "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include"
But it seems that CMake does not see it.
I was able to point CMake to the GLFW_INCLUDE and GLFW_LIBRARYS directly in the CMake UI
So i guess they are okay.
But i dont understand what to change in the CMakeLists.txt to make it pass the dirent.h check.
I tryd this:
set(CMAKE_REQUIRED_INCLUDES "C:/Program\ Files\ (x86)/Microsoft\ Visual\ Studio\ 14.0/VC/include")
And this:
include_directories("C:/Program\ Files\ (x86)/Microsoft\ Visual\ Studio\ 14.0/VC/include")
But without success.
Thankful for any help. :)
Is it possible to implement it without inheritance?
Reagards, Alexey Knyshev
Please, change example target name to something like kiui_example. Due to possible naming collision and easy lookup (default /usr/local/bin/example is not self-explaining. )
Crash in readdir (DIR * is NULL)
See video:
https://www.youtube.com/watch?v=qBnX-q7Rm_Y
gdb bt:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5b18786 in _readdir (dirp=0x0) at ../sysdeps/posix/readdir.c:44
44 ../sysdeps/posix/readdir.c: Нет такого файла или каталога.
(gdb) bt
0 0x00007ffff5b18786 in readdir (dirp=0x0) at ../sysdeps/posix/readdir.c:44
1 0x00007ffff7a0e076 in mk::Directory::update() () from /usr/local/lib/libkiui.so
2 0x00007ffff7a0e16b in mk::Directory::setLocation(std::string const&) () from /usr/local/lib/libkiui.so
3 0x00007ffff7a0e1c7 in mk::Directory::moveIn(std::string const&) () from /usr/local/lib/libkiui.so
4 0x00007ffff7a0dc0b in mk::Dir::trigger() () from /usr/local/lib/libkiui.so
5 0x00007ffff7a13068 in mk::WrapButton::leftClick(float, float) () from /usr/local/lib/libkiui.so
6 0x00007ffff7a06f16 in mk::Widget::mouseReleased(float, float, mk::MouseButton) ()
from /usr/local/lib/libkiui.so
7 0x00007ffff7a0bd4a in mk::RootSheet::mouseReleased(float, float, mk::MouseButton) ()
from /usr/local/lib/libkiui.so
8 0x00007ffff7ac6a83 in mk::UiWindow::dispatchMouseReleased(float, float, mk::MouseButton) ()
from /usr/local/lib/libkiui.so
9 0x00007ffff7abdc74 in mk::GlWindow::injectMouseButton(int, int, int) () from /usr/local/lib/libkiui.so
10 0x00007ffff7abd1f9 in mk::GlWindow::initContext()::{lambda(GLFWwindow, int, int, int)%3}::operator()(GLFWwindow, int, int, int) const () from /usr/local/lib/libkiui.so
11 0x00007ffff7abd22e in mk::GlWindow::initContext()::{lambda(GLFWwindow, int, int, int)%3}::FUN(GLFWwindow, int, int, int) () from /usr/local/lib/libkiui.so
12 0x00007ffff663c660 in ?? () from /usr/lib/x86_64-linux-gnu/libglfw.so.3
13 0x00007ffff7abd8af in mk::GlWindow::renderFrame() () from /usr/local/lib/libkiui.so
14 0x000000000041e1a7 in main ()
cmake shows error
"CMake Error at sub/toyobj/src/CMakeLists.txt:38 (set_target_properties):
set_target_properties Can not find target to add properties to: toyobj
[...]
CMake Error at src/CMakeLists.txt:66 (message):
MSVC has no support for Dirent API, please include the header manually.
See: http://www.softagalleria.net/dirent.php"
The last one, I can manually add the path to visual studio, (but it would be better included in the desktop git relation so it fetches it with the others).
Anyway the solution ends badly formed as the emscripten is missing and the nvgl is not properly setup.
I'm unable to build this project on Visual Studio 2015.
Any idea? Do fetch->cmake->compile work for you guys?
Something that is really missing in existing game GUI widget sets so far is a source code editor component with line numbers and being able to define parsers for syntax highlighting as plugins or by something like User Defined Language from Notepad++.
Use case is scripting in game editors. For example, games like TSC would preferably have that instead some normal text box.
While testing the web version, I encountered some bugs:
Screenshots from emscripten demo
1. No round corners:
3.Something wrong with "Photoshop" theme:
4.Switching themes brings elements position error
Reproduce, select Window demo and switch from "Blendish" to "Turbo" theme:
Recreating window (select Window demo, which creates new kiui v0.1 titled window mostly eliminates error):
Attempting something similar to the following (on a Windows version of cmake):
add_subdirectory(glfw-3.1.1)
add_subdirectory(kiui)
...
target_link_libraries(foo kiui ${OPENGL_LIBRARIES} glfw)
resulting in unresolved external symbols from glfw when trying to build kiui.dll. Have tried to force kiui to build statically, however it keeps failing trying to build kiui.dll.
I was not having this problem when using imgui+glfw, so I think there's something that may need to be improved with KiUi's build process.
When running the demo app, the outline of a window appears, then it crashes. This is the gdb backtrace:
#0 0x00007ffff556af66 in __readdir (dirp=0x0) at ../sysdeps/posix/readdir.c:44
#1 0x00007ffff7a626b9 in mk::spritesInFolder(NVGcontext*, mk::NanoAtlas&, std::string const&, std::string const&) () from /home/ryan/stuff/kiui/src/libkiui.so
#2 0x00007ffff7a62910 in mk::generateAtlas(NVGcontext*, unsigned long, unsigned long, std::string) () from /home/ryan/stuff/kiui/src/libkiui.so
#3 0x00007ffff7a63eec in mk::NanoWindow::NanoWindow(unsigned long, unsigned long, float, std::string) () from /home/ryan/stuff/kiui/src/libkiui.so
#4 0x00007ffff7a710ff in mk::make_unique<mk::NanoWindow, unsigned int&, unsigned int&, float&, std::string&> () from /home/ryan/stuff/kiui/src/libkiui.so
#5 0x00007ffff7a70399 in mk::GlWindow::initContext() ()
from /home/ryan/stuff/kiui/src/libkiui.so
#6 0x0000000000412d67 in main ()
gdb bt:
0 mk::Dockbar::vappend mkDockbar.cpp 56 0x7ffff7a2aa5d
1 mk::Sheet::emplace<mk::StyleEdit, mk::Styler&> mkSheet.h 54 0x7ffff7ac54fa
2 mk::createUiStyleEdit mkUiExample.cpp 478 0x7ffff7abb70a
3 mk::createUiTest mkUiExample.cpp 551 0x7ffff7abbea8
4 main example.cpp 36 0x41e192
in Dockbar::vappend(unique_ptr widget)
widget param is null
Maybe something wrong with make_unique from mkMake.h (case STD_NO_MAKE_UNIQUE)
Crashes commit: 7435e09
Not buildable: b3c658e
------------------| 2521e35
------------------| ceb8b33
Last ok commit: 5c92d92
Regards, Alexey Knyshev
Hi there,
I have just come across this GUI library, and I have some interest in putting it on a try.
But looking at the activity around it, it seems that was nothing for almost a year.
My question would be if this library is still under 'some' active development or has been discontinued? What's its future?
Thanks.
Virgiliu
Hi I want to use your libaray for a small Projekt.
But I need an OpenGL 3.3 Context but your UI only seem to work with an OpenGL 2.0
So who could I use an newer context or is that not intented?
Sincerly Wasabi2007
/home/alexey/dev/src/kiui/src/Object/Iterable/mkStoreObserver.h:48: warning: type attributes ignored after type is already defined [-Wattributes]
template class MK_OBJECT_EXPORT StoreObserver;
^
We're looking for a new GUI system and would love to try out this one. Unfortunately, the example as built doesn't work properly.
The only clickable element is the gear menu near the bottom (dropdowns do not open); the window is also not draggable although the cursor indicates it can be dragged. Also, the GLFW close button event doesn't seem to be listened to any longer, and I have to ^C out of the example.
Produces below error
from /home/yash/projects/gui/kiui/sub/toyobj/src/toyobj/Store/Store.h:10:0,
from /home/yash/projects/gui/kiui/sub/toyobj/src/toyobj/Store/Array.h:10,
from /home/yash/projects/gui/kiui/sub/toyobj/src/toyobj/Procedure.h:10,
from /home/yash/projects/gui/kiui/sub/toyobj/src/toyobj/Procedure.cpp:5:
/home/yash/projects/gui/kiui/sub/toyobj/src/toyobj/Iterable/Iterable.h:46:195: error: invalid initialization of non-const reference of type ‘toy::Lref&’ from an rvalue of type ‘toy::Lref’
onst { this->iterate([callback, &type = this->elementType()](TypeObject& object) { return callback(Lref(object, object.type())); }); }
^
sub/toyobj/src/CMakeFiles/toyobj.dir/build.make:86: recipe for target 'sub/toyobj/src/CMakeFiles/toyobj.dir/toyobj/Procedure.cpp.o' failed
make[2]: *** [sub/toyobj/src/CMakeFiles/toyobj.dir/toyobj/Procedure.cpp.o] Error 1
CMakeFiles/Makefile2:85: recipe for target 'sub/toyobj/src/CMakeFiles/toyobj.dir/all' failed
make[1]: *** [sub/toyobj/src/CMakeFiles/toyobj.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
Here is example video
Reproduced in demo sample "Window"
Regards, Alexey Knyshev
Hi, My build was good for the most part but the linking process throws an error. I have successfully pointed the include path and lib (glfw*.a) for GLFW. I'm using MinGW on both glfw and kiui cmake builds
Any ideas?
Crash reproduction video:
https://www.youtube.com/watch?v=OzHMTXk9bs8
open Filtered demo -> open Window demo -> put * as filter in TypeIn -> close Window demo -> clear filer -> open Window demo -> put * as filter in TypeIn -> SEGFAULT
Rearads, Alexey Knyshev
Crash when reproducing with sequence:
open Filtered List demo -> put * as filter -> clear filter by backspace -> click on the right side of TypeIn (which makes cursor to move by one symbol to right size) -> press Enter -> craaaash
https://www.youtube.com/watch?v=mEw4YkeA54o
(don't forget about enabling anotations, all my videos use anotations)
gdb backtrace:
(gdb) bt
0 __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:152
1 0x00007ffff63e404d in copy (__n=18446744073709282239, __s2=, __s1=)
at /scratch/packages/gcc/4.9/gcc-4.9-4.9.2/build/x86_64-linux-gnu/libstdc++-v3/include/bits/char_traits.h:275
2 _M_copy (__n=18446744073709282239, __s=, __d=)
at /scratch/packages/gcc/4.9/gcc-4.9-4.9.2/build/x86_64-linux-gnu/libstdc++-v3/include/bits/basic_string.h:361
3 std::string::_M_mutate (this=this@entry=0xff5aa0, __pos=__pos@entry=269377, __len1=,
__len2=__len2@entry=1)
at /scratch/packages/gcc/4.9/gcc-4.9-4.9.2/build/x86_64-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:484
4 0x00007ffff63e4394 in std::string::_M_replace_aux (this=0xff5aa0, __pos1=269377, __n1=, __n2=1,
__c=)
at /scratch/packages/gcc/4.9/gcc-4.9-4.9.2/build/x86_64-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:672
5 0x00007ffff63e4482 in std::string::insert (this=0xff5aa0, __p=..., __c=)
at /scratch/packages/gcc/4.9/gcc-4.9-4.9.2/build/x86_64-linux-gnu/libstdc++-v3/include/bits/basic_string.h:1359
6 0x00007ffff79fe378 in mk::TypeIn::insert (this=0xff5a40, c=10 '\n')
at /home/alexey/dev/src/kiui/src/Ui/Widget/mkTypeIn.cpp:92
7 0x00007ffff79fe893 in mk::TypeIn::keyDown (this=0xff5a40, code=mk::KC_RETURN, c=0 '\000')
at /home/alexey/dev/src/kiui/src/Ui/Widget/mkTypeIn.cpp:149
8 0x00007ffff7a0b8ea in mk::RootSheet::keyDown (this=0xe74b80, code=mk::KC_RETURN, c=0 '\000')
at /home/alexey/dev/src/kiui/src/Ui/Widget/mkRootSheet.cpp:144
9 0x00007ffff7ac6a2e in mk::UiWindow::dispatchKeyPressed (this=0xe4f7b0, key=mk::KC_RETURN, c=0 '\000')
at /home/alexey/dev/src/kiui/src/Ui/mkUiWindow.cpp:129
10 0x00007ffff7abdbb6 in mk::GlWindow::injectKey (this=0x7fffffffdf30, key=257, scancode=36, action=1, mods=0)
at /home/alexey/dev/src/kiui/src/Ui/Nano/mkGlWindow.cpp:324
11 0x00007ffff7abcfe7 in mk::GlWindow::<lambda(GLFWwindow*, int, int, int, int)>::operator()(GLFWwindow _, int, int, int, int) const (_closure=0x0, w=0x650bf0, key=257, scancode=36, action=1, mods=0)
at /home/alexey/dev/src/kiui/src/Ui/Nano/mkGlWindow.cpp:205
12 0x00007ffff7abd026 in mk::GlWindow::<lambda(GLFWwindow, int, int, int, int)>::_FUN(GLFWwindow *, int, int, int, int) () at /home/alexey/dev/src/kiui/src/Ui/Nano/mkGlWindow.cpp:205
13 0x00007ffff663c3a4 in ?? () from /usr/lib/x86_64-linux-gnu/libglfw.so.3
14 0x00007ffff7abd797 in mk::GlWindow::renderFrame (this=0x7fffffffdf30)
at /home/alexey/dev/src/kiui/src/Ui/Nano/mkGlWindow.cpp:275
15 0x000000000041e1a7 in main (argc=1, argv=0x7fffffffe0c8) at /home/alexey/dev/src/kiui/example/example.cpp:44
Regards, Alexey Knyshev
See video
https://www.youtube.com/watch?v=xCY7v9DBc7I
Regards, Alexey Knyshev
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.