Posts

Running EFL applications under Wayland based on Ubuntu 14.04 : egl wayland example

Image
For correct functionality when running under Wayland you must use the latest versions of all the EFL components under Wayland. As a precursor to these steps you must have downloaded and compiled Wayland as per the building instructions . example codes // gcc -o eglwayland eglwayland.c `pkg-config --cflags --libs wayland-egl egl glesv2` #include <stdlib.h> #include <stdint.h> #include <stdio.h> #include <string.h> #include <wayland-client.h> #include <wayland-server.h> #include <wayland-client-protocol.h> #include <wayland-egl.h> // Wayland EGL MUST be included before EGL headers #include <EGL/egl.h> #include <EGL/eglplatform.h> #include <GLES2/gl2.h> struct _escontext { /// Native System informations EGLNativeDisplayType native_display; EGLNativeWindowType native_window; uint16_t window_width, window_height; /// EGL display EGLDisplay display; /// EGL context EGLContext context; /// EGL surfac

Running EFL applications under Wayland based on Ubuntu 14.04 : elm example

Image
For correct functionality when running under Wayland you must use the latest versions of all the EFL components under Wayland. As a precursor to these steps you must have downloaded and compiled Wayland as per the building instructions . example codes #include <Elementary.h> static void on_click(void *data, Evas_Object *obj, void *event_info) { evas_object_del(data); } EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *btn; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("Main", "Hello, World!"); evas_object_resize(win, 1920, 1080); elm_win_autodel_set(win, EINA_TRUE); btn = elm_button_add(win); elm_object_text_set(btn, "Goodbye Cruel World"); elm_win_resize_object_add(win, btn); evas_object_smart_callback_add(btn, "clicked", on_click, win); evas_object_show(btn); evas_object_show(win); elm_run(); return 0; } ELM_MAIN()

Running EFL applications under Wayland based on Ubuntu 14.04, compile libdrm, mesa, wayland, weston, efl from sources

For correct functionality when running under Wayland you must use the latest versions of all the EFL components under Wayland. As a precursor to these steps you must have downloaded and compiled Wayland. Setting up the environment apt install git autoconf automake libtool autopoint check Installing in a custom location, system wide install would break things. export WLD=$HOME/install # change this to another location if you prefer export LD_LIBRARY_PATH=$WLD/lib export PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/ export PATH=$WLD/bin:$PATH export ACLOCAL_PATH=$WLD/share/aclocal export ACLOCAL="aclocal -I $ACLOCAL_PATH" mkdir -p $WLD/share/aclocal # needed by autotools Do not set LD_LIBRARY_PATH as your default, it will break things. Put the above in a script env.sh and source it in the terminal you wish to build the packages. libdrm sudo apt-get install xutils-dev libpciaccess-dev git clone https://anongit.freedesktop.org/git/mesa/drm cd drm/ sour

Fix : /bin/bash ./config.sub failed

checking build system type... Invalid configuration 4': machine 4' not recognized configure: error: /bin/bash ./config.sub 4 failed solution: autoreconf --install then configure again.

fix error: wl_display@1.error(wl_display@1, 1, "invalid arguments for wl_surface@6.attach")

wl_display@1.error(wl_display@1, 1, "invalid arguments for wl_surface@6.attach") root cause: wl_surface_attach(wl_surface* surface, wl_buffer* buffer, int, int); ((wl_proxy*)surface)->display != ((wl_proxy*)buffer)->display surface's display and buffer's display were not matched. wayland server can't find the buffer object in surface's client connection. solution: correct source code, let wl_surface and wl_buffer use the same display. By the way, each time you call wl_display_get(NULL). you will get a new display.

react-native : flex hidden your View/Component via styles "flex:0,height:0"

A simple example:

react-native : Progress component

Image
Progress React component that indicate that the app is loading or there is some activity in the app. Support iOS and Android Props animating Whether to show the Progress (true, the default) or hide it (false). color Color of the progress bar. bgcolor Background color of the progress bar. progress The progress value (between 0 and 1). inverse Whether to inverse the Progress (true) or not (false, the default) vertical Whether to show a vertical Progress (true) or show a horizontal one (false, the default) Usage Import Progress from './Progress' render() { return ( <View style={styles.container}> <Progress progress={this.state.progress}/> </View> ) } Example View source on GitHub