aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 17:29:19 +1000
committerDavid Walter Seikel2013-01-13 17:29:19 +1000
commit07274513e984f0b5544586c74508ccd16e7dcafa (patch)
treeb32ff2a9136fbc1a4a6a0ed1e4d79cde0f5f16d9 /libraries/evas/src/modules/engines
parentAdded Irrlicht 1.8, but without all the Windows binaries. (diff)
downloadSledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.zip
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.gz
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.bz2
SledjHamr-07274513e984f0b5544586c74508ccd16e7dcafa.tar.xz
Remove EFL, since it's been released now.
Diffstat (limited to 'libraries/evas/src/modules/engines')
-rw-r--r--libraries/evas/src/modules/engines/Makefile.am73
-rw-r--r--libraries/evas/src/modules/engines/Makefile.in771
-rw-r--r--libraries/evas/src/modules/engines/buffer/Evas_Engine_Buffer.h43
-rw-r--r--libraries/evas/src/modules/engines/buffer/Makefile.am42
-rw-r--r--libraries/evas/src/modules/engines/buffer/Makefile.in808
-rw-r--r--libraries/evas/src/modules/engines/buffer/evas_engine.c444
-rw-r--r--libraries/evas/src/modules/engines/buffer/evas_engine.h91
-rw-r--r--libraries/evas/src/modules/engines/buffer/evas_outbuf.c357
-rw-r--r--libraries/evas/src/modules/engines/direct3d/Evas_Engine_Direct3D.h36
-rw-r--r--libraries/evas/src/modules/engines/direct3d/Makefile.am71
-rw-r--r--libraries/evas/src/modules/engines/direct3d/Makefile.in1025
-rw-r--r--libraries/evas/src/modules/engines/direct3d/array.h305
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.cpp8
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.h22
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.cpp393
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h87
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.cpp436
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.h108
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_main.cpp774
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.cpp12
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.h35
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.cpp231
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.h113
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.cpp320
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h127
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.cpp60
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.h37
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.cpp65
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.h37
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.cpp33
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.h63
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.cpp344
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.h75
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.cpp154
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.h60
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_engine.c503
-rw-r--r--libraries/evas/src/modules/engines/direct3d/evas_engine.h125
-rw-r--r--libraries/evas/src/modules/engines/direct3d/ref.h210
-rw-r--r--libraries/evas/src/modules/engines/directfb/Evas_Engine_DirectFB.h25
-rw-r--r--libraries/evas/src/modules/engines/directfb/Makefile.am44
-rw-r--r--libraries/evas/src/modules/engines/directfb/Makefile.in808
-rw-r--r--libraries/evas/src/modules/engines/directfb/evas_engine.c1754
-rw-r--r--libraries/evas/src/modules/engines/directfb/evas_engine.h71
-rw-r--r--libraries/evas/src/modules/engines/directfb/polygon.c269
-rw-r--r--libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h25
-rw-r--r--libraries/evas/src/modules/engines/fb/Makefile.am48
-rw-r--r--libraries/evas/src/modules/engines/fb/Makefile.in829
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_engine.c310
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_engine.h85
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_fb.h93
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_fb_main.c600
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_outbuf.c402
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/Evas_Engine_GL_Cocoa.h20
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/Makefile.am46
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/Makefile.in852
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/evas_engine.c1462
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/evas_engine.h69
-rw-r--r--libraries/evas/src/modules/engines/gl_cocoa/evas_gl_cocoa_main.m134
-rw-r--r--libraries/evas/src/modules/engines/gl_common/Makefile.am164
-rw-r--r--libraries/evas/src/modules/engines/gl_common/Makefile.in875
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_common.h659
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_context.c2723
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_filter.c181
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_font.c203
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_image.c968
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_line.c35
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_polygon.c307
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_private.h32
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_rectangle.c53
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_shader.c1262
-rw-r--r--libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c1669
-rwxr-xr-xlibraries/evas/src/modules/engines/gl_common/shader/compile-s3c6410.sh47
-rwxr-xr-xlibraries/evas/src/modules/engines/gl_common/shader/compile-sgx.sh48
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur.h24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur.shd24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.h24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.shd24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.h24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.shd24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.h24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.shd24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.h20
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.shd20
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h20
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd20
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h18
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd18
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h18
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd18
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/font_frag.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/font_frag.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/font_frag_bin_s3c6410.h9
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/font_frag_s3c6410.asm26
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/font_vert.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/font_vert.shd15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/font_vert_bin_s3c6410.h20
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag_bin_s3c6410.h11
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.h13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.shd13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag_bin_s3c6410.h10
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.h12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.shd12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert_bin_s3c6410.h17
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.shd15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert_bin_s3c6410.h20
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_frag.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_frag.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_frag_bin_s3c6410.h9
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_frag_s3c6410.asm26
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_mask_frag.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_mask_vert.h16
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.h13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.shd13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag_bin_s3c6410.h10
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.h12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.shd12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert_bin_s3c6410.h17
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_vert.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_vert.shd15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/img_vert_bin_s3c6410.h20
-rwxr-xr-xlibraries/evas/src/modules/engines/gl_common/shader/make-c-bin.sh3
-rwxr-xr-xlibraries/evas/src/modules/engines/gl_common/shader/make-c-str.sh3
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.h31
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd31
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.h31
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.shd31
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.h16
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.shd16
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/rect_frag.h13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/rect_frag.shd13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/rect_frag_bin_s3c6410.h6
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/rect_frag_s3c6410.asm24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/rect_vert.h12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/rect_vert.shd12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/rect_vert_bin_s3c6410.h17
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_frag.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_frag.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_frag_bin_s3c6410.h9
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_frag_s3c6410.asm26
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.h13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.shd13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag_bin_s3c6410.h10
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.h12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.shd12
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert_bin_s3c6410.h17
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_vert.h15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_vert.shd15
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/tex_vert_bin_s3c6410.h20
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.shd24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_bin_s3c6410.h24
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_s3c6410.asm46
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.h23
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.shd23
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag_bin_s3c6410.h23
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.h14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.shd14
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert_bin_s3c6410.h23
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.h17
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.shd17
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuv_vert_bin_s3c6410.h26
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h30
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.shd30
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.h30
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.shd30
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.h13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.shd13
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.h16
-rw-r--r--libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.shd16
-rw-r--r--libraries/evas/src/modules/engines/gl_sdl/Evas_Engine_GL_SDL.h24
-rw-r--r--libraries/evas/src/modules/engines/gl_sdl/Makefile.am46
-rw-r--r--libraries/evas/src/modules/engines/gl_sdl/Makefile.in800
-rw-r--r--libraries/evas/src/modules/engines/gl_sdl/evas_engine.c1081
-rw-r--r--libraries/evas/src/modules/engines/gl_sdl/evas_engine.h73
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/Evas_Engine_GL_X11.h46
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/Makefile.in814
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/evas_engine.c4416
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/evas_engine.h126
-rw-r--r--libraries/evas/src/modules/engines/gl_x11/evas_x_main.c901
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/Evas_Engine_PSL1GHT.h16
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/Makefile.in814
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/evas_engine.c511
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/evas_engine.h30
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/rsxutil.c275
-rw-r--r--libraries/evas/src/modules/engines/psl1ght/rsxutil.h43
-rw-r--r--libraries/evas/src/modules/engines/software_16/Makefile.am37
-rw-r--r--libraries/evas/src/modules/engines/software_16/Makefile.in768
-rw-r--r--libraries/evas/src/modules/engines/software_16/evas_engine.c399
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/Evas_Engine_Software_16_DDraw.h32
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/Makefile.am49
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in873
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_buffer.cpp87
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_main.cpp71
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.c628
-rw-r--r--libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.h85
-rw-r--r--libraries/evas/src/modules/engines/software_16_sdl/Evas_Engine_SDL_16.h25
-rw-r--r--libraries/evas/src/modules/engines/software_16_sdl/Makefile.am40
-rw-r--r--libraries/evas/src/modules/engines/software_16_sdl/Makefile.in784
-rw-r--r--libraries/evas/src/modules/engines/software_16_sdl/evas_engine.c1337
-rw-r--r--libraries/evas/src/modules/engines/software_16_sdl/evas_engine.h79
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h35
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/Makefile.am51
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/Makefile.in901
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/evas_engine.c770
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/evas_engine.h120
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/evas_wince_ddraw_buffer.cpp195
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c210
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c341
-rw-r--r--libraries/evas/src/modules/engines/software_16_wince/evas_wince_gdi_buffer.c165
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h26
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Makefile.in816
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/evas_engine.c741
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/evas_engine.h63
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c186
-rw-r--r--libraries/evas/src/modules/engines/software_8/Makefile.am37
-rw-r--r--libraries/evas/src/modules/engines/software_8/Makefile.in767
-rw-r--r--libraries/evas/src/modules/engines/software_8/evas_engine.c440
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h38
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Makefile.am49
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Makefile.in818
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/evas_engine.c699
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/evas_engine.h65
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c243
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/Evas_Engine_Software_DDraw.h30
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/Makefile.am48
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/Makefile.in884
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_buffer.c92
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_main.cpp248
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/evas_engine.c379
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/evas_engine.h220
-rw-r--r--libraries/evas/src/modules/engines/software_ddraw/evas_outbuf.c460
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/Evas_Engine_Software_Gdi.h32
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/Makefile.in842
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/evas_engine.c387
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/evas_engine.h209
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/evas_gdi_buffer.c88
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/evas_gdi_main.c100
-rw-r--r--libraries/evas/src/modules/engines/software_gdi/evas_outbuf.c656
-rw-r--r--libraries/evas/src/modules/engines/software_generic/Makefile.am33
-rw-r--r--libraries/evas/src/modules/engines/software_generic/Makefile.in766
-rw-r--r--libraries/evas/src/modules/engines/software_generic/evas_engine.c2818
-rw-r--r--libraries/evas/src/modules/engines/software_sdl/Evas_Engine_SDL.h27
-rw-r--r--libraries/evas/src/modules/engines/software_sdl/Makefile.am45
-rw-r--r--libraries/evas/src/modules/engines/software_sdl/Makefile.in800
-rw-r--r--libraries/evas/src/modules/engines/software_sdl/evas_engine.c1218
-rw-r--r--libraries/evas/src/modules/engines/software_sdl/evas_engine.h72
-rw-r--r--libraries/evas/src/modules/engines/software_x11/Evas_Engine_Software_X11.h52
-rw-r--r--libraries/evas/src/modules/engines/software_x11/Makefile.am85
-rw-r--r--libraries/evas/src/modules/engines/software_x11/Makefile.in952
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_engine.c929
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_engine.h137
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.c498
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.h30
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_color.c424
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_color.h10
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_main.c8
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.c1092
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.h30
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.c108
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.h11
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.c428
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.h45
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_color.c368
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_color.h16
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_main.c7
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c1137
-rw-r--r--libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.h92
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h42
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/Makefile.in816
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_engine.c3032
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_engine.h82
-rw-r--r--libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c325
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h21
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Makefile.am46
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/Makefile.in817
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_engine.c372
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_engine.h61
-rw-r--r--libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c101
304 files changed, 0 insertions, 73646 deletions
diff --git a/libraries/evas/src/modules/engines/Makefile.am b/libraries/evas/src/modules/engines/Makefile.am
deleted file mode 100644
index e29fb98..0000000
--- a/libraries/evas/src/modules/engines/Makefile.am
+++ /dev/null
@@ -1,73 +0,0 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3SUBDIRS =
4
5if !EVAS_STATIC_BUILD_SOFTWARE_GENERIC
6SUBDIRS += software_generic
7endif
8if !EVAS_STATIC_BUILD_BUFFER
9SUBDIRS += buffer
10endif
11if !EVAS_STATIC_BUILD_DIRECT3D
12SUBDIRS += direct3d
13endif
14if !EVAS_STATIC_BUILD_DIRECTFB
15SUBDIRS += directfb
16endif
17if !EVAS_STATIC_BUILD_FB
18SUBDIRS += fb
19endif
20
21if !EVAS_STATIC_BUILD_PSL1GHT
22SUBDIRS += psl1ght
23endif
24
25if !EVAS_STATIC_BUILD_GL_COMMON
26SUBDIRS += gl_common
27endif
28if !EVAS_STATIC_BUILD_GL_X11
29SUBDIRS += gl_x11
30endif
31if !EVAS_STATIC_BUILD_GL_SDL
32SUBDIRS += gl_sdl
33endif
34if !EVAS_STATIC_BUILD_GL_COCOA
35SUBDIRS += gl_cocoa
36endif
37
38if !EVAS_STATIC_BUILD_SOFTWARE_8
39SUBDIRS += software_8
40endif
41if !EVAS_STATIC_BUILD_SOFTWARE_8_X11
42SUBDIRS += software_8_x11
43endif
44if !EVAS_STATIC_BUILD_SOFTWARE_16
45SUBDIRS += software_16
46endif
47if !EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
48SUBDIRS += software_16_ddraw
49endif
50if !EVAS_STATIC_BUILD_SOFTWARE_16_WINCE
51SUBDIRS += software_16_wince
52endif
53if !EVAS_STATIC_BUILD_SOFTWARE_16_X11
54SUBDIRS += software_16_x11
55endif
56if !EVAS_STATIC_BUILD_SOFTWARE_16_SDL
57SUBDIRS += software_16_sdl
58endif
59if !EVAS_STATIC_BUILD_SOFTWARE_DDRAW
60SUBDIRS += software_ddraw
61endif
62if !EVAS_STATIC_BUILD_SOFTWARE_GDI
63SUBDIRS += software_gdi
64endif
65if !EVAS_STATIC_BUILD_SOFTWARE_X11
66SUBDIRS += software_x11
67endif
68if !EVAS_STATIC_BUILD_WAYLAND_SHM
69SUBDIRS += wayland_shm
70endif
71if !EVAS_STATIC_BUILD_WAYLAND_EGL
72SUBDIRS += wayland_egl
73endif
diff --git a/libraries/evas/src/modules/engines/Makefile.in b/libraries/evas/src/modules/engines/Makefile.in
deleted file mode 100644
index 7388a48..0000000
--- a/libraries/evas/src/modules/engines/Makefile.in
+++ /dev/null
@@ -1,771 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17VPATH = @srcdir@
18pkgdatadir = $(datadir)/@PACKAGE@
19pkgincludedir = $(includedir)/@PACKAGE@
20pkglibdir = $(libdir)/@PACKAGE@
21pkglibexecdir = $(libexecdir)/@PACKAGE@
22am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
23install_sh_DATA = $(install_sh) -c -m 644
24install_sh_PROGRAM = $(install_sh) -c
25install_sh_SCRIPT = $(install_sh) -c
26INSTALL_HEADER = $(INSTALL_DATA)
27transform = $(program_transform_name)
28NORMAL_INSTALL = :
29PRE_INSTALL = :
30POST_INSTALL = :
31NORMAL_UNINSTALL = :
32PRE_UNINSTALL = :
33POST_UNINSTALL = :
34build_triplet = @build@
35host_triplet = @host@
36@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@am__append_1 = software_generic
37@EVAS_STATIC_BUILD_BUFFER_FALSE@am__append_2 = buffer
38@EVAS_STATIC_BUILD_DIRECT3D_FALSE@am__append_3 = direct3d
39@EVAS_STATIC_BUILD_DIRECTFB_FALSE@am__append_4 = directfb
40@EVAS_STATIC_BUILD_FB_FALSE@am__append_5 = fb
41@EVAS_STATIC_BUILD_PSL1GHT_FALSE@am__append_6 = psl1ght
42@EVAS_STATIC_BUILD_GL_COMMON_FALSE@am__append_7 = gl_common
43@EVAS_STATIC_BUILD_GL_X11_FALSE@am__append_8 = gl_x11
44@EVAS_STATIC_BUILD_GL_SDL_FALSE@am__append_9 = gl_sdl
45@EVAS_STATIC_BUILD_GL_COCOA_FALSE@am__append_10 = gl_cocoa
46@EVAS_STATIC_BUILD_SOFTWARE_8_FALSE@am__append_11 = software_8
47@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@am__append_12 = software_8_x11
48@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@am__append_13 = software_16
49@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@am__append_14 = software_16_ddraw
50@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@am__append_15 = software_16_wince
51@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@am__append_16 = software_16_x11
52@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@am__append_17 = software_16_sdl
53@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@am__append_18 = software_ddraw
54@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@am__append_19 = software_gdi
55@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@am__append_20 = software_x11
56@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am__append_21 = wayland_shm
57@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am__append_22 = wayland_egl
58subdir = src/modules/engines
59DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
60ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
61am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
62 $(top_srcdir)/m4/efl_coverage.m4 \
63 $(top_srcdir)/m4/efl_doxygen.m4 \
64 $(top_srcdir)/m4/efl_fnmatch.m4 \
65 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
66 $(top_srcdir)/m4/evas_check_engine.m4 \
67 $(top_srcdir)/m4/evas_check_loader.m4 \
68 $(top_srcdir)/m4/evas_converter.m4 \
69 $(top_srcdir)/m4/evas_dither.m4 \
70 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
71 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
72 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
73 $(top_srcdir)/configure.ac
74am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
75 $(ACLOCAL_M4)
76mkinstalldirs = $(install_sh) -d
77CONFIG_HEADER = $(top_builddir)/config.h
78CONFIG_CLEAN_FILES =
79CONFIG_CLEAN_VPATH_FILES =
80AM_V_GEN = $(am__v_GEN_$(V))
81am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
82am__v_GEN_0 = @echo " GEN " $@;
83AM_V_at = $(am__v_at_$(V))
84am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
85am__v_at_0 = @
86SOURCES =
87DIST_SOURCES =
88RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
89 html-recursive info-recursive install-data-recursive \
90 install-dvi-recursive install-exec-recursive \
91 install-html-recursive install-info-recursive \
92 install-pdf-recursive install-ps-recursive install-recursive \
93 installcheck-recursive installdirs-recursive pdf-recursive \
94 ps-recursive uninstall-recursive
95RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
96 distclean-recursive maintainer-clean-recursive
97AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
98 $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
99 distdir
100ETAGS = etags
101CTAGS = ctags
102DIST_SUBDIRS = software_generic buffer direct3d directfb fb psl1ght \
103 gl_common gl_x11 gl_sdl gl_cocoa software_8 software_8_x11 \
104 software_16 software_16_ddraw software_16_wince \
105 software_16_x11 software_16_sdl software_ddraw software_gdi \
106 software_x11 wayland_shm wayland_egl
107DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
108am__relativize = \
109 dir0=`pwd`; \
110 sed_first='s,^\([^/]*\)/.*$$,\1,'; \
111 sed_rest='s,^[^/]*/*,,'; \
112 sed_last='s,^.*/\([^/]*\)$$,\1,'; \
113 sed_butlast='s,/*[^/]*$$,,'; \
114 while test -n "$$dir1"; do \
115 first=`echo "$$dir1" | sed -e "$$sed_first"`; \
116 if test "$$first" != "."; then \
117 if test "$$first" = ".."; then \
118 dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
119 dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
120 else \
121 first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
122 if test "$$first2" = "$$first"; then \
123 dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
124 else \
125 dir2="../$$dir2"; \
126 fi; \
127 dir0="$$dir0"/"$$first"; \
128 fi; \
129 fi; \
130 dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
131 done; \
132 reldir="$$dir2"
133ACLOCAL = @ACLOCAL@
134ALLOCA = @ALLOCA@
135AMTAR = @AMTAR@
136AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
137AR = @AR@
138AS = @AS@
139AUTOCONF = @AUTOCONF@
140AUTOHEADER = @AUTOHEADER@
141AUTOMAKE = @AUTOMAKE@
142AWK = @AWK@
143CC = @CC@
144CCDEPMODE = @CCDEPMODE@
145CFLAGS = @CFLAGS@
146CHECK_CFLAGS = @CHECK_CFLAGS@
147CHECK_LIBS = @CHECK_LIBS@
148CPP = @CPP@
149CPPFLAGS = @CPPFLAGS@
150CXX = @CXX@
151CXXCPP = @CXXCPP@
152CXXDEPMODE = @CXXDEPMODE@
153CXXFLAGS = @CXXFLAGS@
154CYGPATH_W = @CYGPATH_W@
155DEFS = @DEFS@
156DEPDIR = @DEPDIR@
157DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
158DIRECTFB_LIBS = @DIRECTFB_LIBS@
159DLLTOOL = @DLLTOOL@
160DSYMUTIL = @DSYMUTIL@
161DUMPBIN = @DUMPBIN@
162ECHO_C = @ECHO_C@
163ECHO_N = @ECHO_N@
164ECHO_T = @ECHO_T@
165ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
166ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
167EDB_CFLAGS = @EDB_CFLAGS@
168EDB_LIBS = @EDB_LIBS@
169EDJE_CFLAGS = @EDJE_CFLAGS@
170EDJE_LIBS = @EDJE_LIBS@
171EET_CFLAGS = @EET_CFLAGS@
172EET_LIBS = @EET_LIBS@
173EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
174EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
175EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
176EGREP = @EGREP@
177EINA_CFLAGS = @EINA_CFLAGS@
178EINA_LIBS = @EINA_LIBS@
179EVAS_CFLAGS = @EVAS_CFLAGS@
180EVAS_LIBS = @EVAS_LIBS@
181EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
182EVIL_CFLAGS = @EVIL_CFLAGS@
183EVIL_LIBS = @EVIL_LIBS@
184EXEEXT = @EXEEXT@
185EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
186EXOTIC_LIBS = @EXOTIC_LIBS@
187FGREP = @FGREP@
188FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
189FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
190FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
191FREETYPE_LIBS = @FREETYPE_LIBS@
192FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
193FRIBIDI_LIBS = @FRIBIDI_LIBS@
194GL_EET_CFLAGS = @GL_EET_CFLAGS@
195GL_EET_LIBS = @GL_EET_LIBS@
196GREP = @GREP@
197HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
198HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
199INSTALL = @INSTALL@
200INSTALL_DATA = @INSTALL_DATA@
201INSTALL_PROGRAM = @INSTALL_PROGRAM@
202INSTALL_SCRIPT = @INSTALL_SCRIPT@
203INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
204LD = @LD@
205LDFLAGS = @LDFLAGS@
206LIBOBJS = @LIBOBJS@
207LIBS = @LIBS@
208LIBTOOL = @LIBTOOL@
209LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
210LINEBREAK_LIBS = @LINEBREAK_LIBS@
211LIPO = @LIPO@
212LN_S = @LN_S@
213LTLIBOBJS = @LTLIBOBJS@
214MAKEINFO = @MAKEINFO@
215MKDIR_P = @MKDIR_P@
216MODULE_ARCH = @MODULE_ARCH@
217NM = @NM@
218NMEDIT = @NMEDIT@
219OBJC = @OBJC@
220OBJCDEPMODE = @OBJCDEPMODE@
221OBJCFLAGS = @OBJCFLAGS@
222OBJDUMP = @OBJDUMP@
223OBJEXT = @OBJEXT@
224OTOOL = @OTOOL@
225OTOOL64 = @OTOOL64@
226PACKAGE = @PACKAGE@
227PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
228PACKAGE_NAME = @PACKAGE_NAME@
229PACKAGE_STRING = @PACKAGE_STRING@
230PACKAGE_TARNAME = @PACKAGE_TARNAME@
231PACKAGE_URL = @PACKAGE_URL@
232PACKAGE_VERSION = @PACKAGE_VERSION@
233PATH_SEPARATOR = @PATH_SEPARATOR@
234PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
235PIXMAN_LIBS = @PIXMAN_LIBS@
236PKG_CONFIG = @PKG_CONFIG@
237PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
238PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
239PNG_CFLAGS = @PNG_CFLAGS@
240PNG_LIBS = @PNG_LIBS@
241RANLIB = @RANLIB@
242SDL_CFLAGS = @SDL_CFLAGS@
243SDL_LIBS = @SDL_LIBS@
244SED = @SED@
245SET_MAKE = @SET_MAKE@
246SHELL = @SHELL@
247SHM_OPEN_LINK = @SHM_OPEN_LINK@
248STRIP = @STRIP@
249SVG_CFLAGS = @SVG_CFLAGS@
250SVG_LIBS = @SVG_LIBS@
251VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
252VALGRIND_LIBS = @VALGRIND_LIBS@
253VERSION = @VERSION@
254VMAJ = @VMAJ@
255WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
256WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
257XCB_CFLAGS = @XCB_CFLAGS@
258XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
259XCB_GL_LIBS = @XCB_GL_LIBS@
260XCB_LIBS = @XCB_LIBS@
261XEXT_CFLAGS = @XEXT_CFLAGS@
262XEXT_LIBS = @XEXT_LIBS@
263XMKMF = @XMKMF@
264X_CFLAGS = @X_CFLAGS@
265X_EXTRA_LIBS = @X_EXTRA_LIBS@
266X_LIBS = @X_LIBS@
267X_PRE_LIBS = @X_PRE_LIBS@
268abs_builddir = @abs_builddir@
269abs_srcdir = @abs_srcdir@
270abs_top_builddir = @abs_top_builddir@
271abs_top_srcdir = @abs_top_srcdir@
272ac_ct_CC = @ac_ct_CC@
273ac_ct_CXX = @ac_ct_CXX@
274ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
275ac_ct_OBJC = @ac_ct_OBJC@
276altivec_cflags = @altivec_cflags@
277am__include = @am__include@
278am__leading_dot = @am__leading_dot@
279am__quote = @am__quote@
280am__tar = @am__tar@
281am__untar = @am__untar@
282bindir = @bindir@
283build = @build@
284build_alias = @build_alias@
285build_cpu = @build_cpu@
286build_os = @build_os@
287build_vendor = @build_vendor@
288builddir = @builddir@
289datadir = @datadir@
290datarootdir = @datarootdir@
291dlopen_libs = @dlopen_libs@
292docdir = @docdir@
293dvidir = @dvidir@
294edje_cc = @edje_cc@
295efl_doxygen = @efl_doxygen@
296efl_have_doxygen = @efl_have_doxygen@
297evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
298evas_engine_buffer_libs = @evas_engine_buffer_libs@
299evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
300evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
301evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
302evas_engine_directfb_libs = @evas_engine_directfb_libs@
303evas_engine_fb_cflags = @evas_engine_fb_cflags@
304evas_engine_fb_libs = @evas_engine_fb_libs@
305evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
306evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
307evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
308evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
309evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
310evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
311evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
312evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
313evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
314evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
315evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
316evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
317evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
318evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
319evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
320evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
321evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
322evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
323evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
324evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
325evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
326evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
327evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
328evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
329evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
330evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
331evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
332evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
333evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
334evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
335evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
336evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
337evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
338evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
339evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
340evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
341evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
342evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
343evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
344evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
345evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
346evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
347evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
348evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
349evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
350evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
351evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
352evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
353evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
354evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
355evas_image_loader_png_libs = @evas_image_loader_png_libs@
356evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
357evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
358evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
359evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
360evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
361evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
362evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
363evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
364evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
365evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
366evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
367evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
368exec_prefix = @exec_prefix@
369have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
370have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
371have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
372have_evas_engine_software_x11 = @have_evas_engine_software_x11@
373have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
374have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
375have_lcov = @have_lcov@
376host = @host@
377host_alias = @host_alias@
378host_cpu = @host_cpu@
379host_os = @host_os@
380host_vendor = @host_vendor@
381htmldir = @htmldir@
382includedir = @includedir@
383infodir = @infodir@
384install_sh = @install_sh@
385libdir = @libdir@
386libexecdir = @libexecdir@
387localedir = @localedir@
388localstatedir = @localstatedir@
389lt_ECHO = @lt_ECHO@
390lt_enable_auto_import = @lt_enable_auto_import@
391mandir = @mandir@
392mkdir_p = @mkdir_p@
393oldincludedir = @oldincludedir@
394pdfdir = @pdfdir@
395pkgconfig_requires_private = @pkgconfig_requires_private@
396prefix = @prefix@
397program_transform_name = @program_transform_name@
398psdir = @psdir@
399pthread_cflags = @pthread_cflags@
400pthread_libs = @pthread_libs@
401release_info = @release_info@
402requirement_evas = @requirement_evas@
403sbindir = @sbindir@
404sharedstatedir = @sharedstatedir@
405srcdir = @srcdir@
406sysconfdir = @sysconfdir@
407target_alias = @target_alias@
408top_build_prefix = @top_build_prefix@
409top_builddir = @top_builddir@
410top_srcdir = @top_srcdir@
411version_info = @version_info@
412MAINTAINERCLEANFILES = Makefile.in
413SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_3) \
414 $(am__append_4) $(am__append_5) $(am__append_6) \
415 $(am__append_7) $(am__append_8) $(am__append_9) \
416 $(am__append_10) $(am__append_11) $(am__append_12) \
417 $(am__append_13) $(am__append_14) $(am__append_15) \
418 $(am__append_16) $(am__append_17) $(am__append_18) \
419 $(am__append_19) $(am__append_20) $(am__append_21) \
420 $(am__append_22)
421all: all-recursive
422
423.SUFFIXES:
424$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
425 @for dep in $?; do \
426 case '$(am__configure_deps)' in \
427 *$$dep*) \
428 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
429 && { if test -f $@; then exit 0; else break; fi; }; \
430 exit 1;; \
431 esac; \
432 done; \
433 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/Makefile'; \
434 $(am__cd) $(top_srcdir) && \
435 $(AUTOMAKE) --gnu src/modules/engines/Makefile
436.PRECIOUS: Makefile
437Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
438 @case '$?' in \
439 *config.status*) \
440 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
441 *) \
442 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
443 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
444 esac;
445
446$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
447 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
448
449$(top_srcdir)/configure: $(am__configure_deps)
450 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
451$(ACLOCAL_M4): $(am__aclocal_m4_deps)
452 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
453$(am__aclocal_m4_deps):
454
455mostlyclean-libtool:
456 -rm -f *.lo
457
458clean-libtool:
459 -rm -rf .libs _libs
460
461# This directory's subdirectories are mostly independent; you can cd
462# into them and run `make' without going through this Makefile.
463# To change the values of `make' variables: instead of editing Makefiles,
464# (1) if the variable is set in `config.status', edit `config.status'
465# (which will cause the Makefiles to be regenerated when you run `make');
466# (2) otherwise, pass the desired values on the `make' command line.
467$(RECURSIVE_TARGETS):
468 @fail= failcom='exit 1'; \
469 for f in x $$MAKEFLAGS; do \
470 case $$f in \
471 *=* | --[!k]*);; \
472 *k*) failcom='fail=yes';; \
473 esac; \
474 done; \
475 dot_seen=no; \
476 target=`echo $@ | sed s/-recursive//`; \
477 list='$(SUBDIRS)'; for subdir in $$list; do \
478 echo "Making $$target in $$subdir"; \
479 if test "$$subdir" = "."; then \
480 dot_seen=yes; \
481 local_target="$$target-am"; \
482 else \
483 local_target="$$target"; \
484 fi; \
485 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
486 || eval $$failcom; \
487 done; \
488 if test "$$dot_seen" = "no"; then \
489 $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
490 fi; test -z "$$fail"
491
492$(RECURSIVE_CLEAN_TARGETS):
493 @fail= failcom='exit 1'; \
494 for f in x $$MAKEFLAGS; do \
495 case $$f in \
496 *=* | --[!k]*);; \
497 *k*) failcom='fail=yes';; \
498 esac; \
499 done; \
500 dot_seen=no; \
501 case "$@" in \
502 distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
503 *) list='$(SUBDIRS)' ;; \
504 esac; \
505 rev=''; for subdir in $$list; do \
506 if test "$$subdir" = "."; then :; else \
507 rev="$$subdir $$rev"; \
508 fi; \
509 done; \
510 rev="$$rev ."; \
511 target=`echo $@ | sed s/-recursive//`; \
512 for subdir in $$rev; do \
513 echo "Making $$target in $$subdir"; \
514 if test "$$subdir" = "."; then \
515 local_target="$$target-am"; \
516 else \
517 local_target="$$target"; \
518 fi; \
519 ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
520 || eval $$failcom; \
521 done && test -z "$$fail"
522tags-recursive:
523 list='$(SUBDIRS)'; for subdir in $$list; do \
524 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
525 done
526ctags-recursive:
527 list='$(SUBDIRS)'; for subdir in $$list; do \
528 test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
529 done
530
531ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
532 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
533 unique=`for i in $$list; do \
534 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
535 done | \
536 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
537 END { if (nonempty) { for (i in files) print i; }; }'`; \
538 mkid -fID $$unique
539tags: TAGS
540
541TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
542 $(TAGS_FILES) $(LISP)
543 set x; \
544 here=`pwd`; \
545 if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
546 include_option=--etags-include; \
547 empty_fix=.; \
548 else \
549 include_option=--include; \
550 empty_fix=; \
551 fi; \
552 list='$(SUBDIRS)'; for subdir in $$list; do \
553 if test "$$subdir" = .; then :; else \
554 test ! -f $$subdir/TAGS || \
555 set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
556 fi; \
557 done; \
558 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
559 unique=`for i in $$list; do \
560 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
561 done | \
562 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
563 END { if (nonempty) { for (i in files) print i; }; }'`; \
564 shift; \
565 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
566 test -n "$$unique" || unique=$$empty_fix; \
567 if test $$# -gt 0; then \
568 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
569 "$$@" $$unique; \
570 else \
571 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
572 $$unique; \
573 fi; \
574 fi
575ctags: CTAGS
576CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
577 $(TAGS_FILES) $(LISP)
578 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
579 unique=`for i in $$list; do \
580 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
581 done | \
582 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
583 END { if (nonempty) { for (i in files) print i; }; }'`; \
584 test -z "$(CTAGS_ARGS)$$unique" \
585 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
586 $$unique
587
588GTAGS:
589 here=`$(am__cd) $(top_builddir) && pwd` \
590 && $(am__cd) $(top_srcdir) \
591 && gtags -i $(GTAGS_ARGS) "$$here"
592
593distclean-tags:
594 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
595
596distdir: $(DISTFILES)
597 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
598 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
599 list='$(DISTFILES)'; \
600 dist_files=`for file in $$list; do echo $$file; done | \
601 sed -e "s|^$$srcdirstrip/||;t" \
602 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
603 case $$dist_files in \
604 */*) $(MKDIR_P) `echo "$$dist_files" | \
605 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
606 sort -u` ;; \
607 esac; \
608 for file in $$dist_files; do \
609 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
610 if test -d $$d/$$file; then \
611 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
612 if test -d "$(distdir)/$$file"; then \
613 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
614 fi; \
615 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
616 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
617 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
618 fi; \
619 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
620 else \
621 test -f "$(distdir)/$$file" \
622 || cp -p $$d/$$file "$(distdir)/$$file" \
623 || exit 1; \
624 fi; \
625 done
626 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
627 if test "$$subdir" = .; then :; else \
628 test -d "$(distdir)/$$subdir" \
629 || $(MKDIR_P) "$(distdir)/$$subdir" \
630 || exit 1; \
631 fi; \
632 done
633 @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
634 if test "$$subdir" = .; then :; else \
635 dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
636 $(am__relativize); \
637 new_distdir=$$reldir; \
638 dir1=$$subdir; dir2="$(top_distdir)"; \
639 $(am__relativize); \
640 new_top_distdir=$$reldir; \
641 echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
642 echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
643 ($(am__cd) $$subdir && \
644 $(MAKE) $(AM_MAKEFLAGS) \
645 top_distdir="$$new_top_distdir" \
646 distdir="$$new_distdir" \
647 am__remove_distdir=: \
648 am__skip_length_check=: \
649 am__skip_mode_fix=: \
650 distdir) \
651 || exit 1; \
652 fi; \
653 done
654check-am: all-am
655check: check-recursive
656all-am: Makefile
657installdirs: installdirs-recursive
658installdirs-am:
659install: install-recursive
660install-exec: install-exec-recursive
661install-data: install-data-recursive
662uninstall: uninstall-recursive
663
664install-am: all-am
665 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
666
667installcheck: installcheck-recursive
668install-strip:
669 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
670 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
671 `test -z '$(STRIP)' || \
672 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
673mostlyclean-generic:
674
675clean-generic:
676
677distclean-generic:
678 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
679 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
680
681maintainer-clean-generic:
682 @echo "This command is intended for maintainers to use"
683 @echo "it deletes files that may require special tools to rebuild."
684 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
685clean: clean-recursive
686
687clean-am: clean-generic clean-libtool mostlyclean-am
688
689distclean: distclean-recursive
690 -rm -f Makefile
691distclean-am: clean-am distclean-generic distclean-tags
692
693dvi: dvi-recursive
694
695dvi-am:
696
697html: html-recursive
698
699html-am:
700
701info: info-recursive
702
703info-am:
704
705install-data-am:
706
707install-dvi: install-dvi-recursive
708
709install-dvi-am:
710
711install-exec-am:
712
713install-html: install-html-recursive
714
715install-html-am:
716
717install-info: install-info-recursive
718
719install-info-am:
720
721install-man:
722
723install-pdf: install-pdf-recursive
724
725install-pdf-am:
726
727install-ps: install-ps-recursive
728
729install-ps-am:
730
731installcheck-am:
732
733maintainer-clean: maintainer-clean-recursive
734 -rm -f Makefile
735maintainer-clean-am: distclean-am maintainer-clean-generic
736
737mostlyclean: mostlyclean-recursive
738
739mostlyclean-am: mostlyclean-generic mostlyclean-libtool
740
741pdf: pdf-recursive
742
743pdf-am:
744
745ps: ps-recursive
746
747ps-am:
748
749uninstall-am:
750
751.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
752 install-am install-strip tags-recursive
753
754.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
755 all all-am check check-am clean clean-generic clean-libtool \
756 ctags ctags-recursive distclean distclean-generic \
757 distclean-libtool distclean-tags distdir dvi dvi-am html \
758 html-am info info-am install install-am install-data \
759 install-data-am install-dvi install-dvi-am install-exec \
760 install-exec-am install-html install-html-am install-info \
761 install-info-am install-man install-pdf install-pdf-am \
762 install-ps install-ps-am install-strip installcheck \
763 installcheck-am installdirs installdirs-am maintainer-clean \
764 maintainer-clean-generic mostlyclean mostlyclean-generic \
765 mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
766 uninstall uninstall-am
767
768
769# Tell versions [3.59,3.63) of GNU make to not export all variables.
770# Otherwise a system limit (for SysV at least) may be exceeded.
771.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/buffer/Evas_Engine_Buffer.h b/libraries/evas/src/modules/engines/buffer/Evas_Engine_Buffer.h
deleted file mode 100644
index a9cbbfb..0000000
--- a/libraries/evas/src/modules/engines/buffer/Evas_Engine_Buffer.h
+++ /dev/null
@@ -1,43 +0,0 @@
1#ifndef _EVAS_ENGINE_BUFFER_H
2#define _EVAS_ENGINE_BUFFER_H
3
4#define EVAS_ENGINE_BUFFER_DEPTH_ARGB32 0
5#define EVAS_ENGINE_BUFFER_DEPTH_BGRA32 1
6#define EVAS_ENGINE_BUFFER_DEPTH_RGB24 2
7#define EVAS_ENGINE_BUFFER_DEPTH_BGR24 3
8#define EVAS_ENGINE_BUFFER_DEPTH_RGB32 4
9
10typedef struct _Evas_Engine_Info_Buffer Evas_Engine_Info_Buffer;
11
12struct _Evas_Engine_Info_Buffer
13{
14 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
15 /* at you and make nasty noises */
16 Evas_Engine_Info magic;
17
18 struct {
19 int depth_type;
20
21 void *dest_buffer;
22 int dest_buffer_row_bytes;
23
24 char use_color_key : 1;
25 int alpha_threshold;
26 int color_key_r;
27 int color_key_g;
28 int color_key_b;
29 struct {
30 void * (*new_update_region) (int x, int y, int w, int h, int *row_bytes);
31 void (*free_update_region) (int x, int y, int w, int h, void *data);
32 void * (*switch_buffer) (void *data, void *dest_buffer);
33 } func;
34
35 void *switch_data;
36 } info;
37
38 /* non-blocking or blocking mode */
39 Evas_Engine_Render_Mode render_mode;
40};
41#endif
42
43
diff --git a/libraries/evas/src/modules/engines/buffer/Makefile.am b/libraries/evas/src/modules/engines/buffer/Makefile.am
deleted file mode 100644
index 4090b6f..0000000
--- a/libraries/evas/src/modules/engines/buffer/Makefile.am
+++ /dev/null
@@ -1,42 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@EINA_CFLAGS@ \
10@FREETYPE_CFLAGS@ \
11@PIXMAN_CFLAGS@
12
13if BUILD_ENGINE_BUFFER
14
15BUFFER_SOURCES = \
16evas_engine.c \
17evas_outbuf.c
18
19
20includes_HEADERS = Evas_Engine_Buffer.h
21includesdir = $(includedir)/evas-@VMAJ@
22
23if !EVAS_STATIC_BUILD_BUFFER
24
25pkgdir = $(libdir)/evas/modules/engines/buffer/$(MODULE_ARCH)
26pkg_LTLIBRARIES = module.la
27
28module_la_SOURCES = $(BUFFER_SOURCES)
29module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@
30module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
31module_la_LIBTOOLFLAGS = --tag=disable-static
32
33else
34
35noinst_LTLIBRARIES = libevas_engine_buffer.la
36
37libevas_engine_buffer_la_SOURCES = $(BUFFER_SOURCES)
38
39endif
40endif
41
42EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/buffer/Makefile.in b/libraries/evas/src/modules/engines/buffer/Makefile.in
deleted file mode 100644
index bd9818e..0000000
--- a/libraries/evas/src/modules/engines/buffer/Makefile.in
+++ /dev/null
@@ -1,808 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/buffer
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84libevas_engine_buffer_la_LIBADD =
85am__libevas_engine_buffer_la_SOURCES_DIST = evas_engine.c \
86 evas_outbuf.c
87@BUILD_ENGINE_BUFFER_TRUE@am__objects_1 = evas_engine.lo \
88@BUILD_ENGINE_BUFFER_TRUE@ evas_outbuf.lo
89@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_TRUE@am_libevas_engine_buffer_la_OBJECTS = $(am__objects_1)
90libevas_engine_buffer_la_OBJECTS = \
91 $(am_libevas_engine_buffer_la_OBJECTS)
92AM_V_lt = $(am__v_lt_$(V))
93am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
94am__v_lt_0 = --silent
95@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_TRUE@am_libevas_engine_buffer_la_rpath =
96@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
97am__module_la_SOURCES_DIST = evas_engine.c evas_outbuf.c
98@BUILD_ENGINE_BUFFER_TRUE@am__objects_2 = module_la-evas_engine.lo \
99@BUILD_ENGINE_BUFFER_TRUE@ module_la-evas_outbuf.lo
100@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@am_module_la_OBJECTS = $(am__objects_2)
101module_la_OBJECTS = $(am_module_la_OBJECTS)
102module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
103 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
104 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
105@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@am_module_la_rpath = -rpath \
106@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@ $(pkgdir)
107DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
108depcomp = $(SHELL) $(top_srcdir)/depcomp
109am__depfiles_maybe = depfiles
110am__mv = mv -f
111COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
112 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
113LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
114 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
115 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
116 $(AM_CFLAGS) $(CFLAGS)
117AM_V_CC = $(am__v_CC_$(V))
118am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
119am__v_CC_0 = @echo " CC " $@;
120AM_V_at = $(am__v_at_$(V))
121am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
122am__v_at_0 = @
123CCLD = $(CC)
124LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
125 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
126 $(AM_LDFLAGS) $(LDFLAGS) -o $@
127AM_V_CCLD = $(am__v_CCLD_$(V))
128am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
129am__v_CCLD_0 = @echo " CCLD " $@;
130AM_V_GEN = $(am__v_GEN_$(V))
131am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
132am__v_GEN_0 = @echo " GEN " $@;
133SOURCES = $(libevas_engine_buffer_la_SOURCES) $(module_la_SOURCES)
134DIST_SOURCES = $(am__libevas_engine_buffer_la_SOURCES_DIST) \
135 $(am__module_la_SOURCES_DIST)
136am__includes_HEADERS_DIST = Evas_Engine_Buffer.h
137HEADERS = $(includes_HEADERS)
138ETAGS = etags
139CTAGS = ctags
140DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
141ACLOCAL = @ACLOCAL@
142ALLOCA = @ALLOCA@
143AMTAR = @AMTAR@
144AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
145AR = @AR@
146AS = @AS@
147AUTOCONF = @AUTOCONF@
148AUTOHEADER = @AUTOHEADER@
149AUTOMAKE = @AUTOMAKE@
150AWK = @AWK@
151CC = @CC@
152CCDEPMODE = @CCDEPMODE@
153CFLAGS = @CFLAGS@
154CHECK_CFLAGS = @CHECK_CFLAGS@
155CHECK_LIBS = @CHECK_LIBS@
156CPP = @CPP@
157CPPFLAGS = @CPPFLAGS@
158CXX = @CXX@
159CXXCPP = @CXXCPP@
160CXXDEPMODE = @CXXDEPMODE@
161CXXFLAGS = @CXXFLAGS@
162CYGPATH_W = @CYGPATH_W@
163DEFS = @DEFS@
164DEPDIR = @DEPDIR@
165DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
166DIRECTFB_LIBS = @DIRECTFB_LIBS@
167DLLTOOL = @DLLTOOL@
168DSYMUTIL = @DSYMUTIL@
169DUMPBIN = @DUMPBIN@
170ECHO_C = @ECHO_C@
171ECHO_N = @ECHO_N@
172ECHO_T = @ECHO_T@
173ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
174ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
175EDB_CFLAGS = @EDB_CFLAGS@
176EDB_LIBS = @EDB_LIBS@
177EDJE_CFLAGS = @EDJE_CFLAGS@
178EDJE_LIBS = @EDJE_LIBS@
179EET_CFLAGS = @EET_CFLAGS@
180EET_LIBS = @EET_LIBS@
181EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
182EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
183EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
184EGREP = @EGREP@
185EINA_CFLAGS = @EINA_CFLAGS@
186EINA_LIBS = @EINA_LIBS@
187EVAS_CFLAGS = @EVAS_CFLAGS@
188EVAS_LIBS = @EVAS_LIBS@
189EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
190EVIL_CFLAGS = @EVIL_CFLAGS@
191EVIL_LIBS = @EVIL_LIBS@
192EXEEXT = @EXEEXT@
193EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
194EXOTIC_LIBS = @EXOTIC_LIBS@
195FGREP = @FGREP@
196FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
197FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
198FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
199FREETYPE_LIBS = @FREETYPE_LIBS@
200FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
201FRIBIDI_LIBS = @FRIBIDI_LIBS@
202GL_EET_CFLAGS = @GL_EET_CFLAGS@
203GL_EET_LIBS = @GL_EET_LIBS@
204GREP = @GREP@
205HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
206HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
207INSTALL = @INSTALL@
208INSTALL_DATA = @INSTALL_DATA@
209INSTALL_PROGRAM = @INSTALL_PROGRAM@
210INSTALL_SCRIPT = @INSTALL_SCRIPT@
211INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
212LD = @LD@
213LDFLAGS = @LDFLAGS@
214LIBOBJS = @LIBOBJS@
215LIBS = @LIBS@
216LIBTOOL = @LIBTOOL@
217LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
218LINEBREAK_LIBS = @LINEBREAK_LIBS@
219LIPO = @LIPO@
220LN_S = @LN_S@
221LTLIBOBJS = @LTLIBOBJS@
222MAKEINFO = @MAKEINFO@
223MKDIR_P = @MKDIR_P@
224MODULE_ARCH = @MODULE_ARCH@
225NM = @NM@
226NMEDIT = @NMEDIT@
227OBJC = @OBJC@
228OBJCDEPMODE = @OBJCDEPMODE@
229OBJCFLAGS = @OBJCFLAGS@
230OBJDUMP = @OBJDUMP@
231OBJEXT = @OBJEXT@
232OTOOL = @OTOOL@
233OTOOL64 = @OTOOL64@
234PACKAGE = @PACKAGE@
235PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
236PACKAGE_NAME = @PACKAGE_NAME@
237PACKAGE_STRING = @PACKAGE_STRING@
238PACKAGE_TARNAME = @PACKAGE_TARNAME@
239PACKAGE_URL = @PACKAGE_URL@
240PACKAGE_VERSION = @PACKAGE_VERSION@
241PATH_SEPARATOR = @PATH_SEPARATOR@
242PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
243PIXMAN_LIBS = @PIXMAN_LIBS@
244PKG_CONFIG = @PKG_CONFIG@
245PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
246PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
247PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@
250SDL_CFLAGS = @SDL_CFLAGS@
251SDL_LIBS = @SDL_LIBS@
252SED = @SED@
253SET_MAKE = @SET_MAKE@
254SHELL = @SHELL@
255SHM_OPEN_LINK = @SHM_OPEN_LINK@
256STRIP = @STRIP@
257SVG_CFLAGS = @SVG_CFLAGS@
258SVG_LIBS = @SVG_LIBS@
259VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@
262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265XCB_CFLAGS = @XCB_CFLAGS@
266XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
267XCB_GL_LIBS = @XCB_GL_LIBS@
268XCB_LIBS = @XCB_LIBS@
269XEXT_CFLAGS = @XEXT_CFLAGS@
270XEXT_LIBS = @XEXT_LIBS@
271XMKMF = @XMKMF@
272X_CFLAGS = @X_CFLAGS@
273X_EXTRA_LIBS = @X_EXTRA_LIBS@
274X_LIBS = @X_LIBS@
275X_PRE_LIBS = @X_PRE_LIBS@
276abs_builddir = @abs_builddir@
277abs_srcdir = @abs_srcdir@
278abs_top_builddir = @abs_top_builddir@
279abs_top_srcdir = @abs_top_srcdir@
280ac_ct_CC = @ac_ct_CC@
281ac_ct_CXX = @ac_ct_CXX@
282ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
283ac_ct_OBJC = @ac_ct_OBJC@
284altivec_cflags = @altivec_cflags@
285am__include = @am__include@
286am__leading_dot = @am__leading_dot@
287am__quote = @am__quote@
288am__tar = @am__tar@
289am__untar = @am__untar@
290bindir = @bindir@
291build = @build@
292build_alias = @build_alias@
293build_cpu = @build_cpu@
294build_os = @build_os@
295build_vendor = @build_vendor@
296builddir = @builddir@
297datadir = @datadir@
298datarootdir = @datarootdir@
299dlopen_libs = @dlopen_libs@
300docdir = @docdir@
301dvidir = @dvidir@
302edje_cc = @edje_cc@
303efl_doxygen = @efl_doxygen@
304efl_have_doxygen = @efl_have_doxygen@
305evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
306evas_engine_buffer_libs = @evas_engine_buffer_libs@
307evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
308evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
309evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
310evas_engine_directfb_libs = @evas_engine_directfb_libs@
311evas_engine_fb_cflags = @evas_engine_fb_cflags@
312evas_engine_fb_libs = @evas_engine_fb_libs@
313evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
314evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
315evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
316evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
317evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
318evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
319evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
320evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
321evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
322evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
323evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
324evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
325evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
326evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
327evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
328evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
329evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
330evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
331evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
332evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
333evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
334evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
335evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
336evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
337evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
338evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
349evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
350evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
351evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
352evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
353evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
354evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
355evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
356evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
357evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
358evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
359evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
360evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
361evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
362evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
363evas_image_loader_png_libs = @evas_image_loader_png_libs@
364evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
365evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
366evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
367evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
368evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
369evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
370evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
371evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
372evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
373evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
374evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
375evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
376exec_prefix = @exec_prefix@
377have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
378have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
379have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
380have_evas_engine_software_x11 = @have_evas_engine_software_x11@
381have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
382have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
383have_lcov = @have_lcov@
384host = @host@
385host_alias = @host_alias@
386host_cpu = @host_cpu@
387host_os = @host_os@
388host_vendor = @host_vendor@
389htmldir = @htmldir@
390includedir = @includedir@
391infodir = @infodir@
392install_sh = @install_sh@
393libdir = @libdir@
394libexecdir = @libexecdir@
395localedir = @localedir@
396localstatedir = @localstatedir@
397lt_ECHO = @lt_ECHO@
398lt_enable_auto_import = @lt_enable_auto_import@
399mandir = @mandir@
400mkdir_p = @mkdir_p@
401oldincludedir = @oldincludedir@
402pdfdir = @pdfdir@
403pkgconfig_requires_private = @pkgconfig_requires_private@
404prefix = @prefix@
405program_transform_name = @program_transform_name@
406psdir = @psdir@
407pthread_cflags = @pthread_cflags@
408pthread_libs = @pthread_libs@
409release_info = @release_info@
410requirement_evas = @requirement_evas@
411sbindir = @sbindir@
412sharedstatedir = @sharedstatedir@
413srcdir = @srcdir@
414sysconfdir = @sysconfdir@
415target_alias = @target_alias@
416top_build_prefix = @top_build_prefix@
417top_builddir = @top_builddir@
418top_srcdir = @top_srcdir@
419version_info = @version_info@
420MAINTAINERCLEANFILES = Makefile.in
421AM_CPPFLAGS = \
422-I. \
423-I$(top_srcdir)/src/lib \
424-I$(top_srcdir)/src/lib/include \
425-I$(top_srcdir)/src/modules/engines \
426@EINA_CFLAGS@ \
427@FREETYPE_CFLAGS@ \
428@PIXMAN_CFLAGS@
429
430@BUILD_ENGINE_BUFFER_TRUE@BUFFER_SOURCES = \
431@BUILD_ENGINE_BUFFER_TRUE@evas_engine.c \
432@BUILD_ENGINE_BUFFER_TRUE@evas_outbuf.c
433
434@BUILD_ENGINE_BUFFER_TRUE@includes_HEADERS = Evas_Engine_Buffer.h
435@BUILD_ENGINE_BUFFER_TRUE@includesdir = $(includedir)/evas-@VMAJ@
436@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@pkgdir = $(libdir)/evas/modules/engines/buffer/$(MODULE_ARCH)
437@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@pkg_LTLIBRARIES = module.la
438@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@module_la_SOURCES = $(BUFFER_SOURCES)
439@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@
440@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
441@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
442@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_TRUE@noinst_LTLIBRARIES = libevas_engine_buffer.la
443@BUILD_ENGINE_BUFFER_TRUE@@EVAS_STATIC_BUILD_BUFFER_TRUE@libevas_engine_buffer_la_SOURCES = $(BUFFER_SOURCES)
444EXTRA_DIST = evas_engine.h
445all: all-am
446
447.SUFFIXES:
448.SUFFIXES: .c .lo .o .obj
449$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
450 @for dep in $?; do \
451 case '$(am__configure_deps)' in \
452 *$$dep*) \
453 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
454 && { if test -f $@; then exit 0; else break; fi; }; \
455 exit 1;; \
456 esac; \
457 done; \
458 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/buffer/Makefile'; \
459 $(am__cd) $(top_srcdir) && \
460 $(AUTOMAKE) --gnu src/modules/engines/buffer/Makefile
461.PRECIOUS: Makefile
462Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
463 @case '$?' in \
464 *config.status*) \
465 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
466 *) \
467 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
468 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
469 esac;
470
471$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
472 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
473
474$(top_srcdir)/configure: $(am__configure_deps)
475 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
476$(ACLOCAL_M4): $(am__aclocal_m4_deps)
477 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
478$(am__aclocal_m4_deps):
479
480clean-noinstLTLIBRARIES:
481 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
482 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
483 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
484 test "$$dir" != "$$p" || dir=.; \
485 echo "rm -f \"$${dir}/so_locations\""; \
486 rm -f "$${dir}/so_locations"; \
487 done
488install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
489 @$(NORMAL_INSTALL)
490 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
491 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
492 list2=; for p in $$list; do \
493 if test -f $$p; then \
494 list2="$$list2 $$p"; \
495 else :; fi; \
496 done; \
497 test -z "$$list2" || { \
498 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
499 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
500 }
501
502uninstall-pkgLTLIBRARIES:
503 @$(NORMAL_UNINSTALL)
504 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
505 for p in $$list; do \
506 $(am__strip_dir) \
507 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
508 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
509 done
510
511clean-pkgLTLIBRARIES:
512 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
513 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
514 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
515 test "$$dir" != "$$p" || dir=.; \
516 echo "rm -f \"$${dir}/so_locations\""; \
517 rm -f "$${dir}/so_locations"; \
518 done
519libevas_engine_buffer.la: $(libevas_engine_buffer_la_OBJECTS) $(libevas_engine_buffer_la_DEPENDENCIES)
520 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_buffer_la_rpath) $(libevas_engine_buffer_la_OBJECTS) $(libevas_engine_buffer_la_LIBADD) $(LIBS)
521module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
522 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
523
524mostlyclean-compile:
525 -rm -f *.$(OBJEXT)
526
527distclean-compile:
528 -rm -f *.tab.c
529
530@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
531@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
532@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
533@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
534
535.c.o:
536@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
537@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
538@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
539@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
540@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
541@am__fastdepCC_FALSE@ $(COMPILE) -c $<
542
543.c.obj:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
550
551.c.lo:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
558
559module_la-evas_engine.lo: evas_engine.c
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
566
567module_la-evas_outbuf.lo: evas_outbuf.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
574
575mostlyclean-libtool:
576 -rm -f *.lo
577
578clean-libtool:
579 -rm -rf .libs _libs
580install-includesHEADERS: $(includes_HEADERS)
581 @$(NORMAL_INSTALL)
582 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
583 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
584 for p in $$list; do \
585 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
586 echo "$$d$$p"; \
587 done | $(am__base_list) | \
588 while read files; do \
589 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
590 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
591 done
592
593uninstall-includesHEADERS:
594 @$(NORMAL_UNINSTALL)
595 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
596 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
597 test -n "$$files" || exit 0; \
598 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
599 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
600
601ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
602 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
603 unique=`for i in $$list; do \
604 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
605 done | \
606 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
607 END { if (nonempty) { for (i in files) print i; }; }'`; \
608 mkid -fID $$unique
609tags: TAGS
610
611TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
612 $(TAGS_FILES) $(LISP)
613 set x; \
614 here=`pwd`; \
615 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
616 unique=`for i in $$list; do \
617 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
618 done | \
619 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
620 END { if (nonempty) { for (i in files) print i; }; }'`; \
621 shift; \
622 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
623 test -n "$$unique" || unique=$$empty_fix; \
624 if test $$# -gt 0; then \
625 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
626 "$$@" $$unique; \
627 else \
628 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
629 $$unique; \
630 fi; \
631 fi
632ctags: CTAGS
633CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
634 $(TAGS_FILES) $(LISP)
635 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
636 unique=`for i in $$list; do \
637 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
638 done | \
639 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
640 END { if (nonempty) { for (i in files) print i; }; }'`; \
641 test -z "$(CTAGS_ARGS)$$unique" \
642 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
643 $$unique
644
645GTAGS:
646 here=`$(am__cd) $(top_builddir) && pwd` \
647 && $(am__cd) $(top_srcdir) \
648 && gtags -i $(GTAGS_ARGS) "$$here"
649
650distclean-tags:
651 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
652
653distdir: $(DISTFILES)
654 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
655 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
656 list='$(DISTFILES)'; \
657 dist_files=`for file in $$list; do echo $$file; done | \
658 sed -e "s|^$$srcdirstrip/||;t" \
659 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
660 case $$dist_files in \
661 */*) $(MKDIR_P) `echo "$$dist_files" | \
662 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
663 sort -u` ;; \
664 esac; \
665 for file in $$dist_files; do \
666 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
667 if test -d $$d/$$file; then \
668 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
669 if test -d "$(distdir)/$$file"; then \
670 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
671 fi; \
672 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
673 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
674 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
675 fi; \
676 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
677 else \
678 test -f "$(distdir)/$$file" \
679 || cp -p $$d/$$file "$(distdir)/$$file" \
680 || exit 1; \
681 fi; \
682 done
683check-am: all-am
684check: check-am
685all-am: Makefile $(LTLIBRARIES) $(HEADERS)
686installdirs:
687 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
688 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
689 done
690install: install-am
691install-exec: install-exec-am
692install-data: install-data-am
693uninstall: uninstall-am
694
695install-am: all-am
696 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
697
698installcheck: installcheck-am
699install-strip:
700 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
701 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
702 `test -z '$(STRIP)' || \
703 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
704mostlyclean-generic:
705
706clean-generic:
707
708distclean-generic:
709 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
710 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
711
712maintainer-clean-generic:
713 @echo "This command is intended for maintainers to use"
714 @echo "it deletes files that may require special tools to rebuild."
715 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
716clean: clean-am
717
718clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
719 clean-pkgLTLIBRARIES mostlyclean-am
720
721distclean: distclean-am
722 -rm -rf ./$(DEPDIR)
723 -rm -f Makefile
724distclean-am: clean-am distclean-compile distclean-generic \
725 distclean-tags
726
727dvi: dvi-am
728
729dvi-am:
730
731html: html-am
732
733html-am:
734
735info: info-am
736
737info-am:
738
739install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
740
741install-dvi: install-dvi-am
742
743install-dvi-am:
744
745install-exec-am:
746
747install-html: install-html-am
748
749install-html-am:
750
751install-info: install-info-am
752
753install-info-am:
754
755install-man:
756
757install-pdf: install-pdf-am
758
759install-pdf-am:
760
761install-ps: install-ps-am
762
763install-ps-am:
764
765installcheck-am:
766
767maintainer-clean: maintainer-clean-am
768 -rm -rf ./$(DEPDIR)
769 -rm -f Makefile
770maintainer-clean-am: distclean-am maintainer-clean-generic
771
772mostlyclean: mostlyclean-am
773
774mostlyclean-am: mostlyclean-compile mostlyclean-generic \
775 mostlyclean-libtool
776
777pdf: pdf-am
778
779pdf-am:
780
781ps: ps-am
782
783ps-am:
784
785uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
786
787.MAKE: install-am install-strip
788
789.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
790 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
791 ctags distclean distclean-compile distclean-generic \
792 distclean-libtool distclean-tags distdir dvi dvi-am html \
793 html-am info info-am install install-am install-data \
794 install-data-am install-dvi install-dvi-am install-exec \
795 install-exec-am install-html install-html-am \
796 install-includesHEADERS install-info install-info-am \
797 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
798 install-ps install-ps-am install-strip installcheck \
799 installcheck-am installdirs maintainer-clean \
800 maintainer-clean-generic mostlyclean mostlyclean-compile \
801 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
802 tags uninstall uninstall-am uninstall-includesHEADERS \
803 uninstall-pkgLTLIBRARIES
804
805
806# Tell versions [3.59,3.63) of GNU make to not export all variables.
807# Otherwise a system limit (for SysV at least) may be exceeded.
808.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/buffer/evas_engine.c b/libraries/evas/src/modules/engines/buffer/evas_engine.c
deleted file mode 100644
index 758ef10..0000000
--- a/libraries/evas/src/modules/engines/buffer/evas_engine.c
+++ /dev/null
@@ -1,444 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Buffer.h"
5
6/* domain for eina_log */
7/* the log macros are defined in evas_common.h */
8/* theirs names are EVAS_ERR, EVAS_DBG, EVAS_CRIT, EVAS_WRN and EVAS_INF */
9/* although we can use the EVAS_ERROR, etc... macros it will not work
10 when the -fvisibility=hidden option is passed to gcc */
11
12int _evas_engine_buffer_log_dom = -1;
13
14/* function tables - filled in later (func and parent func) */
15
16static Evas_Func func, pfunc;
17
18
19/* engine struct data */
20typedef struct _Render_Engine Render_Engine;
21
22struct _Render_Engine
23{
24 Tilebuf *tb;
25 Outbuf *ob;
26 Tilebuf_Rect *rects;
27 Eina_Inlist *cur_rect;
28 Eina_Inarray previous_rects;
29 int end : 1;
30};
31
32/* prototypes we will use here */
33static void *_output_setup(int w, int h, void *dest_buffer, int dest_buffer_row_bytes, int depth_type, int use_color_key, int alpha_threshold, int color_key_r, int color_key_g, int color_key_b, void *(*new_update_region) (int x, int y, int w, int h, int *row_bytes), void (*free_update_region) (int x, int y, int w, int h, void *data), void *(*switch_buffer) (void *data, void *dest_buffer), void *switch_data);
34
35static void *eng_info(Evas *e __UNUSED__);
36static void eng_info_free(Evas *e __UNUSED__, void *info);
37static int eng_setup(Evas *e, void *info);
38static void eng_output_free(void *data);
39static void eng_output_resize(void *data, int w, int h);
40static void eng_output_tile_size_set(void *data, int w, int h);
41static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
42static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
43static void eng_output_redraws_clear(void *data);
44static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
45static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
46static void eng_output_flush(void *data);
47static void eng_output_idle_flush(void *data);
48
49/* internal engine routines */
50static void *
51_output_setup(int w,
52 int h,
53 void *dest_buffer,
54 int dest_buffer_row_bytes,
55 int depth_type,
56 int use_color_key,
57 int alpha_threshold,
58 int color_key_r,
59 int color_key_g,
60 int color_key_b,
61 void *(*new_update_region) (int x, int y, int w, int h, int *row_bytes),
62 void (*free_update_region) (int x, int y, int w, int h, void *data),
63 void *(*switch_buffer) (void *data, void *dest_buffer),
64 void *switch_data
65 )
66{
67 Render_Engine *re;
68
69 re = calloc(1, sizeof(Render_Engine));
70 if (!re)
71 return NULL;
72 /* if we haven't initialized - init (automatic abort if already done) */
73 evas_common_cpu_init();
74
75 evas_common_blend_init();
76 evas_common_image_init();
77 evas_common_convert_init();
78 evas_common_scale_init();
79 evas_common_rectangle_init();
80 evas_common_polygon_init();
81 evas_common_line_init();
82 evas_common_font_init();
83 evas_common_draw_init();
84 evas_common_tilebuf_init();
85
86 evas_buffer_outbuf_buf_init();
87
88 {
89 Outbuf_Depth dep;
90 DATA32 color_key = 0;
91
92 dep = OUTBUF_DEPTH_BGR_24BPP_888_888;
93 if (depth_type == EVAS_ENGINE_BUFFER_DEPTH_ARGB32)
94 dep = OUTBUF_DEPTH_ARGB_32BPP_8888_8888;
95 else if (depth_type == EVAS_ENGINE_BUFFER_DEPTH_RGB32)
96 dep = OUTBUF_DEPTH_RGB_32BPP_888_8888;
97 else if (depth_type == EVAS_ENGINE_BUFFER_DEPTH_BGRA32)
98 dep = OUTBUF_DEPTH_BGRA_32BPP_8888_8888;
99 else if (depth_type == EVAS_ENGINE_BUFFER_DEPTH_RGB24)
100 dep = OUTBUF_DEPTH_RGB_24BPP_888_888;
101 else if (depth_type == EVAS_ENGINE_BUFFER_DEPTH_BGR24)
102 dep = OUTBUF_DEPTH_BGR_24BPP_888_888;
103 R_VAL(&color_key) = color_key_r;
104 G_VAL(&color_key) = color_key_g;
105 B_VAL(&color_key) = color_key_b;
106 A_VAL(&color_key) = 0;
107 re->ob = evas_buffer_outbuf_buf_setup_fb(w,
108 h,
109 dep,
110 dest_buffer,
111 dest_buffer_row_bytes,
112 use_color_key,
113 color_key,
114 alpha_threshold,
115 new_update_region,
116 free_update_region,
117 switch_buffer,
118 switch_data);
119 }
120 re->tb = evas_common_tilebuf_new(w, h);
121 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
122 eina_inarray_setup(&re->previous_rects, sizeof (Eina_Rectangle), 8);
123 return re;
124}
125
126/* engine api this module provides */
127static void *
128eng_info(Evas *e __UNUSED__)
129{
130 Evas_Engine_Info_Buffer *info;
131 info = calloc(1, sizeof(Evas_Engine_Info_Buffer));
132 if (!info) return NULL;
133 info->magic.magic = rand();
134 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
135 return info;
136}
137
138static void
139eng_info_free(Evas *e __UNUSED__, void *info)
140{
141 Evas_Engine_Info_Buffer *in;
142 in = (Evas_Engine_Info_Buffer *)info;
143 free(in);
144}
145
146static int
147eng_setup(Evas *e, void *in)
148{
149 Render_Engine *re;
150 Evas_Engine_Info_Buffer *info;
151
152 info = (Evas_Engine_Info_Buffer *)in;
153 re = _output_setup(e->output.w,
154 e->output.h,
155 info->info.dest_buffer,
156 info->info.dest_buffer_row_bytes,
157 info->info.depth_type,
158 info->info.use_color_key,
159 info->info.alpha_threshold,
160 info->info.color_key_r,
161 info->info.color_key_g,
162 info->info.color_key_b,
163 info->info.func.new_update_region,
164 info->info.func.free_update_region,
165 info->info.func.switch_buffer,
166 info->info.switch_data);
167 if (e->engine.data.output)
168 eng_output_free(e->engine.data.output);
169 e->engine.data.output = re;
170 if (!e->engine.data.output) return 0;
171 if (!e->engine.data.context)
172 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
173 return 1;
174}
175
176static void
177eng_output_free(void *data)
178{
179 Render_Engine *re;
180
181 re = (Render_Engine *)data;
182 evas_buffer_outbuf_buf_free(re->ob);
183 evas_common_tilebuf_free(re->tb);
184 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
185 free(re);
186
187 evas_common_font_shutdown();
188 evas_common_image_shutdown();
189}
190
191static void
192eng_output_resize(void *data, int w, int h)
193{
194 Render_Engine *re;
195
196 re = (Render_Engine *)data;
197 {
198 int depth;
199 void *dest;
200 int dest_row_bytes;
201 int alpha_level;
202 DATA32 color_key;
203 char use_color_key;
204 void * (*new_update_region) (int x, int y, int w, int h, int *row_bytes);
205 void (*free_update_region) (int x, int y, int w, int h, void *data);
206 void * (*switch_buffer) (void *switch_data, void *dest);
207 void *switch_data;
208
209 depth = re->ob->depth;
210 dest = re->ob->dest;
211 dest_row_bytes = re->ob->dest_row_bytes;
212 alpha_level = re->ob->alpha_level;
213 color_key = re->ob->color_key;
214 use_color_key = re->ob->use_color_key;
215 new_update_region = re->ob->func.new_update_region;
216 free_update_region = re->ob->func.free_update_region;
217 switch_buffer = re->ob->func.switch_buffer;
218 switch_data = re->ob->switch_data;
219 evas_buffer_outbuf_buf_free(re->ob);
220 re->ob = evas_buffer_outbuf_buf_setup_fb(w,
221 h,
222 depth,
223 dest,
224 dest_row_bytes,
225 use_color_key,
226 color_key,
227 alpha_level,
228 new_update_region,
229 free_update_region,
230 switch_buffer,
231 switch_data);
232 }
233 evas_common_tilebuf_free(re->tb);
234 re->tb = evas_common_tilebuf_new(w, h);
235 if (re->tb)
236 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
237}
238
239static void
240eng_output_tile_size_set(void *data, int w, int h)
241{
242 Render_Engine *re;
243
244 re = (Render_Engine *)data;
245 evas_common_tilebuf_set_tile_size(re->tb, w, h);
246}
247
248static void
249eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
250{
251 Render_Engine *re;
252
253 re = (Render_Engine *)data;
254 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
255}
256
257static void
258eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
259{
260 Render_Engine *re;
261
262 re = (Render_Engine *)data;
263 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
264}
265
266static void
267eng_output_redraws_clear(void *data)
268{
269 Render_Engine *re;
270
271 re = (Render_Engine *)data;
272 evas_common_tilebuf_clear(re->tb);
273}
274
275static void *
276eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
277{
278 Render_Engine *re;
279 RGBA_Image *surface;
280 Tilebuf_Rect *rect;
281 int ux, uy, uw, uh;
282
283 re = (Render_Engine *)data;
284 if (re->end)
285 {
286 re->end = 0;
287 return NULL;
288 }
289 if (!re->rects)
290 {
291 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
292
293 /* handle double buffering */
294 if (re->ob->func.switch_buffer)
295 {
296 Eina_Rectangle *pushing;
297
298 if (re->ob->first_frame && !re->previous_rects.len)
299 {
300 evas_common_tilebuf_add_redraw(re->tb, 0, 0, re->ob->w, re->ob->h);
301 re->ob->first_frame = 0;
302 }
303
304 /* push previous frame */
305 EINA_INARRAY_FOREACH(&re->previous_rects, pushing)
306 evas_common_tilebuf_add_redraw(re->tb, pushing->x, pushing->y, pushing->w, pushing->h);
307 eina_inarray_flush(&re->previous_rects);
308
309 /* save current list of damage */
310 EINA_INLIST_FOREACH(re->rects, rect)
311 {
312 Eina_Rectangle local;
313
314 EINA_RECTANGLE_SET(&local, rect->x, rect->y, rect->w, rect->h);
315 eina_inarray_append(&re->previous_rects, &local);
316 }
317
318 /* and regenerate the damage list by tacking into account the damage over two frames */
319 evas_common_tilebuf_free_render_rects(re->rects);
320 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
321 }
322
323 re->cur_rect = EINA_INLIST_GET(re->rects);
324 }
325 if (!re->cur_rect) return NULL;
326 rect = (Tilebuf_Rect *)re->cur_rect;
327 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
328 re->cur_rect = re->cur_rect->next;
329 if (!re->cur_rect)
330 {
331 evas_common_tilebuf_free_render_rects(re->rects);
332 re->rects = NULL;
333 re->end = 1;
334 }
335
336 if ((ux + uw) > re->ob->w) uw = re->ob->w - ux;
337 if ((uy + uh) > re->ob->h) uh = re->ob->h - uy;
338 if ((uw <= 0) || (uh <= 0)) return NULL;
339 surface = evas_buffer_outbuf_buf_new_region_for_update(re->ob,
340 ux, uy, uw, uh,
341 cx, cy, cw, ch);
342 *x = ux; *y = uy; *w = uw; *h = uh;
343 return surface;
344}
345
346static void
347eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
348{
349 Render_Engine *re;
350
351 re = (Render_Engine *)data;
352#ifdef BUILD_PIPE_RENDER
353 evas_common_pipe_map_begin(surface);
354#endif
355 evas_buffer_outbuf_buf_push_updated_region(re->ob, surface, x, y, w, h);
356 evas_buffer_outbuf_buf_free_region_for_update(re->ob, surface);
357 evas_common_cpu_end_opt();
358}
359
360static void
361eng_output_flush(void *data)
362{
363 Render_Engine *re = (Render_Engine *)data;
364 evas_buffer_outbuf_buf_switch_buffer(re->ob);
365}
366
367static void
368eng_output_idle_flush(void *data __UNUSED__)
369{
370}
371
372static Eina_Bool
373eng_canvas_alpha_get(void *data, void *context __UNUSED__)
374{
375 Render_Engine *re;
376
377 re = (Render_Engine *)data;
378 if (re->ob->priv.back_buf)
379 return re->ob->priv.back_buf->cache_entry.flags.alpha;
380 return EINA_TRUE;
381}
382
383/* module advertising code */
384static int
385module_open(Evas_Module *em)
386{
387 if (!em) return 0;
388 /* get whatever engine module we inherit from */
389 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
390
391 _evas_engine_buffer_log_dom = eina_log_domain_register
392 ("evas-buffer", EINA_COLOR_BLUE);
393 if (_evas_engine_buffer_log_dom < 0)
394 {
395 EINA_LOG_ERR("Can not create a module log domain.");
396 return 0;
397 }
398
399 /* store it for later use */
400 func = pfunc;
401 /* now to override methods */
402#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
403 ORD(info);
404 ORD(info_free);
405 ORD(setup);
406 ORD(canvas_alpha_get);
407 ORD(output_free);
408 ORD(output_resize);
409 ORD(output_tile_size_set);
410 ORD(output_redraws_rect_add);
411 ORD(output_redraws_rect_del);
412 ORD(output_redraws_clear);
413 ORD(output_redraws_next_update_get);
414 ORD(output_redraws_next_update_push);
415 ORD(output_flush);
416 ORD(output_idle_flush);
417 /* now advertise out own api */
418 em->functions = (void *)(&func);
419 return 1;
420}
421
422static void
423module_close(Evas_Module *em __UNUSED__)
424{
425 eina_log_domain_unregister(_evas_engine_buffer_log_dom);
426}
427
428static Evas_Module_Api evas_modapi =
429{
430 EVAS_MODULE_API_VERSION,
431 "buffer",
432 "none",
433 {
434 module_open,
435 module_close
436 }
437};
438
439EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, buffer);
440
441#ifndef EVAS_STATIC_BUILD_BUFFER
442EVAS_EINA_MODULE_DEFINE(engine, buffer);
443#endif
444
diff --git a/libraries/evas/src/modules/engines/buffer/evas_engine.h b/libraries/evas/src/modules/engines/buffer/evas_engine.h
deleted file mode 100644
index af82477..0000000
--- a/libraries/evas/src/modules/engines/buffer/evas_engine.h
+++ /dev/null
@@ -1,91 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3#include "evas_common.h"
4/* this thing is for eina_log */
5extern int _evas_engine_buffer_log_dom ;
6
7#ifdef ERR
8# undef ERR
9#endif
10#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_buffer_log_dom, __VA_ARGS__)
11
12#ifdef DBG
13# undef DBG
14#endif
15#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_buffer_log_dom, __VA_ARGS__)
16
17#ifdef INF
18# undef INF
19#endif
20#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_buffer_log_dom, __VA_ARGS__)
21
22#ifdef WRN
23# undef WRN
24#endif
25#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_buffer_log_dom, __VA_ARGS__)
26
27#ifdef CRIT
28# undef CRIT
29#endif
30#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_buffer_log_dom, __VA_ARGS__)
31
32typedef struct _Outbuf Outbuf;
33
34typedef enum _Outbuf_Depth Outbuf_Depth;
35
36enum _Outbuf_Depth
37{
38 OUTBUF_DEPTH_NONE,
39 OUTBUF_DEPTH_ARGB_32BPP_8888_8888,
40 OUTBUF_DEPTH_BGRA_32BPP_8888_8888,
41 OUTBUF_DEPTH_RGB_32BPP_888_8888,
42 OUTBUF_DEPTH_BGR_32BPP_888_8888,
43 OUTBUF_DEPTH_RGB_24BPP_888_888,
44 OUTBUF_DEPTH_BGR_24BPP_888_888,
45 OUTBUF_DEPTH_LAST
46};
47
48struct _Outbuf
49{
50 int w, h;
51 Outbuf_Depth depth;
52
53 void *dest;
54 unsigned int dest_row_bytes;
55 void *switch_data;
56
57 int alpha_level;
58 DATA32 color_key;
59 char use_color_key : 1;
60 char first_frame : 1;
61
62 struct {
63 void * (*new_update_region) (int x, int y, int w, int h, int *row_bytes);
64 void (*free_update_region) (int x, int y, int w, int h, void *data);
65 void * (*switch_buffer) (void *data, void *dest_buffer);
66 } func;
67
68 struct {
69 RGBA_Image *back_buf;
70 } priv;
71};
72
73/****/
74
75void evas_buffer_outbuf_buf_init (void);
76void evas_buffer_outbuf_buf_free (Outbuf *buf);
77
78Outbuf *evas_buffer_outbuf_buf_setup_fb (int w, int h, Outbuf_Depth depth, void *dest, int dest_row_bytes, int use_color_key, DATA32 color_key, int alpha_level,
79 void * (*new_update_region) (int x, int y, int w, int h, int *row_bytes),
80 void (*free_update_region) (int x, int y, int w, int h, void *data),
81 void * (*switch_buffer)(void *switch_data, void *dest),
82 void *switch_data);
83
84
85RGBA_Image *evas_buffer_outbuf_buf_new_region_for_update (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
86void evas_buffer_outbuf_buf_free_region_for_update (Outbuf *buf, RGBA_Image *update);
87void evas_buffer_outbuf_buf_push_updated_region (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h);
88void evas_buffer_outbuf_buf_switch_buffer (Outbuf *buf);
89
90#endif
91
diff --git a/libraries/evas/src/modules/engines/buffer/evas_outbuf.c b/libraries/evas/src/modules/engines/buffer/evas_outbuf.c
deleted file mode 100644
index 0fa1842..0000000
--- a/libraries/evas/src/modules/engines/buffer/evas_outbuf.c
+++ /dev/null
@@ -1,357 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4void
5evas_buffer_outbuf_buf_init(void)
6{
7}
8
9void
10evas_buffer_outbuf_buf_free(Outbuf *buf)
11{
12 if (buf->priv.back_buf)
13 {
14 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
15 }
16 free(buf);
17}
18
19Outbuf *
20evas_buffer_outbuf_buf_setup_fb(int w, int h, Outbuf_Depth depth, void *dest, int dest_row_bytes, int use_color_key, DATA32 color_key, int alpha_level,
21 void * (*new_update_region) (int x, int y, int w, int h, int *row_bytes),
22 void (*free_update_region) (int x, int y, int w, int h, void *data),
23 void * (*switch_buffer) (void *data, void *dest_buffer),
24 void *switch_data
25 )
26{
27 Outbuf *buf;
28
29 buf = calloc(1, sizeof(Outbuf));
30 if (!buf) return NULL;
31
32 buf->w = w;
33 buf->h = h;
34 buf->depth = depth;
35
36 buf->dest = dest;
37 buf->dest_row_bytes = dest_row_bytes;
38
39 buf->alpha_level = alpha_level;
40 buf->color_key = color_key;
41 buf->use_color_key = use_color_key;
42 buf->first_frame = 1;
43
44 buf->func.new_update_region = new_update_region;
45 buf->func.free_update_region = free_update_region;
46 buf->func.switch_buffer = switch_buffer;
47 buf->switch_data = switch_data;
48
49 if ((buf->depth == OUTBUF_DEPTH_ARGB_32BPP_8888_8888) &&
50 (buf->dest) && (buf->dest_row_bytes == (buf->w * sizeof(DATA32))))
51 {
52 memset(buf->dest, 0, h * buf->dest_row_bytes);
53 buf->priv.back_buf = (RGBA_Image *) evas_cache_image_data(evas_common_image_cache_get(),
54 w, h,
55 buf->dest,
56 1, EVAS_COLORSPACE_ARGB8888);
57 }
58 else if ((buf->depth == OUTBUF_DEPTH_RGB_32BPP_888_8888) &&
59 (buf->dest) && (buf->dest_row_bytes == (buf->w * sizeof(DATA32))))
60 {
61 buf->priv.back_buf = (RGBA_Image *) evas_cache_image_data(evas_common_image_cache_get(),
62 w, h,
63 buf->dest,
64 0, EVAS_COLORSPACE_ARGB8888);
65 }
66
67 return buf;
68}
69
70RGBA_Image *
71evas_buffer_outbuf_buf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
72{
73 RGBA_Image *im;
74
75 if (buf->priv.back_buf)
76 {
77 *cx = x; *cy = y; *cw = w; *ch = h;
78 return buf->priv.back_buf;
79 }
80 else
81 {
82 *cx = 0; *cy = 0; *cw = w; *ch = h;
83 im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
84 if (im)
85 {
86 if (((buf->depth == OUTBUF_DEPTH_ARGB_32BPP_8888_8888)) ||
87 ((buf->depth == OUTBUF_DEPTH_BGRA_32BPP_8888_8888)))
88 {
89 im->cache_entry.flags.alpha = 1;
90 im = (RGBA_Image *) evas_cache_image_size_set(&im->cache_entry, w, h);
91 }
92 }
93 }
94 return im;
95}
96
97void
98evas_buffer_outbuf_buf_free_region_for_update(Outbuf *buf, RGBA_Image *update)
99{
100 if (update != buf->priv.back_buf) evas_cache_image_drop(&update->cache_entry);
101}
102
103void
104evas_buffer_outbuf_buf_switch_buffer(Outbuf *buf)
105{
106 if (buf->func.switch_buffer)
107 {
108 buf->dest = buf->func.switch_buffer(buf->switch_data, buf->dest);
109 if (buf->priv.back_buf)
110 {
111 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
112 buf->priv.back_buf = (RGBA_Image *) evas_cache_image_data(evas_common_image_cache_get(),
113 buf->w, buf->h,
114 buf->dest,
115 buf->depth == OUTBUF_DEPTH_ARGB_32BPP_8888_8888 ? 1 : 0,
116 EVAS_COLORSPACE_ARGB8888);
117 }
118 }
119}
120
121void
122evas_buffer_outbuf_buf_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h)
123{
124 /* copy update image to out buf & convert */
125 switch (buf->depth)
126 {
127 case OUTBUF_DEPTH_RGB_24BPP_888_888:
128 /* copy & pack into 24bpp - if colorkey is enabled... etc. */
129 {
130 DATA8 thresh;
131 int xx, yy;
132 int row_bytes;
133 DATA8 *dest;
134 DATA32 colorkey;
135 DATA32 *src;
136 DATA8 *dst;
137
138 colorkey = buf->color_key;
139 thresh = buf->alpha_level;
140 row_bytes = buf->dest_row_bytes;
141 dest = (DATA8 *)(buf->dest) + (y * row_bytes) + (x * 3);
142 if (buf->func.new_update_region)
143 {
144 dest = buf->func.new_update_region(x, y, w, h, &row_bytes);
145 }
146 if (!dest) break;
147 if (buf->use_color_key)
148 {
149 for (yy = 0; yy < h; yy++)
150 {
151 dst = dest + (yy * row_bytes);
152 src = update->image.data + (yy * update->cache_entry.w);
153 for (xx = 0; xx < w; xx++)
154 {
155 if (A_VAL(src) > thresh)
156 {
157 *dst++ = R_VAL(src);
158 *dst++ = G_VAL(src);
159 *dst++ = B_VAL(src);
160 }
161 else
162 {
163 *dst++ = R_VAL(&colorkey);
164 *dst++ = G_VAL(&colorkey);
165 *dst++ = B_VAL(&colorkey);
166 }
167 src++;
168 }
169 }
170 }
171 else
172 {
173 for (yy = 0; yy < h; yy++)
174 {
175 dst = dest + (yy * row_bytes);
176 src = update->image.data + (yy * update->cache_entry.w);
177 for (xx = 0; xx < w; xx++)
178 {
179 *dst++ = R_VAL(src);
180 *dst++ = G_VAL(src);
181 *dst++ = B_VAL(src);
182 src++;
183 }
184 }
185 }
186 if (buf->func.free_update_region)
187 {
188 buf->func.free_update_region(x, y, w, h, dest);
189 }
190 }
191 break;
192 case OUTBUF_DEPTH_BGR_24BPP_888_888:
193 /* copy & pack into 24bpp - if colorkey is enabled... etc. */
194 {
195 DATA8 thresh;
196 int xx, yy;
197 int row_bytes;
198 DATA8 *dest;
199 DATA32 colorkey;
200 DATA32 *src;
201 DATA8 *dst;
202
203 colorkey = buf->color_key;
204 thresh = buf->alpha_level;
205 row_bytes = buf->dest_row_bytes;
206 dest = (DATA8 *)(buf->dest) + (y * row_bytes) + (x * 3);
207 if (buf->func.new_update_region)
208 {
209 dest = buf->func.new_update_region(x, y, w, h, &row_bytes);
210 }
211 if (!dest) break;
212 if (buf->use_color_key)
213 {
214 for (yy = 0; yy < h; yy++)
215 {
216 dst = dest + (yy * row_bytes);
217 src = update->image.data + (yy * update->cache_entry.w);
218 for (xx = 0; xx < w; xx++)
219 {
220 if (A_VAL(src) > thresh)
221 {
222 *dst++ = B_VAL(src);
223 *dst++ = G_VAL(src);
224 *dst++ = R_VAL(src);
225 }
226 else
227 {
228 *dst++ = B_VAL(&colorkey);
229 *dst++ = G_VAL(&colorkey);
230 *dst++ = R_VAL(&colorkey);
231 }
232 src++;
233 }
234 }
235 }
236 else
237 {
238 for (yy = 0; yy < h; yy++)
239 {
240 dst = dest + (yy * row_bytes);
241 src = update->image.data + (yy * update->cache_entry.w);
242 for (xx = 0; xx < w; xx++)
243 {
244 *dst++ = B_VAL(src);
245 *dst++ = G_VAL(src);
246 *dst++ = R_VAL(src);
247 src++;
248 }
249 }
250 }
251 if (buf->func.free_update_region)
252 {
253 buf->func.free_update_region(x, y, w, h, dest);
254 }
255 }
256 break;
257 case OUTBUF_DEPTH_RGB_32BPP_888_8888:
258 case OUTBUF_DEPTH_ARGB_32BPP_8888_8888:
259 {
260 DATA32 *dest, *src, *dst;
261 int yy, row_bytes;
262
263 row_bytes = buf->dest_row_bytes;
264 dest = (DATA32 *)((DATA8 *)(buf->dest) + (y * row_bytes) + (x * 4));
265 if (buf->func.new_update_region)
266 {
267 dest = buf->func.new_update_region(x, y, w, h, &row_bytes);
268 }
269 /* no need src == dest */
270 if (!buf->priv.back_buf)
271 {
272 Gfx_Func_Copy func;
273
274 func = evas_common_draw_func_copy_get(w, 0);
275 if (func)
276 {
277 for (yy = 0; yy < h; yy++)
278 {
279 src = update->image.data + (yy * update->cache_entry.w);
280 dst = (DATA32 *)((DATA8 *)(buf->dest) + ((y + yy) * row_bytes));
281 func(src, dst, w);
282 }
283
284 }
285 }
286 if (buf->func.free_update_region)
287 {
288 buf->func.free_update_region(x, y, w, h, dest);
289 }
290 }
291 break;
292 case OUTBUF_DEPTH_BGR_32BPP_888_8888:
293 {
294 DATA32 *src, *dst;
295 DATA8 *dest;
296 int xx, yy, row_bytes;
297
298 row_bytes = buf->dest_row_bytes;
299 dest = (DATA8 *)(buf->dest) + (y * row_bytes) + (x * 4);
300 if (buf->func.new_update_region)
301 {
302 dest = buf->func.new_update_region(x, y, w, h, &row_bytes);
303 }
304 for (yy = 0; yy < h; yy++)
305 {
306 dst = (DATA32 *)(dest + (yy * row_bytes));
307 src = update->image.data + (yy * update->cache_entry.w);
308 for (xx = 0; xx < w; xx++)
309 {
310 A_VAL(dst) = B_VAL(src);
311 R_VAL(dst) = G_VAL(src);
312 G_VAL(dst) = R_VAL(src);
313 dst++;
314 src++;
315 }
316 }
317 if (buf->func.free_update_region)
318 {
319 buf->func.free_update_region(x, y, w, h, dest);
320 }
321 }
322 break;
323 case OUTBUF_DEPTH_BGRA_32BPP_8888_8888:
324 {
325 DATA32 *src, *dst;
326 DATA8 *dest;
327 int xx, yy, row_bytes;
328
329 row_bytes = buf->dest_row_bytes;
330 dest = (DATA8 *)(buf->dest) + (y * row_bytes) + (x * 4);
331 if (buf->func.new_update_region)
332 {
333 dest = buf->func.new_update_region(x, y, w, h, &row_bytes);
334 }
335 for (yy = 0; yy < h; yy++)
336 {
337 dst = (DATA32 *)(dest + (yy * row_bytes));
338 src = update->image.data + (yy * update->cache_entry.w);
339 for (xx = 0; xx < w; xx++)
340 {
341 A_VAL(dst) = B_VAL(src);
342 R_VAL(dst) = G_VAL(src);
343 G_VAL(dst) = R_VAL(src);
344 dst++;
345 src++;
346 }
347 }
348 if (buf->func.free_update_region)
349 {
350 buf->func.free_update_region(x, y, w, h, dest);
351 }
352 }
353 break;
354 default:
355 break;
356 }
357}
diff --git a/libraries/evas/src/modules/engines/direct3d/Evas_Engine_Direct3D.h b/libraries/evas/src/modules/engines/direct3d/Evas_Engine_Direct3D.h
deleted file mode 100644
index f9b7a9c..0000000
--- a/libraries/evas/src/modules/engines/direct3d/Evas_Engine_Direct3D.h
+++ /dev/null
@@ -1,36 +0,0 @@
1#ifndef __EVAS_ENGINE_DIRECT3D_H__
2#define __EVAS_ENGINE_DIRECT3D_H__
3
4
5#define WIN32_LEAN_AND_MEAN
6#include <windows.h>
7#undef WIN32_LEAN_AND_MEAN
8
9typedef struct _Evas_Engine_Info_Direct3D Evas_Engine_Info_Direct3D;
10
11struct _Evas_Engine_Info_Direct3D
12{
13 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
14 /* at you and make nasty noises */
15 Evas_Engine_Info magic;
16
17 struct {
18 HWND window;
19 int rotation;
20 int depth;
21 int fullscreen : 1;
22 int layered : 1;
23 } info;
24
25 struct {
26 unsigned short width;
27 unsigned short height;
28 unsigned char *mask;
29 } *shape;
30
31 /* non-blocking or blocking mode */
32 Evas_Engine_Render_Mode render_mode;
33};
34
35
36#endif /* __EVAS_ENGINE_DIRECT3D_H__ */
diff --git a/libraries/evas/src/modules/engines/direct3d/Makefile.am b/libraries/evas/src/modules/engines/direct3d/Makefile.am
deleted file mode 100644
index cdbfd52..0000000
--- a/libraries/evas/src/modules/engines/direct3d/Makefile.am
+++ /dev/null
@@ -1,71 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@EINA_CFLAGS@ \
10@FREETYPE_CFLAGS@ \
11@PIXMAN_CFLAGS@ \
12@evas_engine_direct3d_cflags@
13
14if BUILD_ENGINE_DIRECT3D
15
16DIRECT3D_SOURCES = \
17evas_engine.c \
18evas_direct3d_context.cpp \
19evas_direct3d_device.cpp \
20evas_direct3d_image_cache.cpp \
21evas_direct3d_main.cpp \
22evas_direct3d_object.cpp \
23evas_direct3d_object_font.cpp \
24evas_direct3d_object_image.cpp \
25evas_direct3d_object_line.cpp \
26evas_direct3d_object_rect.cpp \
27evas_direct3d_scene.cpp \
28evas_direct3d_shader_pack.cpp \
29evas_direct3d_vertex_buffer_cache.cpp
30
31DIRECT3D_LIBADD = @evas_engine_direct3d_libs@
32
33
34includes_HEADERS = Evas_Engine_Direct3D.h
35includesdir = $(includedir)/evas-@VMAJ@
36
37if !EVAS_STATIC_BUILD_DIRECT3D
38
39pkgdir = $(libdir)/evas/modules/engines/direct3d/$(MODULE_ARCH)
40pkg_LTLIBRARIES = module.la
41module_la_SOURCES = $(DIRECT3D_SOURCES)
42module_la_CXXFLAGS = -fno-exceptions
43module_la_LIBADD = $(top_builddir)/src/lib/libevas.la $(DIRECT3D_LIBADD) @EINA_LIBS@
44module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
45module_la_LIBTOOLFLAGS = --tag=disable-static
46
47else
48
49noinst_LTLIBRARIES = libevas_engine_direct3d.la
50
51libevas_engine_direct3d_la_SOURCES = $(DIRECT3D_SOURCES)
52libevas_engine_direct3d_la_LIBADD = $(DIRECT3D_LIBADD)
53
54endif
55endif
56
57EXTRA_DIST = \
58array.h \
59evas_direct3d_context.h \
60evas_direct3d_device.h \
61evas_direct3d_image_cache.h \
62evas_direct3d_object.h \
63evas_direct3d_object_font.h \
64evas_direct3d_object_image.h \
65evas_direct3d_object_line.h \
66evas_direct3d_object_rect.h \
67evas_direct3d_scene.h \
68evas_direct3d_shader_pack.h \
69evas_direct3d_vertex_buffer_cache.h \
70evas_engine.h \
71ref.h
diff --git a/libraries/evas/src/modules/engines/direct3d/Makefile.in b/libraries/evas/src/modules/engines/direct3d/Makefile.in
deleted file mode 100644
index fe979a8..0000000
--- a/libraries/evas/src/modules/engines/direct3d/Makefile.in
+++ /dev/null
@@ -1,1025 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/direct3d
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_TRUE@libevas_engine_direct3d_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_direct3d_la_SOURCES_DIST = evas_engine.c \
87 evas_direct3d_context.cpp evas_direct3d_device.cpp \
88 evas_direct3d_image_cache.cpp evas_direct3d_main.cpp \
89 evas_direct3d_object.cpp evas_direct3d_object_font.cpp \
90 evas_direct3d_object_image.cpp evas_direct3d_object_line.cpp \
91 evas_direct3d_object_rect.cpp evas_direct3d_scene.cpp \
92 evas_direct3d_shader_pack.cpp \
93 evas_direct3d_vertex_buffer_cache.cpp
94@BUILD_ENGINE_DIRECT3D_TRUE@am__objects_1 = evas_engine.lo \
95@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_context.lo \
96@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_device.lo \
97@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_image_cache.lo \
98@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_main.lo \
99@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_object.lo \
100@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_object_font.lo \
101@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_object_image.lo \
102@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_object_line.lo \
103@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_object_rect.lo \
104@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_scene.lo \
105@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_shader_pack.lo \
106@BUILD_ENGINE_DIRECT3D_TRUE@ evas_direct3d_vertex_buffer_cache.lo
107@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_TRUE@am_libevas_engine_direct3d_la_OBJECTS = $(am__objects_1)
108libevas_engine_direct3d_la_OBJECTS = \
109 $(am_libevas_engine_direct3d_la_OBJECTS)
110AM_V_lt = $(am__v_lt_$(V))
111am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
112am__v_lt_0 = --silent
113@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_TRUE@am_libevas_engine_direct3d_la_rpath =
114@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la \
115@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@ $(am__DEPENDENCIES_1)
116am__module_la_SOURCES_DIST = evas_engine.c evas_direct3d_context.cpp \
117 evas_direct3d_device.cpp evas_direct3d_image_cache.cpp \
118 evas_direct3d_main.cpp evas_direct3d_object.cpp \
119 evas_direct3d_object_font.cpp evas_direct3d_object_image.cpp \
120 evas_direct3d_object_line.cpp evas_direct3d_object_rect.cpp \
121 evas_direct3d_scene.cpp evas_direct3d_shader_pack.cpp \
122 evas_direct3d_vertex_buffer_cache.cpp
123@BUILD_ENGINE_DIRECT3D_TRUE@am__objects_2 = module_la-evas_engine.lo \
124@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_context.lo \
125@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_device.lo \
126@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_image_cache.lo \
127@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_main.lo \
128@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_object.lo \
129@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_object_font.lo \
130@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_object_image.lo \
131@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_object_line.lo \
132@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_object_rect.lo \
133@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_scene.lo \
134@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_shader_pack.lo \
135@BUILD_ENGINE_DIRECT3D_TRUE@ module_la-evas_direct3d_vertex_buffer_cache.lo
136@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@am_module_la_OBJECTS = $(am__objects_2)
137module_la_OBJECTS = $(am_module_la_OBJECTS)
138module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
139 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
140 $(module_la_CXXFLAGS) $(CXXFLAGS) $(module_la_LDFLAGS) \
141 $(LDFLAGS) -o $@
142@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@am_module_la_rpath = -rpath \
143@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@ $(pkgdir)
144DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
145depcomp = $(SHELL) $(top_srcdir)/depcomp
146am__depfiles_maybe = depfiles
147am__mv = mv -f
148COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
149 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
150LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
151 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
152 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
153 $(AM_CFLAGS) $(CFLAGS)
154AM_V_CC = $(am__v_CC_$(V))
155am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
156am__v_CC_0 = @echo " CC " $@;
157AM_V_at = $(am__v_at_$(V))
158am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
159am__v_at_0 = @
160CCLD = $(CC)
161LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
162 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
163 $(AM_LDFLAGS) $(LDFLAGS) -o $@
164AM_V_CCLD = $(am__v_CCLD_$(V))
165am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
166am__v_CCLD_0 = @echo " CCLD " $@;
167CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
168 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
169LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
170 $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
171 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
172 $(AM_CXXFLAGS) $(CXXFLAGS)
173AM_V_CXX = $(am__v_CXX_$(V))
174am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
175am__v_CXX_0 = @echo " CXX " $@;
176CXXLD = $(CXX)
177CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
178 $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
179 $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
180AM_V_CXXLD = $(am__v_CXXLD_$(V))
181am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
182am__v_CXXLD_0 = @echo " CXXLD " $@;
183AM_V_GEN = $(am__v_GEN_$(V))
184am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
185am__v_GEN_0 = @echo " GEN " $@;
186SOURCES = $(libevas_engine_direct3d_la_SOURCES) $(module_la_SOURCES)
187DIST_SOURCES = $(am__libevas_engine_direct3d_la_SOURCES_DIST) \
188 $(am__module_la_SOURCES_DIST)
189am__includes_HEADERS_DIST = Evas_Engine_Direct3D.h
190HEADERS = $(includes_HEADERS)
191ETAGS = etags
192CTAGS = ctags
193DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
194ACLOCAL = @ACLOCAL@
195ALLOCA = @ALLOCA@
196AMTAR = @AMTAR@
197AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
198AR = @AR@
199AS = @AS@
200AUTOCONF = @AUTOCONF@
201AUTOHEADER = @AUTOHEADER@
202AUTOMAKE = @AUTOMAKE@
203AWK = @AWK@
204CC = @CC@
205CCDEPMODE = @CCDEPMODE@
206CFLAGS = @CFLAGS@
207CHECK_CFLAGS = @CHECK_CFLAGS@
208CHECK_LIBS = @CHECK_LIBS@
209CPP = @CPP@
210CPPFLAGS = @CPPFLAGS@
211CXX = @CXX@
212CXXCPP = @CXXCPP@
213CXXDEPMODE = @CXXDEPMODE@
214CXXFLAGS = @CXXFLAGS@
215CYGPATH_W = @CYGPATH_W@
216DEFS = @DEFS@
217DEPDIR = @DEPDIR@
218DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
219DIRECTFB_LIBS = @DIRECTFB_LIBS@
220DLLTOOL = @DLLTOOL@
221DSYMUTIL = @DSYMUTIL@
222DUMPBIN = @DUMPBIN@
223ECHO_C = @ECHO_C@
224ECHO_N = @ECHO_N@
225ECHO_T = @ECHO_T@
226ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
227ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
228EDB_CFLAGS = @EDB_CFLAGS@
229EDB_LIBS = @EDB_LIBS@
230EDJE_CFLAGS = @EDJE_CFLAGS@
231EDJE_LIBS = @EDJE_LIBS@
232EET_CFLAGS = @EET_CFLAGS@
233EET_LIBS = @EET_LIBS@
234EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
235EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
236EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
237EGREP = @EGREP@
238EINA_CFLAGS = @EINA_CFLAGS@
239EINA_LIBS = @EINA_LIBS@
240EVAS_CFLAGS = @EVAS_CFLAGS@
241EVAS_LIBS = @EVAS_LIBS@
242EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
243EVIL_CFLAGS = @EVIL_CFLAGS@
244EVIL_LIBS = @EVIL_LIBS@
245EXEEXT = @EXEEXT@
246EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
247EXOTIC_LIBS = @EXOTIC_LIBS@
248FGREP = @FGREP@
249FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
250FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
251FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
252FREETYPE_LIBS = @FREETYPE_LIBS@
253FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
254FRIBIDI_LIBS = @FRIBIDI_LIBS@
255GL_EET_CFLAGS = @GL_EET_CFLAGS@
256GL_EET_LIBS = @GL_EET_LIBS@
257GREP = @GREP@
258HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
259HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
260INSTALL = @INSTALL@
261INSTALL_DATA = @INSTALL_DATA@
262INSTALL_PROGRAM = @INSTALL_PROGRAM@
263INSTALL_SCRIPT = @INSTALL_SCRIPT@
264INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
265LD = @LD@
266LDFLAGS = @LDFLAGS@
267LIBOBJS = @LIBOBJS@
268LIBS = @LIBS@
269LIBTOOL = @LIBTOOL@
270LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
271LINEBREAK_LIBS = @LINEBREAK_LIBS@
272LIPO = @LIPO@
273LN_S = @LN_S@
274LTLIBOBJS = @LTLIBOBJS@
275MAKEINFO = @MAKEINFO@
276MKDIR_P = @MKDIR_P@
277MODULE_ARCH = @MODULE_ARCH@
278NM = @NM@
279NMEDIT = @NMEDIT@
280OBJC = @OBJC@
281OBJCDEPMODE = @OBJCDEPMODE@
282OBJCFLAGS = @OBJCFLAGS@
283OBJDUMP = @OBJDUMP@
284OBJEXT = @OBJEXT@
285OTOOL = @OTOOL@
286OTOOL64 = @OTOOL64@
287PACKAGE = @PACKAGE@
288PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
289PACKAGE_NAME = @PACKAGE_NAME@
290PACKAGE_STRING = @PACKAGE_STRING@
291PACKAGE_TARNAME = @PACKAGE_TARNAME@
292PACKAGE_URL = @PACKAGE_URL@
293PACKAGE_VERSION = @PACKAGE_VERSION@
294PATH_SEPARATOR = @PATH_SEPARATOR@
295PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
296PIXMAN_LIBS = @PIXMAN_LIBS@
297PKG_CONFIG = @PKG_CONFIG@
298PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
299PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
300PNG_CFLAGS = @PNG_CFLAGS@
301PNG_LIBS = @PNG_LIBS@
302RANLIB = @RANLIB@
303SDL_CFLAGS = @SDL_CFLAGS@
304SDL_LIBS = @SDL_LIBS@
305SED = @SED@
306SET_MAKE = @SET_MAKE@
307SHELL = @SHELL@
308SHM_OPEN_LINK = @SHM_OPEN_LINK@
309STRIP = @STRIP@
310SVG_CFLAGS = @SVG_CFLAGS@
311SVG_LIBS = @SVG_LIBS@
312VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
313VALGRIND_LIBS = @VALGRIND_LIBS@
314VERSION = @VERSION@
315VMAJ = @VMAJ@
316WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
317WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
318XCB_CFLAGS = @XCB_CFLAGS@
319XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
320XCB_GL_LIBS = @XCB_GL_LIBS@
321XCB_LIBS = @XCB_LIBS@
322XEXT_CFLAGS = @XEXT_CFLAGS@
323XEXT_LIBS = @XEXT_LIBS@
324XMKMF = @XMKMF@
325X_CFLAGS = @X_CFLAGS@
326X_EXTRA_LIBS = @X_EXTRA_LIBS@
327X_LIBS = @X_LIBS@
328X_PRE_LIBS = @X_PRE_LIBS@
329abs_builddir = @abs_builddir@
330abs_srcdir = @abs_srcdir@
331abs_top_builddir = @abs_top_builddir@
332abs_top_srcdir = @abs_top_srcdir@
333ac_ct_CC = @ac_ct_CC@
334ac_ct_CXX = @ac_ct_CXX@
335ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
336ac_ct_OBJC = @ac_ct_OBJC@
337altivec_cflags = @altivec_cflags@
338am__include = @am__include@
339am__leading_dot = @am__leading_dot@
340am__quote = @am__quote@
341am__tar = @am__tar@
342am__untar = @am__untar@
343bindir = @bindir@
344build = @build@
345build_alias = @build_alias@
346build_cpu = @build_cpu@
347build_os = @build_os@
348build_vendor = @build_vendor@
349builddir = @builddir@
350datadir = @datadir@
351datarootdir = @datarootdir@
352dlopen_libs = @dlopen_libs@
353docdir = @docdir@
354dvidir = @dvidir@
355edje_cc = @edje_cc@
356efl_doxygen = @efl_doxygen@
357efl_have_doxygen = @efl_have_doxygen@
358evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
359evas_engine_buffer_libs = @evas_engine_buffer_libs@
360evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
361evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
362evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
363evas_engine_directfb_libs = @evas_engine_directfb_libs@
364evas_engine_fb_cflags = @evas_engine_fb_cflags@
365evas_engine_fb_libs = @evas_engine_fb_libs@
366evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
367evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
368evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
369evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
370evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
371evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
372evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
373evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
374evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
375evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
376evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
377evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
378evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
379evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
380evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
381evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
382evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
383evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
384evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
385evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
386evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
387evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
388evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
389evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
390evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
391evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
392evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
393evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
394evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
395evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
396evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
397evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
398evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
399evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
400evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
401evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
402evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
403evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
404evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
405evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
406evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
407evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
408evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
409evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
410evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
411evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
412evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
413evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
414evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
415evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
416evas_image_loader_png_libs = @evas_image_loader_png_libs@
417evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
418evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
419evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
420evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
421evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
422evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
423evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
424evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
425evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
426evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
427evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
428evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
429exec_prefix = @exec_prefix@
430have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
431have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
432have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
433have_evas_engine_software_x11 = @have_evas_engine_software_x11@
434have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
435have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
436have_lcov = @have_lcov@
437host = @host@
438host_alias = @host_alias@
439host_cpu = @host_cpu@
440host_os = @host_os@
441host_vendor = @host_vendor@
442htmldir = @htmldir@
443includedir = @includedir@
444infodir = @infodir@
445install_sh = @install_sh@
446libdir = @libdir@
447libexecdir = @libexecdir@
448localedir = @localedir@
449localstatedir = @localstatedir@
450lt_ECHO = @lt_ECHO@
451lt_enable_auto_import = @lt_enable_auto_import@
452mandir = @mandir@
453mkdir_p = @mkdir_p@
454oldincludedir = @oldincludedir@
455pdfdir = @pdfdir@
456pkgconfig_requires_private = @pkgconfig_requires_private@
457prefix = @prefix@
458program_transform_name = @program_transform_name@
459psdir = @psdir@
460pthread_cflags = @pthread_cflags@
461pthread_libs = @pthread_libs@
462release_info = @release_info@
463requirement_evas = @requirement_evas@
464sbindir = @sbindir@
465sharedstatedir = @sharedstatedir@
466srcdir = @srcdir@
467sysconfdir = @sysconfdir@
468target_alias = @target_alias@
469top_build_prefix = @top_build_prefix@
470top_builddir = @top_builddir@
471top_srcdir = @top_srcdir@
472version_info = @version_info@
473MAINTAINERCLEANFILES = Makefile.in
474AM_CPPFLAGS = \
475-I. \
476-I$(top_srcdir)/src/lib \
477-I$(top_srcdir)/src/lib/include \
478-I$(top_srcdir)/src/modules/engines \
479@EINA_CFLAGS@ \
480@FREETYPE_CFLAGS@ \
481@PIXMAN_CFLAGS@ \
482@evas_engine_direct3d_cflags@
483
484@BUILD_ENGINE_DIRECT3D_TRUE@DIRECT3D_SOURCES = \
485@BUILD_ENGINE_DIRECT3D_TRUE@evas_engine.c \
486@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_context.cpp \
487@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_device.cpp \
488@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_image_cache.cpp \
489@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_main.cpp \
490@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_object.cpp \
491@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_object_font.cpp \
492@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_object_image.cpp \
493@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_object_line.cpp \
494@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_object_rect.cpp \
495@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_scene.cpp \
496@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_shader_pack.cpp \
497@BUILD_ENGINE_DIRECT3D_TRUE@evas_direct3d_vertex_buffer_cache.cpp
498
499@BUILD_ENGINE_DIRECT3D_TRUE@DIRECT3D_LIBADD = @evas_engine_direct3d_libs@
500@BUILD_ENGINE_DIRECT3D_TRUE@includes_HEADERS = Evas_Engine_Direct3D.h
501@BUILD_ENGINE_DIRECT3D_TRUE@includesdir = $(includedir)/evas-@VMAJ@
502@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@pkgdir = $(libdir)/evas/modules/engines/direct3d/$(MODULE_ARCH)
503@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@pkg_LTLIBRARIES = module.la
504@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@module_la_SOURCES = $(DIRECT3D_SOURCES)
505@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@module_la_CXXFLAGS = -fno-exceptions
506@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@module_la_LIBADD = $(top_builddir)/src/lib/libevas.la $(DIRECT3D_LIBADD) @EINA_LIBS@
507@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
508@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
509@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_TRUE@noinst_LTLIBRARIES = libevas_engine_direct3d.la
510@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_TRUE@libevas_engine_direct3d_la_SOURCES = $(DIRECT3D_SOURCES)
511@BUILD_ENGINE_DIRECT3D_TRUE@@EVAS_STATIC_BUILD_DIRECT3D_TRUE@libevas_engine_direct3d_la_LIBADD = $(DIRECT3D_LIBADD)
512EXTRA_DIST = \
513array.h \
514evas_direct3d_context.h \
515evas_direct3d_device.h \
516evas_direct3d_image_cache.h \
517evas_direct3d_object.h \
518evas_direct3d_object_font.h \
519evas_direct3d_object_image.h \
520evas_direct3d_object_line.h \
521evas_direct3d_object_rect.h \
522evas_direct3d_scene.h \
523evas_direct3d_shader_pack.h \
524evas_direct3d_vertex_buffer_cache.h \
525evas_engine.h \
526ref.h
527
528all: all-am
529
530.SUFFIXES:
531.SUFFIXES: .c .cpp .lo .o .obj
532$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
533 @for dep in $?; do \
534 case '$(am__configure_deps)' in \
535 *$$dep*) \
536 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
537 && { if test -f $@; then exit 0; else break; fi; }; \
538 exit 1;; \
539 esac; \
540 done; \
541 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/direct3d/Makefile'; \
542 $(am__cd) $(top_srcdir) && \
543 $(AUTOMAKE) --gnu src/modules/engines/direct3d/Makefile
544.PRECIOUS: Makefile
545Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
546 @case '$?' in \
547 *config.status*) \
548 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
549 *) \
550 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
551 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
552 esac;
553
554$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
555 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
556
557$(top_srcdir)/configure: $(am__configure_deps)
558 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
559$(ACLOCAL_M4): $(am__aclocal_m4_deps)
560 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
561$(am__aclocal_m4_deps):
562
563clean-noinstLTLIBRARIES:
564 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
565 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
566 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
567 test "$$dir" != "$$p" || dir=.; \
568 echo "rm -f \"$${dir}/so_locations\""; \
569 rm -f "$${dir}/so_locations"; \
570 done
571install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
572 @$(NORMAL_INSTALL)
573 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
574 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
575 list2=; for p in $$list; do \
576 if test -f $$p; then \
577 list2="$$list2 $$p"; \
578 else :; fi; \
579 done; \
580 test -z "$$list2" || { \
581 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
582 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
583 }
584
585uninstall-pkgLTLIBRARIES:
586 @$(NORMAL_UNINSTALL)
587 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
588 for p in $$list; do \
589 $(am__strip_dir) \
590 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
591 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
592 done
593
594clean-pkgLTLIBRARIES:
595 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
596 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
597 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
598 test "$$dir" != "$$p" || dir=.; \
599 echo "rm -f \"$${dir}/so_locations\""; \
600 rm -f "$${dir}/so_locations"; \
601 done
602libevas_engine_direct3d.la: $(libevas_engine_direct3d_la_OBJECTS) $(libevas_engine_direct3d_la_DEPENDENCIES)
603 $(AM_V_CXXLD)$(CXXLINK) $(am_libevas_engine_direct3d_la_rpath) $(libevas_engine_direct3d_la_OBJECTS) $(libevas_engine_direct3d_la_LIBADD) $(LIBS)
604module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
605 $(AM_V_CXXLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
606
607mostlyclean-compile:
608 -rm -f *.$(OBJEXT)
609
610distclean-compile:
611 -rm -f *.tab.c
612
613@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_context.Plo@am__quote@
614@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_device.Plo@am__quote@
615@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_image_cache.Plo@am__quote@
616@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_main.Plo@am__quote@
617@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_object.Plo@am__quote@
618@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_object_font.Plo@am__quote@
619@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_object_image.Plo@am__quote@
620@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_object_line.Plo@am__quote@
621@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_object_rect.Plo@am__quote@
622@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_scene.Plo@am__quote@
623@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_shader_pack.Plo@am__quote@
624@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_direct3d_vertex_buffer_cache.Plo@am__quote@
625@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
626@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_context.Plo@am__quote@
627@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_device.Plo@am__quote@
628@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_image_cache.Plo@am__quote@
629@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_main.Plo@am__quote@
630@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_object.Plo@am__quote@
631@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_object_font.Plo@am__quote@
632@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_object_image.Plo@am__quote@
633@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_object_line.Plo@am__quote@
634@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_object_rect.Plo@am__quote@
635@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_scene.Plo@am__quote@
636@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_shader_pack.Plo@am__quote@
637@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_direct3d_vertex_buffer_cache.Plo@am__quote@
638@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
639
640.c.o:
641@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
642@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
643@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
644@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
645@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
646@am__fastdepCC_FALSE@ $(COMPILE) -c $<
647
648.c.obj:
649@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
650@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
651@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
652@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
653@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
654@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
655
656.c.lo:
657@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
658@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
659@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
660@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
661@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
662@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
663
664module_la-evas_engine.lo: evas_engine.c
665@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
666@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
667@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
668@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
669@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
670@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
671
672.cpp.o:
673@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
674@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
675@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
676@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
677@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
678@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
679
680.cpp.obj:
681@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
682@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
683@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
684@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
685@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
686@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
687
688.cpp.lo:
689@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
690@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
691@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
692@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
693@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
694@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
695
696module_la-evas_direct3d_context.lo: evas_direct3d_context.cpp
697@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_context.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_context.Tpo -c -o module_la-evas_direct3d_context.lo `test -f 'evas_direct3d_context.cpp' || echo '$(srcdir)/'`evas_direct3d_context.cpp
698@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_context.Tpo $(DEPDIR)/module_la-evas_direct3d_context.Plo
699@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
700@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_context.cpp' object='module_la-evas_direct3d_context.lo' libtool=yes @AMDEPBACKSLASH@
701@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
702@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_context.lo `test -f 'evas_direct3d_context.cpp' || echo '$(srcdir)/'`evas_direct3d_context.cpp
703
704module_la-evas_direct3d_device.lo: evas_direct3d_device.cpp
705@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_device.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_device.Tpo -c -o module_la-evas_direct3d_device.lo `test -f 'evas_direct3d_device.cpp' || echo '$(srcdir)/'`evas_direct3d_device.cpp
706@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_device.Tpo $(DEPDIR)/module_la-evas_direct3d_device.Plo
707@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
708@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_device.cpp' object='module_la-evas_direct3d_device.lo' libtool=yes @AMDEPBACKSLASH@
709@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
710@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_device.lo `test -f 'evas_direct3d_device.cpp' || echo '$(srcdir)/'`evas_direct3d_device.cpp
711
712module_la-evas_direct3d_image_cache.lo: evas_direct3d_image_cache.cpp
713@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_image_cache.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_image_cache.Tpo -c -o module_la-evas_direct3d_image_cache.lo `test -f 'evas_direct3d_image_cache.cpp' || echo '$(srcdir)/'`evas_direct3d_image_cache.cpp
714@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_image_cache.Tpo $(DEPDIR)/module_la-evas_direct3d_image_cache.Plo
715@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
716@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_image_cache.cpp' object='module_la-evas_direct3d_image_cache.lo' libtool=yes @AMDEPBACKSLASH@
717@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
718@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_image_cache.lo `test -f 'evas_direct3d_image_cache.cpp' || echo '$(srcdir)/'`evas_direct3d_image_cache.cpp
719
720module_la-evas_direct3d_main.lo: evas_direct3d_main.cpp
721@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_main.Tpo -c -o module_la-evas_direct3d_main.lo `test -f 'evas_direct3d_main.cpp' || echo '$(srcdir)/'`evas_direct3d_main.cpp
722@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_main.Tpo $(DEPDIR)/module_la-evas_direct3d_main.Plo
723@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
724@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_main.cpp' object='module_la-evas_direct3d_main.lo' libtool=yes @AMDEPBACKSLASH@
725@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
726@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_main.lo `test -f 'evas_direct3d_main.cpp' || echo '$(srcdir)/'`evas_direct3d_main.cpp
727
728module_la-evas_direct3d_object.lo: evas_direct3d_object.cpp
729@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_object.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_object.Tpo -c -o module_la-evas_direct3d_object.lo `test -f 'evas_direct3d_object.cpp' || echo '$(srcdir)/'`evas_direct3d_object.cpp
730@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_object.Tpo $(DEPDIR)/module_la-evas_direct3d_object.Plo
731@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
732@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_object.cpp' object='module_la-evas_direct3d_object.lo' libtool=yes @AMDEPBACKSLASH@
733@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
734@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_object.lo `test -f 'evas_direct3d_object.cpp' || echo '$(srcdir)/'`evas_direct3d_object.cpp
735
736module_la-evas_direct3d_object_font.lo: evas_direct3d_object_font.cpp
737@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_object_font.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_object_font.Tpo -c -o module_la-evas_direct3d_object_font.lo `test -f 'evas_direct3d_object_font.cpp' || echo '$(srcdir)/'`evas_direct3d_object_font.cpp
738@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_object_font.Tpo $(DEPDIR)/module_la-evas_direct3d_object_font.Plo
739@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
740@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_object_font.cpp' object='module_la-evas_direct3d_object_font.lo' libtool=yes @AMDEPBACKSLASH@
741@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
742@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_object_font.lo `test -f 'evas_direct3d_object_font.cpp' || echo '$(srcdir)/'`evas_direct3d_object_font.cpp
743
744module_la-evas_direct3d_object_image.lo: evas_direct3d_object_image.cpp
745@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_object_image.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_object_image.Tpo -c -o module_la-evas_direct3d_object_image.lo `test -f 'evas_direct3d_object_image.cpp' || echo '$(srcdir)/'`evas_direct3d_object_image.cpp
746@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_object_image.Tpo $(DEPDIR)/module_la-evas_direct3d_object_image.Plo
747@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
748@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_object_image.cpp' object='module_la-evas_direct3d_object_image.lo' libtool=yes @AMDEPBACKSLASH@
749@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
750@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_object_image.lo `test -f 'evas_direct3d_object_image.cpp' || echo '$(srcdir)/'`evas_direct3d_object_image.cpp
751
752module_la-evas_direct3d_object_line.lo: evas_direct3d_object_line.cpp
753@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_object_line.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_object_line.Tpo -c -o module_la-evas_direct3d_object_line.lo `test -f 'evas_direct3d_object_line.cpp' || echo '$(srcdir)/'`evas_direct3d_object_line.cpp
754@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_object_line.Tpo $(DEPDIR)/module_la-evas_direct3d_object_line.Plo
755@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
756@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_object_line.cpp' object='module_la-evas_direct3d_object_line.lo' libtool=yes @AMDEPBACKSLASH@
757@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
758@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_object_line.lo `test -f 'evas_direct3d_object_line.cpp' || echo '$(srcdir)/'`evas_direct3d_object_line.cpp
759
760module_la-evas_direct3d_object_rect.lo: evas_direct3d_object_rect.cpp
761@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_object_rect.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_object_rect.Tpo -c -o module_la-evas_direct3d_object_rect.lo `test -f 'evas_direct3d_object_rect.cpp' || echo '$(srcdir)/'`evas_direct3d_object_rect.cpp
762@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_object_rect.Tpo $(DEPDIR)/module_la-evas_direct3d_object_rect.Plo
763@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
764@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_object_rect.cpp' object='module_la-evas_direct3d_object_rect.lo' libtool=yes @AMDEPBACKSLASH@
765@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
766@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_object_rect.lo `test -f 'evas_direct3d_object_rect.cpp' || echo '$(srcdir)/'`evas_direct3d_object_rect.cpp
767
768module_la-evas_direct3d_scene.lo: evas_direct3d_scene.cpp
769@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_scene.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_scene.Tpo -c -o module_la-evas_direct3d_scene.lo `test -f 'evas_direct3d_scene.cpp' || echo '$(srcdir)/'`evas_direct3d_scene.cpp
770@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_scene.Tpo $(DEPDIR)/module_la-evas_direct3d_scene.Plo
771@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
772@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_scene.cpp' object='module_la-evas_direct3d_scene.lo' libtool=yes @AMDEPBACKSLASH@
773@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
774@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_scene.lo `test -f 'evas_direct3d_scene.cpp' || echo '$(srcdir)/'`evas_direct3d_scene.cpp
775
776module_la-evas_direct3d_shader_pack.lo: evas_direct3d_shader_pack.cpp
777@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_shader_pack.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_shader_pack.Tpo -c -o module_la-evas_direct3d_shader_pack.lo `test -f 'evas_direct3d_shader_pack.cpp' || echo '$(srcdir)/'`evas_direct3d_shader_pack.cpp
778@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_shader_pack.Tpo $(DEPDIR)/module_la-evas_direct3d_shader_pack.Plo
779@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
780@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_shader_pack.cpp' object='module_la-evas_direct3d_shader_pack.lo' libtool=yes @AMDEPBACKSLASH@
781@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
782@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_shader_pack.lo `test -f 'evas_direct3d_shader_pack.cpp' || echo '$(srcdir)/'`evas_direct3d_shader_pack.cpp
783
784module_la-evas_direct3d_vertex_buffer_cache.lo: evas_direct3d_vertex_buffer_cache.cpp
785@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_direct3d_vertex_buffer_cache.lo -MD -MP -MF $(DEPDIR)/module_la-evas_direct3d_vertex_buffer_cache.Tpo -c -o module_la-evas_direct3d_vertex_buffer_cache.lo `test -f 'evas_direct3d_vertex_buffer_cache.cpp' || echo '$(srcdir)/'`evas_direct3d_vertex_buffer_cache.cpp
786@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_direct3d_vertex_buffer_cache.Tpo $(DEPDIR)/module_la-evas_direct3d_vertex_buffer_cache.Plo
787@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
788@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_direct3d_vertex_buffer_cache.cpp' object='module_la-evas_direct3d_vertex_buffer_cache.lo' libtool=yes @AMDEPBACKSLASH@
789@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
790@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_direct3d_vertex_buffer_cache.lo `test -f 'evas_direct3d_vertex_buffer_cache.cpp' || echo '$(srcdir)/'`evas_direct3d_vertex_buffer_cache.cpp
791
792mostlyclean-libtool:
793 -rm -f *.lo
794
795clean-libtool:
796 -rm -rf .libs _libs
797install-includesHEADERS: $(includes_HEADERS)
798 @$(NORMAL_INSTALL)
799 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
800 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
801 for p in $$list; do \
802 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
803 echo "$$d$$p"; \
804 done | $(am__base_list) | \
805 while read files; do \
806 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
807 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
808 done
809
810uninstall-includesHEADERS:
811 @$(NORMAL_UNINSTALL)
812 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
813 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
814 test -n "$$files" || exit 0; \
815 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
816 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
817
818ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
819 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
820 unique=`for i in $$list; do \
821 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
822 done | \
823 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
824 END { if (nonempty) { for (i in files) print i; }; }'`; \
825 mkid -fID $$unique
826tags: TAGS
827
828TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
829 $(TAGS_FILES) $(LISP)
830 set x; \
831 here=`pwd`; \
832 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
833 unique=`for i in $$list; do \
834 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
835 done | \
836 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
837 END { if (nonempty) { for (i in files) print i; }; }'`; \
838 shift; \
839 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
840 test -n "$$unique" || unique=$$empty_fix; \
841 if test $$# -gt 0; then \
842 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
843 "$$@" $$unique; \
844 else \
845 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
846 $$unique; \
847 fi; \
848 fi
849ctags: CTAGS
850CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
851 $(TAGS_FILES) $(LISP)
852 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
853 unique=`for i in $$list; do \
854 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
855 done | \
856 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
857 END { if (nonempty) { for (i in files) print i; }; }'`; \
858 test -z "$(CTAGS_ARGS)$$unique" \
859 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
860 $$unique
861
862GTAGS:
863 here=`$(am__cd) $(top_builddir) && pwd` \
864 && $(am__cd) $(top_srcdir) \
865 && gtags -i $(GTAGS_ARGS) "$$here"
866
867distclean-tags:
868 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
869
870distdir: $(DISTFILES)
871 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
872 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
873 list='$(DISTFILES)'; \
874 dist_files=`for file in $$list; do echo $$file; done | \
875 sed -e "s|^$$srcdirstrip/||;t" \
876 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
877 case $$dist_files in \
878 */*) $(MKDIR_P) `echo "$$dist_files" | \
879 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
880 sort -u` ;; \
881 esac; \
882 for file in $$dist_files; do \
883 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
884 if test -d $$d/$$file; then \
885 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
886 if test -d "$(distdir)/$$file"; then \
887 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
888 fi; \
889 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
890 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
891 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
892 fi; \
893 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
894 else \
895 test -f "$(distdir)/$$file" \
896 || cp -p $$d/$$file "$(distdir)/$$file" \
897 || exit 1; \
898 fi; \
899 done
900check-am: all-am
901check: check-am
902all-am: Makefile $(LTLIBRARIES) $(HEADERS)
903installdirs:
904 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
905 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
906 done
907install: install-am
908install-exec: install-exec-am
909install-data: install-data-am
910uninstall: uninstall-am
911
912install-am: all-am
913 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
914
915installcheck: installcheck-am
916install-strip:
917 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
918 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
919 `test -z '$(STRIP)' || \
920 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
921mostlyclean-generic:
922
923clean-generic:
924
925distclean-generic:
926 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
927 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
928
929maintainer-clean-generic:
930 @echo "This command is intended for maintainers to use"
931 @echo "it deletes files that may require special tools to rebuild."
932 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
933clean: clean-am
934
935clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
936 clean-pkgLTLIBRARIES mostlyclean-am
937
938distclean: distclean-am
939 -rm -rf ./$(DEPDIR)
940 -rm -f Makefile
941distclean-am: clean-am distclean-compile distclean-generic \
942 distclean-tags
943
944dvi: dvi-am
945
946dvi-am:
947
948html: html-am
949
950html-am:
951
952info: info-am
953
954info-am:
955
956install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
957
958install-dvi: install-dvi-am
959
960install-dvi-am:
961
962install-exec-am:
963
964install-html: install-html-am
965
966install-html-am:
967
968install-info: install-info-am
969
970install-info-am:
971
972install-man:
973
974install-pdf: install-pdf-am
975
976install-pdf-am:
977
978install-ps: install-ps-am
979
980install-ps-am:
981
982installcheck-am:
983
984maintainer-clean: maintainer-clean-am
985 -rm -rf ./$(DEPDIR)
986 -rm -f Makefile
987maintainer-clean-am: distclean-am maintainer-clean-generic
988
989mostlyclean: mostlyclean-am
990
991mostlyclean-am: mostlyclean-compile mostlyclean-generic \
992 mostlyclean-libtool
993
994pdf: pdf-am
995
996pdf-am:
997
998ps: ps-am
999
1000ps-am:
1001
1002uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
1003
1004.MAKE: install-am install-strip
1005
1006.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
1007 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
1008 ctags distclean distclean-compile distclean-generic \
1009 distclean-libtool distclean-tags distdir dvi dvi-am html \
1010 html-am info info-am install install-am install-data \
1011 install-data-am install-dvi install-dvi-am install-exec \
1012 install-exec-am install-html install-html-am \
1013 install-includesHEADERS install-info install-info-am \
1014 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
1015 install-ps install-ps-am install-strip installcheck \
1016 installcheck-am installdirs maintainer-clean \
1017 maintainer-clean-generic mostlyclean mostlyclean-compile \
1018 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
1019 tags uninstall uninstall-am uninstall-includesHEADERS \
1020 uninstall-pkgLTLIBRARIES
1021
1022
1023# Tell versions [3.59,3.63) of GNU make to not export all variables.
1024# Otherwise a system limit (for SysV at least) may be exceeded.
1025.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/direct3d/array.h b/libraries/evas/src/modules/engines/direct3d/array.h
deleted file mode 100644
index dfd80b7..0000000
--- a/libraries/evas/src/modules/engines/direct3d/array.h
+++ /dev/null
@@ -1,305 +0,0 @@
1#ifndef __ARRAY_H__
2#define __ARRAY_H__
3
4#include "ref.h"
5#include <assert.h>
6
7template <class T>
8class TArray : virtual public Referenc
9{
10public:
11 TArray();
12 TArray(const TArray<T> &arr)
13 {
14 data = NULL;
15 size = num = 0;
16 block_size = arr.block_size;
17 keep_order = arr.keep_order;
18
19 //assert(0 && "Direct assignment for arrays is NOT allowed");
20 // risky probably, but anyway
21 arr.CopyTo(*this);
22 }
23 ~TArray();
24
25 bool Allocate(int new_num);
26 bool Resize(int new_size = 0);
27 bool Add(T &el);
28 bool Add(const T &el);
29
30 inline T &operator[](int i);
31 inline const T &operator[](int i) const;
32 inline const TArray<T> &operator =(const TArray<T> &arr)
33 {
34 block_size = arr.block_size;
35 keep_order = arr.keep_order;
36
37 //assert(0 && "Direct assignment for arrays is NOT allowed");
38 // risky probably, but anyway
39 arr.CopyTo(*this);
40 return *this;
41 }
42
43 T *Last()
44 {
45 if (num > 0)
46 return &data[num - 1];
47 return NULL;
48 }
49
50 inline int Length() const
51 {
52 return num;
53 }
54
55 inline int Size() const
56 {
57 return size;
58 }
59
60 inline int BlockSize() const
61 {
62 return block_size;
63 }
64
65 inline T *Data()
66 {
67 return data;
68 }
69
70 inline T **DataPtr()
71 {
72 return &data;
73 }
74
75 inline const T *Data() const
76 {
77 return data;
78 }
79
80 inline void SetKeepOrder(bool enable)
81 {
82 keep_order = enable;
83 }
84
85 bool Find(const T &el);
86
87 bool Add(TArray<T> &arr);
88 bool CopyTo(TArray<T> &dest) const;
89 bool Init(const T *arr, int len);
90
91 void Swap(int to, int from);
92 void Replace(int i);
93
94 bool SetBlockSize(int new_size);
95 void Set(T &el);
96 void Set(const T &el);
97
98protected:
99 T *data;
100 int size;
101 int num;
102 int block_size;
103 // Some operations restricted, order of the elements is fixed
104 bool keep_order;
105
106};
107
108namespace Array
109{
110 const int default_block_size = 16;
111 const int max_array_size = 0xffffff;
112}
113
114
115template <class T> TArray<T>::TArray()
116: data(NULL), size(0), num(0), block_size(Array::default_block_size), keep_order(false)
117{
118}
119
120template <class T> TArray<T>::~TArray()
121{
122 if (data != NULL)
123 Resize();
124}
125
126template <class T> bool TArray<T>::Allocate(int new_num)
127{
128 assert(new_num >= 0 && new_num <= Array::max_array_size);
129 if (new_num > size)
130 {
131 if (!Resize(new_num))
132 return false;
133 }
134 num = new_num;
135 return true;
136}
137
138template <class T> bool TArray<T>::Resize(int new_size)
139{
140 assert(new_size >= 0 && new_size <= Array::max_array_size);
141 if (new_size == 0)
142 {
143 delete[] data;
144 data = NULL;
145 size = 0;
146 num = 0;
147 return true;
148 }
149 if (new_size == size)
150 return true;
151
152 T *new_data = new T[new_size];
153 if (new_data == NULL)
154 return false;
155
156 if (data != NULL && num > 0)
157 {
158 //CopyMemory(new_data, data, num * sizeof(T));
159 for (int i = 0; i < num && i < new_size; i++)
160 new_data[i] = data[i];
161 }
162 delete[] data;
163
164 data = new_data;
165 size = new_size;
166 return true;
167}
168
169template <class T> bool TArray<T>::Add(T &el)
170{
171 if (data == NULL)
172 Resize(1);
173
174 if (num < size)
175 {
176 data[num++] = el;
177 return true;
178 }
179 // num >= size
180 int new_size = size + block_size;
181 if (!Resize(new_size))
182 return false;
183
184 data[num++] = el;
185 return true;
186}
187
188template <class T> bool TArray<T>::Add(const T &el)
189{
190 if (data == NULL)
191 Resize(1);
192
193 if (num < size)
194 {
195 data[num++] = *(T *)&el;
196 return true;
197 }
198 // num >= size
199 int new_size = size + block_size;
200 if (!Resize(new_size))
201 return false;
202
203 data[num++] = *(T *)&el;
204 return true;
205}
206
207template <class T> bool TArray<T>::Add(TArray<T> &arr)
208{
209 if (arr.Length() == 0)
210 return true;
211 int numf = num;
212 if (!Allocate(Length() + arr.Length()))
213 return false;
214 CopyMemory(&data[numf], arr.Data(), arr.Length() * sizeof(T));
215 return true;
216}
217
218template <class T> T &TArray<T>::operator [](int i)
219{
220 assert(i >= 0 && i < num);
221 return data[i];
222}
223
224template <class T> const T &TArray<T>::operator [](int i) const
225{
226 assert(i >= 0 && i < num);
227 return data[i];
228}
229
230template <class T> bool TArray<T>::SetBlockSize(int new_size)
231{
232 assert(new_size >= 0 && new_size <= Array::max_array_size);
233 block_size = new_size;
234 return true;
235}
236
237template <class T> void TArray<T>::Set(T &el)
238{
239 for (int i = 0; i < num; i++)
240 data[i] = el;
241}
242
243template <class T> void TArray<T>::Set(const T &el)
244{
245 for (int i = 0; i < num; i++)
246 data[i] = el;
247}
248
249template <class T> bool TArray<T>::CopyTo(TArray<T> &dest) const
250{
251 if (!dest.Resize(size))
252 return false;
253 dest.num = 0;
254 for (int i = 0; i < num; i++)
255 dest.Add(data[i]);
256
257 return true;
258}
259
260template <class T> bool TArray<T>::Init(const T *arr, int len)
261{
262 assert(arr != NULL);
263 if (!Resize(len))
264 return false;
265 num = 0;
266 for (int i = 0; i < len; i++)
267 Add((T)arr[i]);
268
269 return true;
270}
271
272template <class T> void TArray<T>::Swap(int to, int from)
273{
274 assert(to >= 0 && to < num && from >= 0 && from < num);
275 if (keep_order)
276 return;
277 T t = data[to];
278 data[to] = data[from];
279 data[from] = t;
280}
281
282template <class T> void TArray<T>::Replace(int i)
283{
284 assert(i >= 0 && i < num);
285 if (keep_order)
286 return;
287 if (num >= 1)
288 {
289 data[i] = data[num - 1];
290 num--;
291 }
292}
293
294// operator == for type T should be defined
295template <class T> bool TArray<T>::Find(const T &el)
296{
297 for (int i = 0; i < num; i++)
298 {
299 if (data[i] == el)
300 return true;
301 }
302 return false;
303}
304
305#endif // __ARRAY_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.cpp
deleted file mode 100644
index 07cfa3d..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
1
2#include "evas_direct3d_context.h"
3
4D3DContext::D3DContext()
5{
6 color = 0xff000000;
7 color_mul = 0xffffffff;
8}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.h
deleted file mode 100644
index 763d189..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_context.h
+++ /dev/null
@@ -1,22 +0,0 @@
1#ifndef __EVAS_DIRECT3D_CONTEXT_H__
2#define __EVAS_DIRECT3D_CONTEXT_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "evas_direct3d_object.h"
8
9class D3DContext : virtual public Referenc
10{
11public:
12 D3DContext();
13
14public:
15 DWORD color;
16 DWORD color_mul;
17
18 Ref<D3DObject> font;
19
20};
21
22#endif // __EVAS_DIRECT3D_CONTEXT_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.cpp
deleted file mode 100644
index ce0d985..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.cpp
+++ /dev/null
@@ -1,393 +0,0 @@
1//#define ENABLE_LOG_PRINTF
2
3#include "evas_direct3d_device.h"
4
5#include "evas_direct3d_vertex_buffer_cache.h"
6
7D3DDevice::D3DDevice()
8{
9 ResetParams();
10}
11
12bool D3DDevice::Init(HWND window, int depth, bool fullscreen)
13{
14 D3DPRESENT_PARAMETERS pp;
15 D3DDISPLAYMODE dm;
16 D3DCAPS9 caps;
17 RECT rect;
18 DWORD flag;
19 HRESULT hr;
20
21 if (window == NULL)
22 return false;
23
24 Destroy();
25
26 _object = Direct3DCreate9(D3D_SDK_VERSION);
27 if (_object == NULL)
28 return false;
29
30 if (FAILED(hr = _object->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &dm)))
31 {
32 ERR("GetAdapterDisplayMode failed: %x", hr);
33 Destroy();
34 return false;
35 }
36
37 if (FAILED(hr = _object->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &caps)))
38 {
39 ERR("GetDeviceCaps failed: %x", hr);
40 Destroy();
41 return false;
42 }
43
44 if (!GetClientRect(window, &rect))
45 {
46 ERR("GetClientRect failed: %x", GetLastError());
47 Destroy();
48 return false;
49 }
50
51 if (SUCCEEDED(_object->CheckDeviceFormat(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
52 dm.Format, 0, D3DRTYPE_TEXTURE, (depth == 16) ? D3DFMT_R5G6B5 : D3DFMT_A8R8G8B8)))
53 {
54 dm.Format = (depth == 16) ? D3DFMT_R5G6B5 : D3DFMT_A8R8G8B8;
55 }
56
57 flag = (caps.VertexProcessingCaps != 0) ?
58 (D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE) :
59 D3DCREATE_SOFTWARE_VERTEXPROCESSING;
60
61 ZeroMemory(&pp, sizeof(pp));
62 if (!fullscreen)
63 {
64 pp.BackBufferWidth = rect.right - rect.left;
65 pp.BackBufferHeight = rect.bottom - rect.top;
66 }
67 else
68 {
69 pp.BackBufferWidth = ::GetSystemMetrics(SM_CXSCREEN);
70 pp.BackBufferHeight = ::GetSystemMetrics(SM_CYSCREEN);
71 }
72 pp.BackBufferFormat = dm.Format;
73 pp.BackBufferCount = 1;
74 pp.MultiSampleType = D3DMULTISAMPLE_NONE;
75 pp.MultiSampleQuality = 0;
76 pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
77 pp.hDeviceWindow = window;
78 pp.Windowed = fullscreen ? FALSE : TRUE;
79 //pp.EnableAutoDepthStencil = TRUE;
80 //pp.AutoDepthStencilFormat = D3DFMT_D16;
81 pp.FullScreen_RefreshRateInHz = 0;
82 pp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
83
84 if (FAILED(hr = _object->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
85 window, flag, &pp, &_device)))
86 {
87 WRN("CreateDevice failed: %x", hr);
88 Destroy();
89 return false;
90 }
91
92 LPDIRECT3DSURFACE9 backbuffer = NULL;
93 _device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer);
94 backbuffer->GetDesc(&_backbuffer_desc);
95 backbuffer->Release();
96
97 switch (dm.Format) {
98 case D3DFMT_A8R8G8B8:
99 case D3DFMT_X8R8G8B8:
100 _depth = 32;
101 break;
102 case D3DFMT_R5G6B5:
103 _depth = 16;
104 break;
105 default:
106 WRN("No supported format found");
107 Destroy();
108 return false;
109 }
110
111 //_render_to_texture = false;
112
113 _d3dpp = pp;
114 _device_lost = FALSE;
115 _scene_rendering = FALSE;
116 _width = rect.right - rect.left;
117 _height = rect.bottom - rect.top;
118 _window = window;
119
120 if (FAILED(CreateRenderTarget()))
121 {
122 ERR("Failed to create render target");
123 Destroy();
124 return false;
125 }
126
127 Log("initialized");
128 return true;
129}
130
131bool D3DDevice::Reset(int width, int height, int fullscreen)
132{
133 D3DPRESENT_PARAMETERS pp = _d3dpp;
134 _d3dpp.BackBufferWidth = (width > 0) ? width : _d3dpp.BackBufferWidth;
135 _d3dpp.BackBufferHeight = (height > 0) ? height : _d3dpp.BackBufferHeight;
136 _d3dpp.Windowed = (fullscreen == 1) ? FALSE : ((fullscreen == 0) ? TRUE : _d3dpp.Windowed);
137 if (FAILED(ResetDevice()))
138 {
139 WRN("Couldnt restore device");
140 _d3dpp = pp;
141 return SUCCEEDED(ResetDevice());
142 }
143 _width = _d3dpp.BackBufferWidth;
144 _height = _d3dpp.BackBufferHeight;
145 return true;
146}
147
148void D3DDevice::Destroy()
149{
150 //if (_render_target != NULL)
151 //{
152 // _render_target->Release();
153 // _render_target = NULL;
154 //}
155 if (_render_target_data != NULL)
156 {
157 _render_target_data->Release();
158 _render_target_data = NULL;
159 }
160 if (_device != NULL)
161 {
162 int num = _device->Release();
163 assert(num == 0);
164 }
165 if (_object != NULL)
166 _object->Release();
167 ResetParams();
168
169 INF("uninitialized");
170}
171
172void D3DDevice::ResetParams()
173{
174 _window = NULL;
175 _object = NULL;
176 _device = NULL;
177 _width = 0;
178 _height = 0;
179 _rot = 0;
180 _depth = 0;
181 _device_lost = false;
182 _scene_rendering = false;
183 ZeroMemory(&_d3dpp, sizeof(_d3dpp));
184 ZeroMemory(&_backbuffer_desc, sizeof(_backbuffer_desc));
185 //_render_target = NULL;
186 _render_target_data = NULL;
187 _render_data_updated = false;
188 _render_data.Resize();
189 //_original_render_target = NULL;
190 //_render_to_texture = false;
191}
192
193HRESULT D3DDevice::RestoreDevice()
194{
195 Log("restore");
196 assert(_device != NULL);
197
198 HRESULT hr = S_OK;
199
200 // Test the cooperative level to see if it's okay to render
201 if (SUCCEEDED(hr = _device->TestCooperativeLevel()))
202 {
203 _device_lost = FALSE;
204 DBG("render test ok");
205 return S_OK;
206 }
207
208 // If the device was lost, do not render until we get it back
209 if (hr == D3DERR_DEVICELOST)
210 return E_FAIL;
211
212 // Check if the device needs to be reset.
213 if (hr == D3DERR_DEVICENOTRESET)
214 {
215 if (FAILED(hr = ResetDevice()))
216 return hr;
217 }
218 return hr;
219}
220
221HRESULT D3DDevice::ResetDevice()
222{
223 DBG("reset");
224 HRESULT hr = S_OK;
225
226 _scene_rendering = FALSE;
227
228 // Release all video memory objects
229 // Bad to call such, make better
230 D3DVertexBufferCache::Current()->Uninitialize();
231
232 //if (_render_target != NULL)
233 //{
234 // _render_target->Release();
235 // _render_target = NULL;
236 //}
237 if (_render_target_data != NULL)
238 {
239 _render_target_data->Release();
240 _render_target_data = NULL;
241 }
242
243 // Reset the device
244 if (FAILED(hr = _device->Reset(&_d3dpp)))
245 {
246 ERR("D3DDevice: Reset of the device failed! Error (%X)", (DWORD)hr);
247 return hr;
248 }
249
250 // Store render target surface desc
251 LPDIRECT3DSURFACE9 backbuffer = NULL;
252 _device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &backbuffer);
253 if (backbuffer != NULL)
254 {
255 backbuffer->GetDesc(&_backbuffer_desc);
256 backbuffer->Release();
257 }
258
259 // Initialize the app's device-dependent objects
260 hr = CreateRenderTarget();
261
262 if (FAILED(hr))
263 {
264 WRN("Restoration of device objects failed");
265 // Invalidate objects
266
267 return E_FAIL;
268 }
269
270 DBG("Device objects were successfuly restored");
271 _textures.Set(NULL);
272
273 //_device_objects_restored = true;
274 return S_OK;
275}
276
277bool D3DDevice::Begin()
278{
279 if (FAILED(RestoreDevice()))
280 return false;
281
282 //if (_render_to_texture && _render_target != NULL)
283 //{
284 // if (FAILED(_device->GetRenderTarget(0, &_original_render_target)))
285 // return false;
286 // if (FAILED(_device->SetRenderTarget(0, _render_target)))
287 // return false;
288 //}
289
290 HRESULT hr;
291 if (FAILED(hr = _device->BeginScene()))
292 {
293 WRN("Cannot begin scene: %X", (DWORD)hr);
294 return false;
295 }
296
297 //static const D3DVIEWPORT9 vp = {0, 0, _width, _height, 0.f, 1.f};
298 //_device->SetViewport(&vp);
299 //_device->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
300
301 //_device->Clear(0, NULL, D3DCLEAR_TARGET /*| D3DCLEAR_ZBUFFER*/, 0xff8080ff, 1.f, 0);
302 return true;
303}
304
305bool D3DDevice::End()
306{
307 _device->EndScene();
308 _device->Present(NULL, NULL, NULL, NULL);
309
310 _render_data_updated = false;
311
312 //if (_render_to_texture && _render_target != NULL && _original_render_target != NULL)
313 //{
314 // if (FAILED(_device->SetRenderTarget(0, _original_render_target)))
315 // return false;
316 //}
317
318 return true;
319}
320
321TArray<DWORD> &D3DDevice::GetRenderData()
322{
323 if (_render_data_updated)
324 return _render_data;
325 _render_data.Allocate(0);
326 if (_render_target_data == NULL)
327 return _render_data;
328
329 LPDIRECT3DSURFACE9 surf = NULL;
330 HRESULT hr;
331 if (FAILED(_device->GetRenderTarget(0, &surf)))
332 return _render_data;
333 if (FAILED(hr = _device->GetRenderTargetData(surf, _render_target_data)))
334 {
335 WRN("Failed to get render target data (%X)", (DWORD)hr);
336 surf->Release();
337 return _render_data;
338 }
339 D3DLOCKED_RECT lr;
340 if (FAILED(_render_target_data->LockRect(&lr, NULL, D3DLOCK_READONLY)))
341 {
342 surf->Release();
343 return _render_data;
344 }
345 _render_data.Allocate(_width * _height);
346
347 for (int i = 0; i < _height; i++)
348 {
349 CopyMemory(&_render_data[i * _width], (BYTE *)lr.pBits + i * lr.Pitch,
350 _width * sizeof(DWORD));
351 }
352
353 _render_target_data->UnlockRect();
354 _render_data_updated = true;
355 surf->Release();
356 return _render_data;
357}
358
359HRESULT D3DDevice::SetTexture(DWORD stage, LPDIRECT3DTEXTURE9 tex)
360{
361 if (stage >= 8)
362 return E_FAIL;
363 if (_textures.Length() <= (int)stage)
364 _textures.Allocate(stage + 1);
365 if (_textures[stage] != tex)
366 {
367 _textures[stage] = tex;
368 return _device->SetTexture(stage, tex);
369 }
370 return S_OK;
371}
372
373HRESULT D3DDevice::CreateRenderTarget()
374{
375 if (_device == NULL)
376 return E_FAIL;
377 //if (_render_target != NULL &&
378 if (_render_target_data != NULL)
379 return S_OK;
380
381 //if (FAILED(_device->CreateRenderTarget(_width, _height, _backbuffer_desc.Format,
382 // D3DMULTISAMPLE_NONE, 0, FALSE, &_render_target, NULL)))
383 //{
384 // return E_FAIL;
385 //}
386 if (FAILED(_device->CreateOffscreenPlainSurface(_backbuffer_desc.Width,
387 _backbuffer_desc.Height, _backbuffer_desc.Format, D3DPOOL_SYSTEMMEM,
388 &_render_target_data, NULL)))
389 {
390 return E_FAIL;
391 }
392 return S_OK;
393}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h
deleted file mode 100644
index c5a4b49..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_device.h
+++ /dev/null
@@ -1,87 +0,0 @@
1#ifndef __EVAS_DIRECT3D_DEVICE_H__
2#define __EVAS_DIRECT3D_DEVICE_H__
3
4#include "evas_engine.h"
5
6#include <assert.h>
7
8#include "ref.h"
9#include "array.h"
10
11
12class D3DDevice : virtual public Referenc
13{
14public:
15 D3DDevice();
16
17 bool Init(HWND window, int depth, bool fullscreen = false);
18 bool Reset(int width, int height, int fullscreen);
19 void Destroy();
20 bool Begin();
21 bool End();
22
23 inline LPDIRECT3DDEVICE9 GetDevice();
24 inline int GetWidth();
25 inline int GetHeight();
26 inline HWND GetWindow();
27 inline bool GetFullscreen();
28
29 TArray<DWORD> &GetRenderData();
30
31 HRESULT SetTexture(DWORD stage, LPDIRECT3DTEXTURE9 tex);
32
33private:
34 HRESULT RestoreDevice();
35 HRESULT ResetDevice();
36 void ResetParams();
37
38 HRESULT CreateRenderTarget();
39
40private:
41 HWND _window;
42 LPDIRECT3D9 _object;
43 LPDIRECT3DDEVICE9 _device;
44 int _width;
45 int _height;
46 int _rot;
47 int _depth;
48 bool _device_lost;
49 bool _scene_rendering;
50 D3DPRESENT_PARAMETERS _d3dpp;
51 D3DSURFACE_DESC _backbuffer_desc;
52 //LPDIRECT3DSURFACE9 _render_target;
53 LPDIRECT3DSURFACE9 _render_target_data;
54 //LPDIRECT3DSURFACE9 _original_render_target;
55 //bool _render_to_texture;
56 TArray<DWORD> _render_data;
57 bool _render_data_updated;
58
59 TArray<LPDIRECT3DTEXTURE9> _textures;
60};
61
62LPDIRECT3DDEVICE9 D3DDevice::GetDevice()
63{
64 return _device;
65}
66
67int D3DDevice::GetWidth()
68{
69 return _width;
70}
71
72int D3DDevice::GetHeight()
73{
74 return _height;
75}
76
77HWND D3DDevice::GetWindow()
78{
79 return _window;
80}
81
82bool D3DDevice::GetFullscreen()
83{
84 return (_d3dpp.Windowed == 0);
85}
86
87#endif // __EVAS_DIRECT3D_DEVICE_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.cpp
deleted file mode 100644
index aa44eb9..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.cpp
+++ /dev/null
@@ -1,436 +0,0 @@
1#include "evas_direct3d_image_cache.h"
2
3#include "evas_direct3d_device.h"
4
5#include <assert.h>
6
7Ref<D3DImageCache> D3DImageCache::_this;
8
9D3DImageCache::D3DImageCache()
10{
11 _max_width = 512;
12 _max_height = 512;
13 _margin = 0;
14}
15
16D3DImageCache::~D3DImageCache()
17{
18 Uninitialize();
19}
20
21D3DImageCache *D3DImageCache::Current()
22{
23 if (_this.IsNull())
24 _this = new D3DImageCache();
25 return _this;
26}
27
28void D3DImageCache::SetCurrent(D3DImageCache *obj)
29{
30 _this = obj;
31}
32
33void D3DImageCache::Uninitialize()
34{
35 for (int i = 0; i < _cache.Length(); i++)
36 {
37 // In normal case they all will be NULL
38 if (_cache[i].texture != NULL)
39 _cache[i].texture->Release();
40 }
41 _cache.Resize();
42}
43
44bool D3DImageCache::SelectImageToDevice(D3DDevice *d3d, int id)
45{
46 if (id < 0 || id >= _cache.Length())
47 return false;
48 assert(_cache[id].texture != NULL);
49 return SUCCEEDED(d3d->SetTexture(_cache[id].stage, _cache[id].texture));
50}
51
52void D3DImageCache::RemoveImageUser(int id)
53{
54 if (id < 0 || id >= _cache.Length())
55 return;
56 assert(_cache[id].texture != NULL);
57 _cache[id].users--;
58 if (_cache[id].users == 0)
59 {
60 _cache[id].texture->Release();
61 ZeroMemory(&_cache[id], sizeof(_cache[id]));
62 }
63}
64
65void D3DImageCache::AddImageUser(int id)
66{
67 if (id < 0 || id >= _cache.Length())
68 return;
69 assert(_cache[id].texture != NULL);
70 _cache[id].users++;
71}
72
73bool D3DImageCache::InsertImage(D3DDevice *d3d, DWORD *data, int w, int h, CacheEntryInfo &info)
74{
75 CacheEntry *ce = NULL;
76 int id = -1;
77 for (int i = 0; i < _cache.Length(); i++)
78 {
79 if (!_cache[i].locked && RequestInsert(_cache[i], w, h))
80 {
81 ce = &_cache[i];
82 id = i;
83 break;
84 }
85 }
86 if (ce == NULL)
87 {
88 CacheEntry new_entry;
89 if (!CreateEntry(d3d, new_entry, w, h))
90 return false;
91 for (id = 0; id < _cache.Length(); id++)
92 {
93 if (_cache[id].texture == NULL)
94 break;
95 }
96
97 if (id < _cache.Length())
98 {
99 _cache[id] = new_entry;
100 ce = &_cache[id];
101 }
102 else
103 {
104 _cache.Add(new_entry);
105 ce = _cache.Last();
106 id = _cache.Length() - 1;
107 }
108 }
109
110 assert(ce != NULL && ce->texture != NULL);
111
112 if (!InsertData(*ce, data, w, h))
113 return false;
114
115 info.id = id;
116 info.u = FLOAT(ce->cur_x) / FLOAT(ce->width);
117 info.v = FLOAT(ce->cur_y) / FLOAT(ce->height);
118 info.du = FLOAT(w) / FLOAT(ce->width);
119 info.dv = FLOAT(h) / FLOAT(ce->height);
120 info.width = w;
121 info.height = h;
122
123 UpdateInsert(*ce, w, h);
124 return true;
125}
126
127bool D3DImageCache::InsertImage(D3DDevice *d3d, int id, DWORD *data, int w, int h, CacheEntryInfo &info)
128{
129 if (id < 0 || id >= _cache.Length())
130 return false;
131 assert(_cache[id].texture != NULL);
132 CacheEntry *ce = &_cache[id];
133 if (!RequestInsert(*ce, w, h))
134 return false;
135 if (!InsertData(*ce, data, w, h))
136 return false;
137
138 info.id = id;
139 info.u = FLOAT(ce->cur_x) / FLOAT(ce->width);
140 info.v = FLOAT(ce->cur_y) / FLOAT(ce->height);
141 info.du = FLOAT(w) / FLOAT(ce->width);
142 info.dv = FLOAT(h) / FLOAT(ce->height);
143 info.width = w;
144 info.height = h;
145
146 UpdateInsert(*ce, w, h);
147 return true;
148}
149
150bool D3DImageCache::CreateImage(D3DDevice *d3d, int w, int h, bool locked, CacheEntryInfo &info)
151{
152 int id;
153 CacheEntry new_entry;
154 CacheEntry *ce = NULL;
155
156 if (!CreateEntry(d3d, new_entry, w, h, true))
157 return false;
158 for (id = 0; id < _cache.Length(); id++)
159 {
160 if (_cache[id].texture == NULL)
161 break;
162 }
163
164 if (id < _cache.Length())
165 {
166 _cache[id] = new_entry;
167 ce = &_cache[id];
168 }
169 else
170 {
171 _cache.Add(new_entry);
172 ce = _cache.Last();
173 id = _cache.Length() - 1;
174 }
175
176 assert(ce != NULL && ce->texture != NULL);
177
178 // Fill with zero
179 if (!InsertData(*ce, NULL, w, h))
180 return false;
181
182 info.id = id;
183 info.u = 0;
184 info.v = 0;
185 info.du = 1;
186 info.dv = 1;
187 info.width = w;
188 info.height = h;
189
190 UpdateInsert(*ce, 0, 0);
191 ce->locked = locked;
192 return true;
193}
194
195bool D3DImageCache::ResizeImage(D3DDevice *d3d, int nw, int nh, int id)
196{
197 if (id < 0 || id >= _cache.Length())
198 return false;
199 assert(_cache[id].texture != NULL);
200 CacheEntry *ce = &_cache[id];
201
202 if (ce->width == nw && ce->height == nh)
203 return true;
204
205 LPDIRECT3DTEXTURE9 tex = NULL;
206
207 HRESULT hr;
208 if (FAILED(hr = d3d->GetDevice()->CreateTexture(nw, nh, 0, 0, D3DFMT_A8R8G8B8,
209 D3DPOOL_MANAGED, &tex, NULL)))
210 {
211 WRN("Failed to create texture: %X", hr);
212 return false;
213 }
214 assert(tex != NULL);
215
216 ce->texture->Release();
217 ce->texture = tex;
218 ce->width = nw;
219 ce->height = nh;
220 return true;
221}
222
223bool D3DImageCache::RequestInsert(CacheEntry &entry, int w, int h)
224{
225 // If we already have large image entry
226 if (entry.width > _max_width || entry.height > _max_height)
227 return false;
228 // If requested size does not fit into this entry at all
229 if (entry.height - entry.cur_h < h + _margin * 2 || entry.width < w + _margin * 2)
230 return false;
231
232 // If requested size does not fit into the current line of the entry
233 if (entry.width - entry.cur_x < w + _margin * 2)
234 {
235 entry.cur_y = entry.cur_h + _margin;
236 entry.cur_x = _margin;
237 return true;
238 }
239 entry.cur_x += _margin;
240
241 return true;
242}
243
244bool D3DImageCache::CreateEntry(D3DDevice *d3d, CacheEntry &entry, int w, int h, bool exact_size)
245{
246 int width = exact_size ? w : max(_max_width, w);
247 int height = exact_size ? h : max(_max_height, h);
248 HRESULT hr;
249 if (FAILED(hr = d3d->GetDevice()->CreateTexture(width, height, 0, 0, D3DFMT_A8R8G8B8,
250 D3DPOOL_MANAGED, &entry.texture, NULL)))
251 {
252 WRN("Failed to create texture: %X", hr);
253 return false;
254 }
255
256 entry.cur_x = entry.cur_y = entry.cur_h = 0;
257 entry.width = width;
258 entry.height = height;
259 entry.users = 0;
260 entry.locked = false;
261 entry.stage = 0;
262 return true;
263}
264
265bool D3DImageCache::InsertData(CacheEntry &entry, DWORD *data, int w, int h)
266{
267 if (entry.texture == NULL)
268 return false;
269
270 RECT rc = {entry.cur_x, entry.cur_y, entry.cur_x + w, entry.cur_y + h};
271 D3DLOCKED_RECT lr;
272 if (FAILED(entry.texture->LockRect(0, &lr, &rc, 0)))
273 {
274 WRN("Failed to lock texture");
275 return false;
276 }
277
278 if (data != NULL)
279 {
280 for (int i = 0; i < h; i++)
281 CopyMemory(((BYTE *)lr.pBits) + i * lr.Pitch, data + i * w, sizeof(DWORD) * w);
282 }
283 else
284 {
285 for (int i = 0; i < h; i++)
286 ZeroMemory(((BYTE *)lr.pBits) + i * lr.Pitch, sizeof(DWORD) * w);
287 }
288
289 if (FAILED(entry.texture->UnlockRect(0)))
290 {
291 WRN("Failed to unlock texture");
292 return false;
293 }
294 return true;
295}
296
297
298bool D3DImageCache::RetrieveData(CacheEntry &entry, DWORD *data, int w, int h)
299{
300 if (entry.texture == NULL || data == NULL)
301 return false;
302
303 RECT rc = {entry.cur_x, entry.cur_y, entry.cur_x + w, entry.cur_y + h};
304 D3DLOCKED_RECT lr;
305 if (FAILED(entry.texture->LockRect(0, &lr, &rc, D3DLOCK_READONLY)))
306 {
307 WRN("Failed to lock texture");
308 return false;
309 }
310
311 for (int i = 0; i < h; i++)
312 CopyMemory(data + i * w, ((BYTE *)lr.pBits) + i * lr.Pitch, sizeof(DWORD) * w);
313
314 if (FAILED(entry.texture->UnlockRect(0)))
315 {
316 WRN("Failed to unlock texture");
317 return false;
318 }
319 return true;
320}
321
322void D3DImageCache::UpdateInsert(CacheEntry &entry, int w, int h)
323{
324 entry.cur_h = max(entry.cur_h, entry.cur_y + h + _margin);
325 entry.cur_x += w + _margin;
326 entry.users++;
327}
328
329bool D3DImageCache::UpdateImageData(CacheEntryInfo &info, DWORD *data)
330{
331 assert(data != NULL);
332 if (info.id < 0 || info.id >= _cache.Length())
333 return false;
334 CacheEntry ce_copy = _cache[info.id];
335 ce_copy.cur_x = int(info.u * FLOAT(ce_copy.width));
336 ce_copy.cur_y = int(info.v * FLOAT(ce_copy.height));
337 return InsertData(ce_copy, data, info.width, info.height);
338}
339
340bool D3DImageCache::UpdateImageDataWithDirtyInfo(CacheEntryInfo &info, DWORD *data, POINT *dirty)
341{
342 if (info.id < 0 || info.id >= _cache.Length())
343 return false;
344 CacheEntry &entry = _cache[info.id];
345 if (entry.texture == NULL)
346 return false;
347
348 RECT rc = {0, 0, entry.width, entry.height};
349 D3DLOCKED_RECT lr;
350 if (FAILED(entry.texture->LockRect(0, &lr, &rc, 0)))
351 {
352 WRN("Failed to lock texture");
353 return false;
354 }
355
356 if (data != NULL)
357 {
358 for (int i = 0; i < rc.bottom; i++)
359 {
360 if (dirty[i].x < 0 && dirty[i].y < 0)
361 continue;
362 if (dirty[i].x >= 0 && dirty[i].y >= 0)
363 {
364 CopyMemory(((BYTE *)lr.pBits) + i * lr.Pitch + dirty[i].x * 4,
365 data + i * rc.right + dirty[i].x, sizeof(DWORD) * (dirty[i].y - dirty[i].x + 1));
366 dirty[i].y = -dirty[i].y;
367 }
368 else if (dirty[i].x >= 0 && dirty[i].y < 0)
369 {
370 ZeroMemory(((BYTE *)lr.pBits) + i * lr.Pitch + dirty[i].x * 4,
371 sizeof(DWORD) * (-dirty[i].y - dirty[i].x + 1));
372 dirty[i].x = -dirty[i].x;
373 }
374 }
375 }
376 else
377 {
378 for (int i = 0; i < rc.bottom; i++)
379 {
380 if (dirty[i].x < 0 || dirty[i].y < 0)
381 continue;
382 ZeroMemory(((BYTE *)lr.pBits) + i * lr.Pitch + dirty[i].x * 4,
383 sizeof(DWORD) * (dirty[i].y - dirty[i].x + 1));
384 }
385 }
386
387 if (FAILED(entry.texture->UnlockRect(0)))
388 {
389 WRN("Failed to unlock texture");
390 return false;
391 }
392 return true;
393}
394
395bool D3DImageCache::UpdateImageDataDiscard(CacheEntryInfo &info, DWORD *data)
396{
397 assert(data != NULL);
398 if (info.id < 0 || info.id >= _cache.Length())
399 return false;
400 CacheEntry &entry = _cache[info.id];
401 if (entry.texture == NULL)
402 return false;
403
404 RECT rc = {0, 0, entry.width, entry.height};
405 D3DLOCKED_RECT lr;
406 if (FAILED(entry.texture->LockRect(0, &lr, &rc, 0)))
407 {
408 WRN("Failed to lock texture");
409 return false;
410 }
411
412 for (int i = 0; i < rc.bottom; i++)
413 {
414 CopyMemory(((BYTE *)lr.pBits) + i * lr.Pitch,
415 data + i * rc.right, sizeof(DWORD) * rc.right);
416 }
417
418 if (FAILED(entry.texture->UnlockRect(0)))
419 {
420 WRN("Failed to unlock texture");
421 return false;
422 }
423 return true;
424}
425
426bool D3DImageCache::GetImageData(CacheEntryInfo &info, TArray<DWORD> &data)
427{
428 if (info.id < 0 || info.id >= _cache.Length())
429 return false;
430 CacheEntry ce_copy = _cache[info.id];
431 ce_copy.cur_x = int(info.u * FLOAT(ce_copy.width));
432 ce_copy.cur_y = int(info.v * FLOAT(ce_copy.height));
433 data.Allocate(info.width * info.height);
434
435 return RetrieveData(ce_copy, data.Data(), info.width, info.height);
436}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.h
deleted file mode 100644
index 6fb4c18..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_image_cache.h
+++ /dev/null
@@ -1,108 +0,0 @@
1#ifndef __EVAS_DIRECT3D_IMAGE_CACHE_H__
2#define __EVAS_DIRECT3D_IMAGE_CACHE_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "array.h"
8
9class D3DDevice;
10
11class D3DImageCache : virtual public Referenc
12{
13public:
14 struct CacheEntryInfo
15 {
16 int id;
17 int width, height;
18 FLOAT u, v;
19 FLOAT du, dv;
20 };
21
22public:
23 ~D3DImageCache();
24
25 static D3DImageCache *Current();
26 static void SetCurrent(D3DImageCache *obj);
27
28 inline void SetMaxSize(int w, int h);
29 inline void SetMargin(int margin);
30
31 bool InsertImage(D3DDevice *d3d, DWORD *data, int w, int h, CacheEntryInfo &info);
32 bool InsertImage(D3DDevice *d3d, int id, DWORD *data, int w, int h, CacheEntryInfo &info);
33 bool CreateImage(D3DDevice *d3d, int w, int h, bool locked, CacheEntryInfo &info);
34 bool ResizeImage(D3DDevice *d3d, int nw, int nh, int id);
35 bool SelectImageToDevice(D3DDevice *d3d, int id);
36 void RemoveImageUser(int id);
37 void AddImageUser(int id);
38 bool UpdateImageData(CacheEntryInfo &info, DWORD *data);
39 bool UpdateImageDataWithDirtyInfo(CacheEntryInfo &info, DWORD *data, POINT *dirty);
40 bool UpdateImageDataDiscard(CacheEntryInfo &info, DWORD *data);
41 bool GetImageData(CacheEntryInfo &info, TArray<DWORD> &data);
42 void Uninitialize();
43
44 inline int GetImageWidth(int image_id);
45 inline int GetImageHeight(int image_id);
46
47 inline void SetImageStage(int image_id, int stage);
48
49private:
50 struct CacheEntry
51 {
52 LPDIRECT3DTEXTURE9 texture;
53 int width;
54 int height;
55 int cur_x;
56 int cur_y;
57 int cur_h;
58 int users;
59 bool locked;
60 int stage;
61 };
62
63private:
64 D3DImageCache();
65
66 bool RequestInsert(CacheEntry &entry, int w, int h);
67 bool CreateEntry(D3DDevice *d3d, CacheEntry &entry, int w, int h, bool exact_size = false);
68 bool InsertData(CacheEntry &entry, DWORD *data, int w, int h);
69 bool RetrieveData(CacheEntry &entry, DWORD *data, int w, int h);
70 void UpdateInsert(CacheEntry &entry, int w, int h);
71
72private:
73 TArray<CacheEntry> _cache;
74 int _max_width;
75 int _max_height;
76
77 int _margin;
78
79 static Ref<D3DImageCache> _this;
80};
81
82void D3DImageCache::SetMaxSize(int w, int h)
83{
84 _max_width = w;
85 _max_height = h;
86}
87
88void D3DImageCache::SetMargin(int margin)
89{
90 _margin = margin;
91}
92
93int D3DImageCache::GetImageWidth(int image_id)
94{
95 return _cache[image_id].width;
96}
97
98int D3DImageCache::GetImageHeight(int image_id)
99{
100 return _cache[image_id].height;
101}
102
103void D3DImageCache::SetImageStage(int image_id, int stage)
104{
105 _cache[image_id].stage = stage;
106}
107
108#endif // __EVAS_DIRECT3D_IMAGE_CACHE_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_main.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_main.cpp
deleted file mode 100644
index fe1e13f..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_main.cpp
+++ /dev/null
@@ -1,774 +0,0 @@
1// Force the layered windows APIs to be visible.
2#define _WIN32_WINNT 0x0500
3
4#include "evas_engine.h"
5#include <assert.h>
6
7#include <d3dx9.h>
8
9#include "evas_direct3d_device.h"
10#include "evas_direct3d_context.h"
11#include "evas_direct3d_shader_pack.h"
12#include "evas_direct3d_scene.h"
13#include "evas_direct3d_image_cache.h"
14#include "evas_direct3d_object_line.h"
15#include "evas_direct3d_object_rect.h"
16#include "evas_direct3d_object_image.h"
17#include "evas_direct3d_vertex_buffer_cache.h"
18#include "evas_direct3d_object_font.h"
19
20// Internal structure that joins two types of objects
21struct ImagePtr
22{
23 Ref<D3DObjectImage> ref;
24 RGBA_Image *img;
25};
26
27struct DevicePtr
28{
29 Ref<D3DDevice> device;
30 Ref<D3DScene> scene;
31 Ref<D3DContext> context;
32 Ref<D3DImageCache> image_cache;
33 Ref<D3DShaderPack> shader_pack;
34 Ref<D3DVertexBufferCache> vb_cache;
35
36 int fonts_buffer_image_id;
37
38 // Layered windows cannot render D3D in the normal way
39 bool layered;
40
41 // Window shape mask
42 struct
43 {
44 // Width and height may be different from target size
45 int width;
46 int height;
47 // Pointer to external memory location, dont do anything with it
48 unsigned char *mask;
49 } shape;
50
51 // GDI output target
52 struct
53 {
54 HBITMAP image;
55 HDC hdc;
56 BITMAPINFO info;
57 BYTE *data;
58 } dib;
59
60};
61
62DevicePtr *SelectDevice(Direct3DDeviceHandler d3d)
63{
64 DevicePtr *dev_ptr = (DevicePtr *)d3d;
65 D3DImageCache::SetCurrent(dev_ptr->image_cache);
66 D3DShaderPack::SetCurrent(dev_ptr->shader_pack);
67 D3DVertexBufferCache::SetCurrent(dev_ptr->vb_cache);
68 return dev_ptr;
69}
70
71void DeleteDIBObjects(DevicePtr *dev_ptr)
72{
73 assert(dev_ptr != NULL);
74 if (dev_ptr->dib.image != NULL)
75 DeleteObject(dev_ptr->dib.image);
76 if (dev_ptr->dib.hdc != NULL)
77 DeleteDC(dev_ptr->dib.hdc);
78 ZeroMemory(&dev_ptr->dib, sizeof(dev_ptr->dib));
79}
80
81bool CreateDIBObjects(DevicePtr *dev_ptr)
82{
83 assert(dev_ptr != NULL);
84 if ((dev_ptr->dib.hdc = CreateCompatibleDC(NULL)) == NULL)
85 {
86 WRN("Failed to create compatible DC");
87 return false;
88 }
89 ZeroMemory(&dev_ptr->dib.info, sizeof(dev_ptr->dib.info));
90 dev_ptr->dib.info.bmiHeader.biSize = sizeof(dev_ptr->dib.info.bmiHeader);
91 dev_ptr->dib.info.bmiHeader.biBitCount = 32;
92 dev_ptr->dib.info.bmiHeader.biWidth = dev_ptr->device->GetWidth();
93 dev_ptr->dib.info.bmiHeader.biHeight = -dev_ptr->device->GetHeight();
94 dev_ptr->dib.info.bmiHeader.biCompression = BI_RGB;
95 dev_ptr->dib.info.bmiHeader.biPlanes = 1;
96 if ((dev_ptr->dib.image = CreateDIBSection(dev_ptr->dib.hdc, &dev_ptr->dib.info,
97 DIB_RGB_COLORS, (void **)&dev_ptr->dib.data, NULL, 0)) == NULL)
98 {
99 WRN("Failed to create dib section");
100 DeleteDIBObjects(dev_ptr);
101 return false;
102 }
103 assert(dev_ptr->dib.data != NULL);
104 GdiFlush();
105 return true;
106}
107
108
109
110
111extern "C" {
112
113Direct3DDeviceHandler evas_direct3d_init(HWND window, int depth, int fullscreen)
114{
115 Ref<D3DDevice> device = new D3DDevice();
116 if (!device->Init(window, depth, fullscreen == 1))
117 return NULL;
118
119 D3DImageCache::SetCurrent(NULL);
120 D3DShaderPack::SetCurrent(NULL);
121 D3DVertexBufferCache::SetCurrent(NULL);
122
123 if (!D3DShaderPack::Current()->Initialize(device))
124 {
125 ERR("Failed to build shader pack");
126 device->Destroy();
127 return NULL;
128 }
129
130 DevicePtr *dev_ptr = new DevicePtr;
131 ZeroMemory(dev_ptr, sizeof(DevicePtr));
132 dev_ptr->device = device;
133 dev_ptr->scene = new D3DScene();
134 dev_ptr->context = new D3DContext();
135 dev_ptr->image_cache = D3DImageCache::Current();
136 dev_ptr->shader_pack = D3DShaderPack::Current();
137 dev_ptr->vb_cache = D3DVertexBufferCache::Current();
138 dev_ptr->fonts_buffer_image_id = -1;
139
140 D3DImageCache::CacheEntryInfo info;
141 if (!D3DImageCache::Current()->CreateImage(device, device->GetWidth(), device->GetHeight(),
142 true, info))
143 {
144 WRN("Failed to create fonts image buffer");
145 return NULL;
146 }
147 dev_ptr->fonts_buffer_image_id = info.id;
148 D3DImageCache::Current()->SetImageStage(info.id, 1);
149
150 return (Direct3DDeviceHandler)dev_ptr;
151}
152
153void
154evas_direct3d_free(Direct3DDeviceHandler d3d)
155{
156 DevicePtr *dev_ptr = SelectDevice(d3d);
157
158 DeleteDIBObjects(dev_ptr);
159
160 dev_ptr->context = NULL;
161 dev_ptr->scene = NULL;
162 dev_ptr->image_cache = NULL;
163 dev_ptr->shader_pack = NULL;
164 D3DShaderPack::Current()->Uninitialize();
165 D3DImageCache::Current()->Uninitialize();
166 D3DVertexBufferCache::Current()->Uninitialize();
167 D3DShaderPack::SetCurrent(NULL);
168 D3DImageCache::SetCurrent(NULL);
169 D3DVertexBufferCache::SetCurrent(NULL);
170
171 dev_ptr->device = NULL;
172 delete dev_ptr;
173
174 DBG("uninitialized");
175}
176
177void
178evas_direct3d_resize(Direct3DDeviceHandler d3d, int width, int height)
179{
180 DevicePtr *dev_ptr = SelectDevice(d3d);
181 D3DDevice *device = dev_ptr->device;
182 if (!device->Reset(width, height, -1))
183 {
184 ERR("Failed to resize");
185 return;
186 }
187 if (!D3DImageCache::Current()->ResizeImage(device, width, height,
188 dev_ptr->fonts_buffer_image_id))
189 {
190 WRN("Failed to resize fonts image buffer");
191 }
192 if (dev_ptr->layered)
193 {
194 DeleteDIBObjects(dev_ptr);
195 if (!CreateDIBObjects(dev_ptr))
196 WRN("Failed to create dib objects");
197 }
198}
199
200void
201evas_direct3d_set_fullscreen(Direct3DDeviceHandler d3d, int width, int height, int fullscreen)
202{
203 DevicePtr *dev_ptr = SelectDevice(d3d);
204 D3DDevice *device = dev_ptr->device;
205
206 if (width < 0)
207 width = ::GetSystemMetrics(SM_CXSCREEN);
208 if (height < 0)
209 height = ::GetSystemMetrics(SM_CYSCREEN);
210
211 if (!device->Reset(width, height, fullscreen))
212 {
213 WRN("Failed to resize");
214 return;
215 }
216 if (!D3DImageCache::Current()->ResizeImage(device, width, height,
217 dev_ptr->fonts_buffer_image_id))
218 {
219 WRN("Failed to resize fonts image buffer");
220 }
221
222 if (fullscreen == 0)
223 InvalidateRect(HWND_DESKTOP, NULL, TRUE);
224}
225
226void
227evas_direct3d_set_layered(Direct3DDeviceHandler d3d, int layered,
228 int mask_width, int mask_height, unsigned char *mask)
229{
230 DevicePtr *dev_ptr = SelectDevice(d3d);
231 dev_ptr->layered = (layered != 0);
232 dev_ptr->shape.width = mask_width;
233 dev_ptr->shape.height = mask_height;
234 dev_ptr->shape.mask = mask;
235
236 if (dev_ptr->layered && dev_ptr->dib.data == NULL)
237 CreateDIBObjects(dev_ptr);
238 else if (!dev_ptr->layered)
239 DeleteDIBObjects(dev_ptr);
240}
241
242void
243evas_direct3d_context_color_set(Direct3DDeviceHandler d3d, int r, int g, int b, int a)
244{
245 DevicePtr *dev_ptr = SelectDevice(d3d);
246 dev_ptr->context->color = ((a & 0xff) << 24) | ((r & 0xff) << 16) |
247 ((g & 0xff) << 8) | (b & 0xff);
248}
249
250void
251evas_direct3d_context_set_multiplier(Direct3DDeviceHandler d3d, int r, int g, int b, int a)
252{
253 DevicePtr *dev_ptr = SelectDevice(d3d);
254 dev_ptr->context->color_mul = ((a & 0xff) << 24) | ((r & 0xff) << 16) |
255 ((g & 0xff) << 8) | (b & 0xff);
256}
257
258void
259evas_direct3d_render_all(Direct3DDeviceHandler d3d)
260{
261 DBG("render");
262 assert(d3d != NULL);
263 DevicePtr *dev_ptr = SelectDevice(d3d);
264 D3DDevice *device = dev_ptr->device;
265 D3DScene *scene = dev_ptr->scene;
266
267 if (!device->Begin())
268 return;
269
270 device->GetDevice()->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
271 device->GetDevice()->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
272 device->GetDevice()->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
273
274 //device->GetDevice()->SetSamplerState(1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
275 //device->GetDevice()->SetSamplerState(1, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
276
277 D3DObjectLine::BeginCache();
278 D3DObjectRect::BeginCache();
279 D3DObjectImage::BeginCache();
280 scene->DrawAll(device);
281 D3DObjectLine::EndCache(device);
282 D3DObjectRect::EndCache(device);
283 D3DObjectImage::EndCache(device);
284 D3DObjectFont::EndCache(device);
285
286 device->End();
287
288 if (dev_ptr->layered && !device->GetFullscreen() && dev_ptr->dib.data != NULL)
289 {
290 HDC hdc = GetDC(device->GetWindow());
291 if (hdc != NULL)
292 {
293 POINT dest = {0, 0};
294 POINT src = {0, 0};
295 SIZE client = {device->GetWidth(), device->GetHeight()};
296 BLENDFUNCTION blend_func = {AC_SRC_OVER, 0, 255, AC_SRC_ALPHA};
297
298 if (device->GetRenderData().Length() == client.cx * client.cy)
299 {
300 CopyMemory(dev_ptr->dib.data, device->GetRenderData().Data(),
301 sizeof(DWORD) * client.cx * client.cy);
302 }
303
304 for (int i = 0; i < client.cy; i++)
305 {
306 for (int j = 0; j < client.cx; j++)
307 {
308 int mask_i = int(dev_ptr->shape.height * float(i) / float(client.cy));
309 int mask_j = int(dev_ptr->shape.width * float(j) / float(client.cx));
310 if (mask_i < 0)
311 mask_i = 0;
312 else if (mask_i >= dev_ptr->shape.height)
313 mask_i = dev_ptr->shape.height - 1;
314 if (mask_j < 0)
315 mask_j = 0;
316 else if (mask_j >= dev_ptr->shape.width)
317 mask_j = dev_ptr->shape.width - 1;
318 BYTE mask_b = dev_ptr->shape.mask[mask_i * dev_ptr->shape.width + mask_j];
319 float alpha = float(mask_b) / 255.f;
320
321 dev_ptr->dib.data[j * 4 + 0 + i * 4 * client.cx] = BYTE(float(dev_ptr->dib.data[j * 4 + 0 + i * 4 * client.cx]) * alpha);
322 dev_ptr->dib.data[j * 4 + 1 + i * 4 * client.cx] = BYTE(float(dev_ptr->dib.data[j * 4 + 1 + i * 4 * client.cx]) * alpha);
323 dev_ptr->dib.data[j * 4 + 2 + i * 4 * client.cx] = BYTE(float(dev_ptr->dib.data[j * 4 + 2 + i * 4 * client.cx]) * alpha);
324 dev_ptr->dib.data[j * 4 + 3 + i * 4 * client.cx] = mask_b;
325 }
326 }
327 HGDIOBJ prev_obj = SelectObject(dev_ptr->dib.hdc, dev_ptr->dib.image);
328 ClientToScreen(device->GetWindow(), &dest);
329
330 UpdateLayeredWindow(device->GetWindow(), hdc, &dest, &client,
331 dev_ptr->dib.hdc, &src, 0, &blend_func, ULW_ALPHA);
332
333 SelectObject(dev_ptr->dib.hdc, prev_obj);
334 ReleaseDC(device->GetWindow(), hdc);
335 }
336 }
337 scene->FreeObjects();
338}
339
340void evas_direct3d_line_draw(Direct3DDeviceHandler d3d, int x1, int y1, int x2, int y2)
341{
342 DevicePtr *dev_ptr = SelectDevice(d3d);
343 D3DDevice *device = dev_ptr->device;
344 D3DScene *scene = dev_ptr->scene;
345 D3DContext *context = dev_ptr->context;
346
347 Ref<D3DObjectLine> line = scene->GetFreeObject<D3DObjectLine>();
348 if (line == NULL)
349 {
350 line = new D3DObjectLine();
351 scene->AddObject(line);
352 DBG("New line object (total objects: %d)", scene->GetObjectCount());
353 }
354 else
355 {
356 line->SetFree(false);
357 DBG("Line reused (object: %p)", line.Addr());
358 }
359
360 line->Setup(
361 2.f * float(x1) / float(device->GetWidth()) - 1.f,
362 2.f * (1.f - float(y1) / float(device->GetHeight())) - 1.f,
363 2.f * float(x2) / float(device->GetWidth()) - 1.f,
364 2.f * (1.f - float(y2) / float(device->GetHeight())) - 1.f,
365 context->color);
366}
367
368void evas_direct3d_rectangle_draw(Direct3DDeviceHandler d3d, int x, int y, int w, int h)
369{
370 DevicePtr *dev_ptr = SelectDevice(d3d);
371 D3DDevice *device = dev_ptr->device;
372 D3DScene *scene = dev_ptr->scene;
373 D3DContext *context = dev_ptr->context;
374
375 Ref<D3DObjectRect> rect = scene->GetFreeObject<D3DObjectRect>();
376 if (rect == NULL)
377 {
378 rect = new D3DObjectRect();
379 scene->AddObject(rect);
380 DBG("New rect object (total objects: %d)", scene->GetObjectCount());
381 }
382 else
383 {
384 rect->SetFree(false);
385 DBG("Rect reused (object: %p)", rect.Addr());
386 }
387
388 rect->Setup(
389 2.f * float(x) / float(device->GetWidth()) - 1.f,
390 2.f * (1.f - float(y) / float(device->GetHeight())) - 1.f,
391 2.f * float(w) / float(device->GetWidth()),
392 -2.f * float(h) / float(device->GetHeight()),
393 context->color);
394}
395
396Direct3DImageHandler evas_direct3d_image_load(Direct3DDeviceHandler d3d,
397 const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
398{
399 DevicePtr *dev_ptr = SelectDevice(d3d);
400 D3DDevice *device = dev_ptr->device;
401 D3DScene *scene = dev_ptr->scene;
402
403 RGBA_Image *evas_image = evas_common_load_image_from_file(file, key, lo);
404 if (evas_image == NULL)
405 {
406 WRN("Failed to load image from %s", file);
407 return NULL;
408 }
409 int image_width = evas_image->cache_entry.w;
410 int image_height = evas_image->cache_entry.h;
411 assert(image_width > 0 && image_height > 0);
412
413 D3DImageCache::CacheEntryInfo info;
414 ZeroMemory(&info, sizeof(info));
415 info.id = -1;
416
417 Ref<D3DObjectImage> image = new D3DObjectImage();
418 image->Init(info.u, info.v, info.du, info.dv, info.id,
419 info.width, info.height, evas_image->cache_entry.file);
420 image->SetFree(true);
421 scene->AddObject(image);
422
423 DBG("New image object (total objects: %d)", scene->GetObjectCount());
424
425 ImagePtr *ptr = new ImagePtr;
426 ptr->ref = image;
427 ptr->img = evas_image;
428
429 return (Direct3DImageHandler)ptr;
430}
431
432Direct3DImageHandler evas_direct3d_image_new_from_data(Direct3DDeviceHandler d3d,
433 int w, int h, DWORD *image_data, int alpha, int cspace)
434{
435 DevicePtr *dev_ptr = SelectDevice(d3d);
436 D3DDevice *device = dev_ptr->device;
437 D3DScene *scene = dev_ptr->scene;
438
439 int image_width = w;
440 int image_height = h;
441 assert(image_width > 0 && image_height > 0);
442
443 Ref<D3DObjectImage> image = new D3DObjectImage();
444
445 D3DImageCache::CacheEntryInfo info;
446 ZeroMemory(&info, sizeof(info));
447 if (!D3DImageCache::Current()->InsertImage(device, image_data,
448 image_width, image_height, info))
449 {
450 WRN("Couldnt add image to the cache");
451 return NULL;
452 }
453 char buf[64];
454 sprintf(buf, "%p", image_data);
455 image->Init(info.u, info.v, info.du, info.dv, info.id,
456 info.width, info.height, buf);
457
458 image->SetFree(true);
459 scene->AddObject(image);
460
461 DBG("New image object (total objects: %d)", scene->GetObjectCount());
462
463 ImagePtr *ptr = new ImagePtr;
464 ptr->ref = image;
465 ptr->img = NULL;
466
467 return (Direct3DImageHandler)ptr;
468}
469
470Direct3DImageHandler evas_direct3d_image_new_from_copied_data(Direct3DDeviceHandler d3d,
471 int w, int h, DWORD *image_data, int alpha, int cspace)
472{
473 return evas_direct3d_image_new_from_data(d3d, w, h, image_data, alpha, cspace);
474}
475
476void evas_direct3d_image_free(Direct3DDeviceHandler d3d, Direct3DImageHandler image)
477{
478 DevicePtr *dev_ptr = SelectDevice(d3d);
479 D3DDevice *device = dev_ptr->device;
480 D3DScene *scene = dev_ptr->scene;
481
482 ImagePtr *ptr = (ImagePtr *)image;
483
484 Ref<D3DObjectImage> image_ref = ptr->ref;
485 assert(!image_ref.IsNull());
486 scene->DeleteObject(image_ref);
487
488 delete ptr;
489}
490
491void evas_direct3d_image_data_put(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
492 DWORD *image_data)
493{
494 ImagePtr *ptr = (ImagePtr *)image;
495 Ref<D3DObjectImage> image_ref = ptr->ref;
496 //assert(!image_ref.IsNull());
497 if (image_ref.IsNull())
498 return;
499
500 if (!image_ref->UpdateImageData(image_data))
501 ERR("Failed to update image data");
502}
503
504void evas_direct3d_image_data_get(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
505 int to_write, DATA32 **image_data)
506{
507 ImagePtr *ptr = (ImagePtr *)image;
508 Ref<D3DObjectImage> image_ref = ptr->ref;
509 if (image_ref.IsNull())
510 return;
511 if (image_data == NULL)
512 return;
513 assert(sizeof(DATA32) == sizeof(DWORD));
514 *image_data = (DATA32 *)image_ref->GetImageData();
515}
516
517void evas_direct3d_image_draw(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
518 int src_x, int src_y, int src_w, int src_h,
519 int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
520{
521 ImagePtr *ptr = (ImagePtr *)image;
522 Ref<D3DObjectImage> image_ref = ptr->ref;
523 RGBA_Image *evas_image = ptr->img;
524 DevicePtr *dev_ptr = SelectDevice(d3d);
525 D3DDevice *device = dev_ptr->device;
526 D3DScene *scene = dev_ptr->scene;
527 //assert(!image_ref.IsNull());
528 if (image_ref.IsNull())
529 return;
530
531 if (!image_ref->IsValid())
532 {
533 TArray<D3DObjectImage *> images;
534 scene->GetObjectsOfType<D3DObjectImage>(images);
535 bool found = false;
536 for (int i = 0; i < images.Length(); i++)
537 {
538 if (images[i]->IsValid() &&
539 _stricmp(images[i]->GetSource(), image_ref->GetSource()) == 0)
540 {
541 images[i]->CopyTo(image_ref);
542 found = true;
543 WRN("Image object info reused, source: \"%s\"", image_ref->GetSource());
544 break;
545 }
546 }
547 if (!found && evas_image != NULL)
548 evas_cache_image_load_data(&evas_image->cache_entry);
549 }
550
551 // If the image object wasn't initialized yet
552 if (evas_image != NULL && evas_image->image.data != NULL && !image_ref->IsValid())
553 {
554 D3DImageCache::CacheEntryInfo info;
555 ZeroMemory(&info, sizeof(info));
556 if (!D3DImageCache::Current()->InsertImage(device, (DWORD *)evas_image->image.data,
557 evas_image->cache_entry.w, evas_image->cache_entry.h, info))
558 {
559 WRN("Couldnt add image to the cache");
560 return;
561 }
562 image_ref->Init(info.u, info.v, info.du, info.dv, info.id,
563 info.width, info.height, evas_image->cache_entry.file);
564 }
565
566 // Do not draw invalid objects
567 if (!image_ref->IsValid())
568 {
569 image_ref->SetFree(true);
570 return;
571 }
572
573 image_ref->Setup(
574 2.f * float(dst_x) / float(device->GetWidth()) - 1.f,
575 2.f * (1.f - float(dst_y) / float(device->GetHeight())) - 1.f,
576 2.f * float(dst_w) / float(device->GetWidth()),
577 -2.f * float(dst_h) / float(device->GetHeight()),
578 src_x, src_y, src_w, src_h);
579
580 image_ref->SetupColorFilter(dev_ptr->context->color_mul);
581
582 image_ref->SetFree(false);
583}
584
585void evas_direct3d_image_size_get(Direct3DImageHandler image, int *w, int *h)
586{
587 ImagePtr *ptr = (ImagePtr *)image;
588 if (ptr == NULL)
589 return;
590 if (ptr->img != NULL)
591 {
592 if (w != NULL)
593 *w = ptr->img->cache_entry.w;
594 if (h != NULL)
595 *h = ptr->img->cache_entry.h;
596 }
597 else if (!ptr->ref.IsNull())
598 {
599 if (w != NULL)
600 *w = ptr->ref->GetWidth();
601 if (h != NULL)
602 *h = ptr->ref->GetHeight();
603 }
604}
605
606void evas_direct3d_image_border_set(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
607 int l, int r, int t, int b)
608{
609 ImagePtr *ptr = (ImagePtr *)image;
610 Ref<D3DObjectImage> image_ref = ptr->ref;
611 DevicePtr *dev_ptr = SelectDevice(d3d);
612 D3DDevice *device = dev_ptr->device;
613 if (image_ref.IsNull())
614 return;
615
616 int im_w, im_h;
617 if (ptr->img != NULL)
618 {
619 im_w = ptr->img->cache_entry.w;
620 im_h = ptr->img->cache_entry.h;
621 }
622 else
623 {
624 im_w = image_ref->GetWidth();
625 im_h = image_ref->GetHeight();
626 }
627
628 image_ref->SetupBorder(
629 D3DXVECTOR4(
630 2.f * float(l) / float(device->GetWidth()),
631 -2.f * float(t) / float(device->GetHeight()),
632 2.f * float(r) / float(device->GetWidth()),
633 -2.f * float(b) / float(device->GetHeight())),
634 D3DXVECTOR4(float(l) / float(im_w),
635 float(t) / float(im_h),
636 float(r) / float(im_w),
637 float(b) / float(im_h)));
638}
639
640void evas_direct3d_image_border_get(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
641 int *l, int *r, int *t, int *b)
642{
643 ImagePtr *ptr = (ImagePtr *)image;
644 Ref<D3DObjectImage> image_ref = ptr->ref;
645 DevicePtr *dev_ptr = SelectDevice(d3d);
646 D3DDevice *device = dev_ptr->device;
647 if (image_ref.IsNull())
648 return;
649 assert(l != NULL && r != NULL && b != NULL && t != NULL);
650 *l = (int)(0.5f * image_ref->GetBorderLeft() * device->GetWidth());
651 *r = (int)(0.5f * image_ref->GetBorderRight() * device->GetWidth());
652 *t = (int)(-0.5f * image_ref->GetBorderTop() * device->GetHeight());
653 *b = (int)(-0.5f * image_ref->GetBorderBottom() * device->GetHeight());
654}
655
656
657Direct3DFontGlyphHandler evas_direct3d_font_texture_new(Direct3DDeviceHandler d3d,
658 RGBA_Font_Glyph *fg)
659{
660 DevicePtr *dev_ptr = SelectDevice(d3d);
661 D3DContext *context = dev_ptr->context;
662 D3DDevice *device = dev_ptr->device;
663
664 if (context->font.IsNull())
665 return NULL;
666
667 D3DObjectFont *font = (D3DObjectFont *)context->font.Addr();
668 // This is not reliable
669 //D3DObjectFont::Glyph *glyph = (D3DObjectFont::Glyph *)fg->ext_dat;
670 D3DObjectFont::Glyph *glyph = font->GetGlyph(fg);
671 if (glyph != NULL)
672 {
673 assert(glyph->Compare(fg));
674 return glyph;
675 }
676 glyph = font->AddGlyph(device, fg, fg->glyph_out->bitmap.buffer,
677 fg->glyph_out->bitmap.width, fg->glyph_out->bitmap.rows, fg->glyph_out->bitmap.pitch);
678 return (Direct3DFontGlyphHandler)glyph;
679}
680
681void evas_direct3d_font_texture_free(Direct3DFontGlyphHandler ft)
682{
683 if (ft == NULL)
684 return;
685 D3DObjectFont::Glyph *glyph = (D3DObjectFont::Glyph *)ft;
686 RGBA_Font_Glyph *fg = (RGBA_Font_Glyph *)glyph->Source();
687 fg->ext_dat = NULL;
688}
689
690void evas_direct3d_font_texture_draw(Direct3DDeviceHandler d3d, void *, void *,
691 RGBA_Font_Glyph *fg, int x, int y)
692{
693 DevicePtr *dev_ptr = SelectDevice(d3d);
694 D3DContext *context = dev_ptr->context;
695 D3DDevice *device = dev_ptr->device;
696
697 if (context->font.IsNull())
698 return;
699
700 D3DObjectFont *font = (D3DObjectFont *)context->font.Addr();
701 D3DObjectFont::Glyph *glyph = (D3DObjectFont::Glyph *)fg->ext_dat;
702 if (glyph == NULL)
703 return;
704 assert(glyph->Compare(fg));
705
706 font->SetColor(context->color);
707 font->PushForDraw(glyph, x, y);
708 font->SetFree(false);
709}
710
711void evas_direct3d_select_or_create_font(Direct3DDeviceHandler d3d, void *font)
712{
713 // The Plan
714 // 1. Create D3DObjectFont with source string = "%p" (font)
715 // 2. Or find this object in the scene
716 // 3. On each texture_new call - fill internal texture with glyph, remember the
717 // glyph pointer - we'll use it.
718
719 DevicePtr *dev_ptr = SelectDevice(d3d);
720 D3DContext *context = dev_ptr->context;
721
722 if (!context->font.IsNull() && ((D3DObjectFont *)context->font.Addr())->Compare(font))
723 return;
724
725 D3DScene *scene = dev_ptr->scene;
726
727 static TArray<D3DObjectFont *> fonts;
728 scene->GetObjectsOfType<D3DObjectFont>(fonts);
729 for (int i = 0; i < fonts.Length(); i++)
730 {
731 if (fonts[i]->Compare(font))
732 {
733 context->font = fonts[i];
734 return;
735 }
736 }
737
738 D3DDevice *device = dev_ptr->device;
739
740 assert(dev_ptr->fonts_buffer_image_id >= 0);
741
742 Ref<D3DObjectFont> new_font = new D3DObjectFont(font, dev_ptr->fonts_buffer_image_id);
743 scene->AddObject(new_font);
744 context->font = new_font;
745}
746
747void evas_direct3d_font_free(Direct3DDeviceHandler d3d, void *font)
748{
749 DevicePtr *dev_ptr = SelectDevice(d3d);
750 D3DContext *context = dev_ptr->context;
751 D3DScene *scene = dev_ptr->scene;
752
753 if (context->font.IsNull() || !((D3DObjectFont *)context->font.Addr())->Compare(font))
754 {
755 D3DScene *scene = dev_ptr->scene;
756
757 static TArray<D3DObjectFont *> fonts;
758 scene->GetObjectsOfType<D3DObjectFont>(fonts);
759 for (int i = 0; i < fonts.Length(); i++)
760 {
761 if (fonts[i]->Compare(font))
762 {
763 context->font = fonts[i];
764 break;
765 }
766 }
767 }
768
769 scene->DeleteObject(context->font);
770 context->font = NULL;
771}
772
773
774} // extern "C"
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.cpp
deleted file mode 100644
index 15a801e..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
1
2#include "evas_direct3d_object.h"
3
4D3DObject::D3DObject()
5{
6 _free = false;
7}
8
9D3DObject::~D3DObject()
10{
11}
12
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.h
deleted file mode 100644
index 8c4e6df..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object.h
+++ /dev/null
@@ -1,35 +0,0 @@
1#ifndef __EVAS_DIRECT3D_OBJECT_H__
2#define __EVAS_DIRECT3D_OBJECT_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7
8class D3DDevice;
9
10class D3DObject : virtual public Referenc
11{
12public:
13 D3DObject();
14 virtual ~D3DObject();
15
16 virtual void Draw(D3DDevice *d3d) = 0;
17
18 inline bool IsFree();
19 inline void SetFree(bool state);
20
21private:
22 bool _free;
23};
24
25bool D3DObject::IsFree()
26{
27 return _free;
28}
29
30void D3DObject::SetFree(bool state)
31{
32 _free = state;
33}
34
35#endif // __EVAS_DIRECT3D_OBJECT_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.cpp
deleted file mode 100644
index f072e87..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
1//#define ENABLE_LOG_PRINTF
2
3#include <string.h>
4
5#include "evas_direct3d_object_font.h"
6#include "evas_direct3d_image_cache.h"
7#include "evas_direct3d_device.h"
8#include "evas_direct3d_shader_pack.h"
9#include "evas_direct3d_vertex_buffer_cache.h"
10
11D3DObjectFont::Cache D3DObjectFont::_cache;
12
13D3DObjectFont::D3DObjectFont(void *source, int image_id)
14{
15 _image_id = image_id;
16 _color = 0xff000000;
17 _source = source;
18 D3DImageCache::Current()->AddImageUser(_image_id);
19}
20
21D3DObjectFont::~D3DObjectFont()
22{
23 D3DImageCache::Current()->RemoveImageUser(_image_id);
24}
25
26void D3DObjectFont::CopyTo(D3DObjectFont *font)
27{
28 assert(font != NULL);
29 font->_image_id = _image_id;
30 font->_source = _source;
31 D3DImageCache::Current()->AddImageUser(font->_image_id);
32 _glyphs.CopyTo(font->_glyphs);
33}
34
35void D3DObjectFont::BeginCache(int image_id)
36{
37 if (_cache.enabled)
38 return;
39 int w = D3DImageCache::Current()->GetImageWidth(image_id);
40 int h = D3DImageCache::Current()->GetImageHeight(image_id);
41 _cache.enabled = true;
42 _cache.image_id = image_id;
43 _cache.data.Allocate(w * h);
44
45 if (_cache.dirty.Length() != h)
46 {
47 _cache.dirty.Allocate(h);
48 memset(_cache.dirty.Data(), 0xff, sizeof(POINT) * _cache.dirty.Length());
49 }
50
51 ZeroMemory(_cache.data.Data(), sizeof(DWORD) * _cache.data.Length());
52 _cache.width = w;
53 _cache.height = h;
54
55 _cache.valid_rect.left = w;
56 _cache.valid_rect.right = 0;
57 _cache.valid_rect.top = h;
58 _cache.valid_rect.bottom = 0;
59}
60
61void D3DObjectFont::Draw(D3DDevice *d3d)
62{
63 assert(_cache.image_id == _image_id);
64}
65
66void D3DObjectFont::EndCache(D3DDevice *d3d)
67{
68 if (!_cache.enabled)
69 return;
70 _cache.enabled = false;
71
72 if (_cache.data.Length() == 0)
73 return;
74
75 D3DImageCache::CacheEntryInfo info;
76 ZeroMemory(&info, sizeof(info));
77 info.id = _cache.image_id;
78 info.width = _cache.width;
79 info.height = _cache.height;
80 if (!D3DImageCache::Current()->UpdateImageDataWithDirtyInfo(info,
81 _cache.data.Data(), _cache.dirty.Data()))
82 //if (!D3DImageCache::Current()->UpdateImageDataDiscard(info, _cache.data.Data()));
83 {
84 return;
85 }
86
87 D3DShaderPack::Current()->SetVDecl(d3d, D3DShaderPack::VDECL_XYUV);
88 D3DShaderPack::Current()->SetVS(d3d, D3DShaderPack::VS_COPY_UV);
89 D3DShaderPack::Current()->SetPS(d3d, D3DShaderPack::PS_TEX_2); // This image is in s1
90 D3DImageCache::Current()->SelectImageToDevice(d3d, _cache.image_id);
91
92 const FLOAT half_x = 0.5f / FLOAT(_cache.width);
93 const FLOAT half_y = 0.5f / FLOAT(_cache.height);
94 FLOAT left = FLOAT(_cache.valid_rect.left - 5) / FLOAT(_cache.width),
95 top = FLOAT(_cache.valid_rect.top - 5) / FLOAT(_cache.height),
96 right = FLOAT(_cache.valid_rect.right + 5) / FLOAT(_cache.width),
97 bottom = FLOAT(_cache.valid_rect.bottom + 5) / FLOAT(_cache.height);
98
99 const Vertex data[6] = {
100 {left * 2 - 1, 2 * (1 - bottom) - 1, left + half_x, bottom + half_y},
101 {left * 2 - 1, 2 * (1 - top) - 1, left + half_x, top + half_y},
102 {right * 2 - 1, 2 * (1 - bottom) - 1, right + half_x, bottom + half_y},
103 {right * 2 - 1, 2 * (1 - bottom) - 1, right + half_x, bottom + half_y},
104 {left * 2 - 1, 2 * (1 - top) - 1, left + half_x, top + half_y},
105 {right * 2 - 1, 2 * (1 - top) - 1, right + half_x, top + half_y}};
106
107 d3d->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, data, sizeof(Vertex));
108
109 //D3DImageCache::Current()->UpdateImageDataWithDirtyInfo(info, NULL, _cache.dirty.Data());
110}
111
112D3DObjectFont::Glyph *D3DObjectFont::GetGlyph(void *source)
113{
114 if (_image_id < 0)
115 {
116 WRN("Font is not initialized");
117 return NULL;
118 }
119 for (int i = 0; i < _glyphs.Length(); i++)
120 {
121 if (_glyphs[i]->Compare(source))
122 return _glyphs[i];
123 }
124 return NULL;
125}
126
127D3DObjectFont::Glyph *D3DObjectFont::AddGlyph(D3DDevice *d3d, void *source,
128 BYTE *data8, int width, int height, int pitch)
129{
130 if (_image_id < 0)
131 {
132 WRN("Font is not initialized");
133 return NULL;
134 }
135 for (int i = 0; i < _glyphs.Length(); i++)
136 {
137 if (_glyphs[i]->Compare(source))
138 return _glyphs[i];
139 }
140 Ref<Glyph> glyph = new Glyph(source);
141 glyph->_data.Allocate(width * height);
142 glyph->_width = width;
143 glyph->_height = height;
144
145 for (int i = 0; i < height; i++)
146 CopyMemory(&glyph->_data[i * width], &data8[i * pitch], width);
147
148 Log("Glyph added (%p) (%dx%d)", source, width, height);
149 _glyphs.Add(glyph);
150 return _glyphs.Last()->Addr();
151}
152
153void D3DObjectFont::PushForDraw(Glyph *glyph, int x, int y)
154{
155 BeginCache(_image_id);
156
157 // Uff, I'm not sure about multiple windows...
158
159#define LERP(a, b, t1, t2) (BYTE)(FLOAT(a) * (t1) + FLOAT(b) * (t2))
160
161 Color dc, sc;
162 FLOAT a;
163 sc.color = _color;
164
165 const FLOAT color_alpha = sc.Alpha();
166
167 DWORD *data = _cache.data.Data();
168 BYTE *gdata = glyph->_data.Data();
169 const int glyph_height = glyph->_height;
170 const int cache_height = _cache.height;
171 const int glyph_width = glyph->_width;
172 const int cache_width = _cache.width;
173
174 for (int i = 0, yi = y; i < glyph_height && yi < cache_height; i++, yi++)
175 {
176 if (yi < 0)
177 continue;
178 DWORD *dst = data + ((yi) * cache_width + x);
179 BYTE *src = gdata + (i * glyph_width);
180 POINT *dirty_yi = &_cache.dirty[yi];
181
182 if (_cache.valid_rect.top > yi)
183 _cache.valid_rect.top = yi;
184 if (_cache.valid_rect.bottom < yi)
185 _cache.valid_rect.bottom = yi;
186
187 for (int j = 0, xj = x; j < glyph_width && xj < cache_width; j++, xj++, dst++, src++)
188 {
189 if (xj < 0)
190 continue;
191 BYTE glyph_pix = *src;
192 if (glyph_pix == 0)
193 continue;
194
195 if (dirty_yi->x >= 0 && dirty_yi->y < 0)
196 dirty_yi->x = 0, dirty_yi->y = cache_width - 1;
197 else
198 {
199 if (dirty_yi->x < 0 || dirty_yi->x > xj)
200 dirty_yi->x = xj;
201 if (dirty_yi->y < 0 || dirty_yi->y < xj)
202 dirty_yi->y = xj;
203 }
204
205 if (_cache.valid_rect.left > xj)
206 _cache.valid_rect.left = xj;
207 if (_cache.valid_rect.right < xj)
208 _cache.valid_rect.right = xj;
209
210 if (glyph_pix == 0xff && sc.a == 0xff)
211 {
212 *dst = sc.color;
213 continue;
214 }
215 a = FLOAT(glyph_pix) * color_alpha / 255.f;
216 if (*dst == 0)
217 {
218 *dst = (BYTE(255.f * a) << 24) | (0x00ffffff & sc.color);
219 continue;
220 }
221
222 dc.color = *dst;
223
224 dc.r = LERP(dc.r, sc.r, 1 - a, a);
225 dc.g = LERP(dc.g, sc.g, 1 - a, a);
226 dc.b = LERP(dc.b, sc.b, 1 - a, a);
227 dc.a = max(dc.a, BYTE(255.f * a));
228 *dst = dc.color;
229 }
230 }
231}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.h
deleted file mode 100644
index e8c0196..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_font.h
+++ /dev/null
@@ -1,113 +0,0 @@
1#ifndef __EVAS_DIRECT3D_OBJECT_FONT_H__
2#define __EVAS_DIRECT3D_OBJECT_FONT_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "array.h"
8
9#include "evas_direct3d_object.h"
10
11class D3DObjectFont : public D3DObject
12{
13public:
14
15 class Glyph : public Referenc
16 {
17 public:
18 Glyph(void *source)
19 : _source(source), _width(0), _height(0) {};
20
21 bool Compare(void *source)
22 {
23 return (_source == source);
24 }
25 void *Source()
26 {
27 return _source;
28 }
29
30 private:
31 friend class D3DObjectFont;
32 void *_source;
33 TArray<BYTE> _data;
34 int _width;
35 int _height;
36 };
37
38public:
39 D3DObjectFont(void *source, int image_id);
40 ~D3DObjectFont();
41
42 inline bool Compare(void *source);
43 void CopyTo(D3DObjectFont *font);
44
45 virtual void Draw(D3DDevice *d3d);
46 static void EndCache(D3DDevice *d3d);
47
48 inline void SetColor(DWORD color);
49
50 Glyph *GetGlyph(void *source);
51 Glyph *AddGlyph(D3DDevice *d3d, void *source, BYTE *data8, int width, int height, int pitch);
52 void PushForDraw(Glyph *glyph, int x, int y);
53
54protected:
55 static void BeginCache(int image_id);
56
57private:
58 struct Vertex
59 {
60 FLOAT x, y;
61 FLOAT u, v;
62 };
63
64 struct Color
65 {
66 union
67 {
68 struct
69 {
70 BYTE b, g, r, a;
71 };
72 DWORD color;
73 };
74
75 FLOAT Alpha() { return FLOAT(a) / 255.f; }
76 };
77
78 class Cache
79 {
80 public:
81 Cache()
82 : enabled(false), image_id(-1), width(0), height(0) {};
83 public:
84 TArray<DWORD> data;
85 TArray<POINT> dirty; // Start, End
86 bool enabled;
87 int image_id;
88 int width;
89 int height;
90 RECT valid_rect;
91 };
92
93private:
94 DWORD _color;
95 void *_source;
96 int _image_id;
97
98 TArray<Ref<Glyph> > _glyphs;
99
100 static Cache _cache;
101};
102
103bool D3DObjectFont::Compare(void *source)
104{
105 return (_source == source);
106}
107
108void D3DObjectFont::SetColor(DWORD color)
109{
110 _color = color;
111}
112
113#endif // __EVAS_DIRECT3D_OBJECT_FONT_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.cpp
deleted file mode 100644
index 3bfbe1e..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
1//#define ENABLE_LOG_PRINTF
2
3#include <string.h>
4
5#include <d3dx9.h>
6
7#include "evas_direct3d_object_image.h"
8#include "evas_direct3d_image_cache.h"
9#include "evas_direct3d_device.h"
10#include "evas_direct3d_shader_pack.h"
11#include "evas_direct3d_vertex_buffer_cache.h"
12
13TArray<D3DObjectImage *> D3DObjectImage::_cache;
14bool D3DObjectImage::_cache_enabled = false;
15
16D3DObjectImage::D3DObjectImage()
17{
18 _x = _y = _w = _h = 0;
19 _sx = _sy = _sw = _sh = 0;
20 _u = _v = _du = _dv = 0;
21 _image_id = -1;
22 _width = _height = 0;
23 _source[0] = 0;
24 _color = 0xffffffff;
25 _cache_i = 0;
26 _border = D3DXVECTOR4(0, 0, 0, 0);
27 _uvborder = D3DXVECTOR4(0, 0, 0, 0);
28 _with_border = false;
29 _dirty = false;
30 _image_data_updated = false;
31}
32
33D3DObjectImage::~D3DObjectImage()
34{
35 D3DImageCache::Current()->RemoveImageUser(_image_id);
36}
37
38void D3DObjectImage::CopyTo(D3DObjectImage *image)
39{
40 assert(image != NULL);
41 image->_u = _u;
42 image->_v = _v;
43 image->_du = _du;
44 image->_dv = _dv;
45 image->_image_id = _image_id;
46 image->_width = _width;
47 image->_height = _height;
48 CopyMemory(image->_source, _source, sizeof(_source));
49 D3DImageCache::Current()->AddImageUser(image->_image_id);
50}
51
52void D3DObjectImage::BeginCache()
53{
54 _cache.Allocate(0);
55 _cache_enabled = true;
56}
57
58void D3DObjectImage::EndCache(D3DDevice *d3d)
59{
60 if (!_cache_enabled || _cache.Length() == 0)
61 return;
62 D3DShaderPack::Current()->SetVDecl(d3d, D3DShaderPack::VDECL_XYUVC);
63 D3DShaderPack::Current()->SetVS(d3d, D3DShaderPack::VS_COPY_UV_COLOR);
64 D3DShaderPack::Current()->SetPS(d3d, D3DShaderPack::PS_TEX_COLOR_FILTER);
65
66 static TArray<Vertex> sorted;
67 static TArray<GroupDesc> groups;
68 sorted.Allocate(0);
69 groups.Allocate(0);
70
71 bool found = true;
72 while (found)
73 {
74 found = false;
75 int cur_id = -1;
76 int num = 0;
77 for (int i = 0; i < _cache.Length(); i++)
78 {
79 // We have processed this
80 if (_cache[i]->_image_id < 0)
81 continue;
82 found = true;
83 if (cur_id < 0)
84 cur_id = _cache[i]->_image_id;
85 if (_cache[i]->_image_id == cur_id)
86 {
87 if (!_cache[i]->_with_border)
88 {
89 Vertex *data = _cache[i]->MakeData();
90 sorted.Add(data[0]);
91 sorted.Add(data[1]);
92 sorted.Add(data[2]);
93 sorted.Add(data[3]);
94 sorted.Add(data[4]);
95 sorted.Add(data[5]);
96 _cache[i]->_image_id = -_cache[i]->_image_id - 1;
97 num++;
98 }
99 else
100 {
101 Vertex *data = _cache[i]->MakeDataBorder();
102 int last_len = sorted.Length();
103 sorted.Allocate(last_len + 6 * 9);
104 CopyMemory(&sorted[last_len], data, sizeof(Vertex) * 6 * 9);
105 _cache[i]->_image_id = -_cache[i]->_image_id - 1;
106 num += 9;
107 }
108 }
109 }
110 if (num > 0)
111 {
112 GroupDesc gd = {num, cur_id};
113 groups.Add(gd);
114 }
115 }
116
117 // Restore ids
118 for (int i = 0; i < _cache.Length(); i++)
119 _cache[i]->_image_id = -_cache[i]->_image_id - 1;
120
121 D3DVertexBufferCache::CacheEntryInfo ce_info;
122 if (!D3DVertexBufferCache::Current()->InitBuffer(d3d, (BYTE *)sorted.Data(),
123 sorted.Length() * sizeof(Vertex), ce_info))
124 {
125 return;
126 }
127 D3DVertexBufferCache::Current()->SelectBufferToDevice(d3d, ce_info.id, sizeof(Vertex));
128
129 HRESULT hr;
130 for (int i = 0, cur = 0; i < groups.Length(); i++)
131 {
132 if (FAILED(hr = D3DImageCache::Current()->SelectImageToDevice(d3d, groups[i].id)))
133 {
134 Log("Failed to select texture: %X", (DWORD)hr);
135 }
136// d3d->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, groups[i].num * 2,
137// &sorted[cur], sizeof(Vertex));
138 d3d->GetDevice()->DrawPrimitive(D3DPT_TRIANGLELIST, cur, groups[i].num * 2);
139 cur += groups[i].num * 6;
140 }
141
142 DBG("Image cache drawn: %d items, %d groups", _cache.Length(), groups.Length());
143 _cache_enabled = false;
144}
145
146void D3DObjectImage::Draw(D3DDevice *d3d)
147{
148 _dirty = false;
149
150 DBG("Image draw: (%.3f, %.3f, %.3f, %.3f)", _x, _y, _w, _h);
151
152 if (_cache_enabled)
153 {
154 _cache.Add(this);
155 _cache_i = _cache.Length() - 1;
156 return;
157 }
158
159 D3DShaderPack::Current()->SetVDecl(d3d, D3DShaderPack::VDECL_XYUVC);
160 D3DShaderPack::Current()->SetVS(d3d, D3DShaderPack::VS_COPY_UV_COLOR);
161 D3DShaderPack::Current()->SetPS(d3d, D3DShaderPack::PS_TEX_COLOR_FILTER);
162 D3DImageCache::Current()->SelectImageToDevice(d3d, _image_id);
163
164 if (!_with_border)
165 d3d->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, MakeData(), sizeof(Vertex));
166 else
167 d3d->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 18, MakeDataBorder(), sizeof(Vertex));
168}
169
170void D3DObjectImage::Init(FLOAT u, FLOAT v, FLOAT du, FLOAT dv,
171 int image_id, int width, int height, const char *source)
172{
173 _u = u;
174 _v = v;
175 _du = du;
176 _dv = dv;
177 _image_id = image_id;
178 _width = width;
179 _height = height;
180#ifdef __MINGW32__
181 strncpy(_source, source, sizeof(_source) - 1);
182#else
183 strncpy_s(_source, sizeof(_source), source, sizeof(_source) - 1);
184#endif // ! __MINGW32__
185}
186
187void D3DObjectImage::Setup(FLOAT x, FLOAT y, FLOAT w, FLOAT h,
188 int sx, int sy, int sw, int sh)
189{
190 if (!_dirty)
191 {
192 _x = 1.f;
193 _y = -1.f;
194 _w = _h = 0.f;
195 _sx = _sy = 1.f;
196 _sw = _sh = 0.f;
197 }
198
199 if (!_with_border)
200 {
201 _x = x;
202 _y = y;
203 _w = w;
204 _h = h;
205 _sx = FLOAT(sx) / FLOAT(_width);
206 _sy = FLOAT(sy) / FLOAT(_height);
207 _sw = FLOAT(sw) / FLOAT(_width);
208 _sh = FLOAT(sh) / FLOAT(_height);
209 }
210 else
211 {
212 _x = min(_x, x);
213 _y = max(_y, y);
214 _w += w / 3;
215 _h += h / 3;
216 _sx = min(_sx, FLOAT(sx) / FLOAT(_width));
217 _sy = min(_sy, FLOAT(sy) / FLOAT(_height));
218 _sw += FLOAT(sw) / (3.f * FLOAT(_width));
219 _sh += FLOAT(sh) / (3.f * FLOAT(_height));
220 }
221 _dirty = true;
222
223}
224
225void D3DObjectImage::SetupColorFilter(DWORD color)
226{
227 //_color = ((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
228 _color = color;
229}
230
231D3DObjectImage::Vertex *D3DObjectImage::MakeData()
232{
233 //FLOAT z = (FLOAT(_cache_i) + 0.5f) / _cache.Length();
234 Vertex data[6] = {
235 {_x, _y, _u + _sx * _du, _v + _sy * _dv, _color},
236 {_x + _w, _y, _u + (_sx + _sw) * _du, _v + _sy * _dv, _color},
237 {_x, _y + _h, _u + _sx * _du, _v + (_sy + _sh) * _dv, _color},
238 {_x, _y + _h, _u + _sx * _du, _v + (_sy + _sh) * _dv, _color},
239 {_x + _w, _y, _u + (_sx + _sw) * _du, _v + _sy * _dv, _color},
240 {_x + _w, _y + _h, _u + (_sx + _sw) * _du, _v + (_sy + _sh) * _dv, _color}};
241 CopyMemory(_data, data, sizeof(data));
242 return _data;
243}
244
245D3DObjectImage::Vertex *D3DObjectImage::MakeDataBorder()
246{
247 //FLOAT z = (FLOAT(_cache_i) + 0.5f) / _cache.Length();
248 if (_border.x + _border.z > _w)
249 _border.x = _border.z = _w / 2;
250 if (_border.y + _border.w < _h)
251 _border.y = _border.w = _h / 2;
252
253 FLOAT ul, ut, ur, ub;
254 ul = _uvborder.x * _du;
255 ut = _uvborder.y * _dv;
256 ur = _uvborder.z * _du;
257 ub = _uvborder.w * _dv;
258 FLOAT bl, bt, br, bb;
259 bl = _border.x;
260 bt = _border.y;
261 br = _border.z;
262 bb = _border.w;
263
264 const FLOAT half_x = 0.5f * _du / FLOAT(_width);
265 const FLOAT half_y = 0.5f * _dv / FLOAT(_height);
266
267 // Diagonal knots
268 Vertex data[4] = {
269 {_x, _y, _u + _sx * _du + half_x, _v + _sy * _dv + half_y, _color},
270 {_x + bl, _y + bt, _u + ul + _sx * _du, _v + ut + _sy * _dv, _color},
271 {_x + _w - br, _y + _h - bb, _u - ur + (_sx + _sw) * _du, _v - ub + (_sy + _sh) * _dv, _color},
272 {_x + _w, _y + _h, _u + (_sx + _sw) * _du - half_x, _v + (_sy + _sh) * _dv - half_y, _color}};
273
274 static const int yshift[6] = {0, 0, 1, 1, 0, 1};
275 static const int xshift[6] = {0, 1, 0, 0, 1, 1};
276
277 int vi = 0;
278 for (int i = 0; i < 3; i++)
279 {
280 for (int j = 0; j < 3; j++)
281 {
282 for (int v = 0; v < 6; v++)
283 {
284 _data[vi].x = data[xshift[v] + j].x;
285 _data[vi].y = data[yshift[v] + i].y;
286 _data[vi].u = data[xshift[v] + j].u;
287 _data[vi].v = data[yshift[v] + i].v;
288 _data[vi].col = data[0].col;
289 vi++;
290 }
291 }
292 }
293
294 return _data;
295}
296
297void D3DObjectImage::SetupBorder(const D3DXVECTOR4 &world_border, const D3DXVECTOR4 &pix_border)
298{
299 _border = world_border;
300 _uvborder = pix_border;
301 _with_border = (_border.x > 0.0001f || _border.y > 0.0001f ||
302 _border.z > 0.0001f || _border.w > 0.0001f);
303}
304
305bool D3DObjectImage::UpdateImageData(DWORD *image_data)
306{
307 D3DImageCache::CacheEntryInfo info = {_image_id, _width, _height, _u, _v, _du, _dv};
308 _image_data_updated = false;
309 return D3DImageCache::Current()->UpdateImageData(info, image_data);
310}
311
312DWORD *D3DObjectImage::GetImageData()
313{
314 if (_image_data_updated)
315 return _image_data.Data();
316 _image_data_updated = true;
317 D3DImageCache::CacheEntryInfo info = {_image_id, _width, _height, _u, _v, _du, _dv};
318 D3DImageCache::Current()->GetImageData(info, _image_data);
319 return _image_data.Data();
320}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h
deleted file mode 100644
index 379207b..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h
+++ /dev/null
@@ -1,127 +0,0 @@
1#ifndef __EVAS_DIRECT3D_OBJECT_IMAGE_H__
2#define __EVAS_DIRECT3D_OBJECT_IMAGE_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "array.h"
8
9#include "evas_direct3d_object.h"
10
11class D3DObjectImage : public D3DObject
12{
13public:
14 D3DObjectImage();
15 virtual ~D3DObjectImage();
16
17 void CopyTo(D3DObjectImage *image);
18
19 static void BeginCache();
20 virtual void Draw(D3DDevice *d3d);
21 static void EndCache(D3DDevice *d3d);
22
23 void Init(FLOAT u, FLOAT v, FLOAT du, FLOAT dv, int image_id,
24 int width, int height, const char *source);
25 void Setup(FLOAT x, FLOAT y, FLOAT w, FLOAT h,
26 int sx, int sy, int sw, int sh);
27 void SetupColorFilter(DWORD color);
28 void SetupBorder(const D3DXVECTOR4 &world_border, const D3DXVECTOR4 &pix_border);
29
30 inline bool IsValid();
31 inline const char *GetSource();
32 inline int GetWidth();
33 inline int GetHeight();
34 inline FLOAT GetBorderLeft();
35 inline FLOAT GetBorderRight();
36 inline FLOAT GetBorderTop();
37 inline FLOAT GetBorderBottom();
38
39 bool UpdateImageData(DWORD *image_data);
40 DWORD *GetImageData();
41
42private:
43 struct Vertex
44 {
45 FLOAT x, y;
46 FLOAT u, v;
47 D3DCOLOR col;
48 };
49
50 struct GroupDesc
51 {
52 int num;
53 int id;
54 };
55
56private:
57 Vertex *MakeData();
58 Vertex *MakeDataBorder();
59
60private:
61 FLOAT _x, _y, _w, _h;
62 FLOAT _sx, _sy, _sw, _sh;
63 D3DXVECTOR4 _border;
64 D3DXVECTOR4 _uvborder;
65
66 FLOAT _u, _v, _du, _dv;
67 int _image_id;
68 int _width, _height;
69
70 D3DCOLOR _color;
71 int _cache_i;
72 bool _with_border;
73 bool _dirty;
74
75 TArray<DWORD> _image_data;
76 bool _image_data_updated;
77
78 char _source[256];
79
80 Vertex _data[54];
81
82 static TArray<D3DObjectImage *> _cache;
83 static bool _cache_enabled;
84};
85
86bool D3DObjectImage::IsValid()
87{
88 return _image_id >= 0 && _width > 0 && _height > 0;
89}
90
91const char *D3DObjectImage::GetSource()
92{
93 return _source;
94}
95
96int D3DObjectImage::GetWidth()
97{
98 return _width;
99}
100
101int D3DObjectImage::GetHeight()
102{
103 return _height;
104}
105
106FLOAT D3DObjectImage::GetBorderLeft()
107{
108 return _border.x;
109}
110
111FLOAT D3DObjectImage::GetBorderRight()
112{
113 return _border.z;
114}
115
116FLOAT D3DObjectImage::GetBorderTop()
117{
118 return _border.y;
119}
120
121FLOAT D3DObjectImage::GetBorderBottom()
122{
123 return _border.w;
124}
125
126
127#endif // __EVAS_DIRECT3D_OBJECT_IMAGE_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.cpp
deleted file mode 100644
index 9442243..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
1
2#include "evas_direct3d_object_line.h"
3#include "evas_direct3d_device.h"
4#include "evas_direct3d_shader_pack.h"
5
6TArray<D3DObjectLine::Vertex> D3DObjectLine::_cache;
7bool D3DObjectLine::_cache_enabled = false;
8
9D3DObjectLine::D3DObjectLine()
10{
11 _x1 = _y1 = 0;
12 _x2 = _y2 = 0;
13}
14
15void D3DObjectLine::BeginCache()
16{
17 _cache.Allocate(0);
18 _cache_enabled = true;
19}
20
21void D3DObjectLine::EndCache(D3DDevice *d3d)
22{
23 if (!_cache_enabled || _cache.Length() == 0)
24 return;
25 D3DShaderPack::Current()->SetVDecl(d3d, D3DShaderPack::VDECL_XYC);
26 D3DShaderPack::Current()->SetVS(d3d, D3DShaderPack::VS_COPY_COLOR);
27 D3DShaderPack::Current()->SetPS(d3d, D3DShaderPack::PS_COLOR);
28 d3d->GetDevice()->DrawPrimitiveUP(D3DPT_LINELIST, _cache.Length() / 2,
29 _cache.Data(), sizeof(Vertex));
30
31 DBG("Line cache drawn: %d items", _cache.Length() / 2);
32 _cache_enabled = false;
33}
34
35void D3DObjectLine::Draw(D3DDevice *d3d)
36{
37 Vertex data[2] = {{_x1, _y1, _color}, {_x2, _y2, _color}};
38
39 if (!_cache_enabled)
40 {
41 D3DShaderPack::Current()->SetVDecl(d3d, D3DShaderPack::VDECL_XYC);
42 D3DShaderPack::Current()->SetVS(d3d, D3DShaderPack::VS_COPY_COLOR);
43 D3DShaderPack::Current()->SetPS(d3d, D3DShaderPack::PS_COLOR);
44 d3d->GetDevice()->DrawPrimitiveUP(D3DPT_LINELIST, 1, data, sizeof(Vertex));
45 }
46 else
47 {
48 _cache.Add(data[0]);
49 _cache.Add(data[1]);
50 }
51}
52
53void D3DObjectLine::Setup(FLOAT x1, FLOAT y1, FLOAT x2, FLOAT y2, DWORD color)
54{
55 _x1 = x1;
56 _y1 = y1;
57 _x2 = x2;
58 _y2 = y2;
59 _color = color;
60}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.h
deleted file mode 100644
index 0e5d807..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_line.h
+++ /dev/null
@@ -1,37 +0,0 @@
1#ifndef __EVAS_DIRECT3D_OBJECT_LINE_H__
2#define __EVAS_DIRECT3D_OBJECT_LINE_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "array.h"
8
9#include "evas_direct3d_object.h"
10
11class D3DObjectLine : public D3DObject
12{
13public:
14 D3DObjectLine();
15
16 static void BeginCache();
17 virtual void Draw(D3DDevice *d3d);
18 static void EndCache(D3DDevice *d3d);
19
20 void Setup(FLOAT x1, FLOAT y1, FLOAT x2, FLOAT y2, DWORD color);
21
22private:
23 FLOAT _x1, _y1, _x2, _y2;
24 DWORD _color;
25
26private:
27 struct Vertex
28 {
29 FLOAT x, y;
30 DWORD color;
31 };
32
33 static TArray<Vertex> _cache;
34 static bool _cache_enabled;
35};
36
37#endif // __EVAS_DIRECT3D_OBJECT_LINE_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.cpp
deleted file mode 100644
index ebdd22b..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
1#include "evas_direct3d_object_rect.h"
2#include "evas_direct3d_device.h"
3#include "evas_direct3d_shader_pack.h"
4
5TArray<D3DObjectRect::Vertex> D3DObjectRect::_cache;
6bool D3DObjectRect::_cache_enabled = false;
7
8D3DObjectRect::D3DObjectRect()
9{
10 _x = _y = 0;
11 _w = _h = 0;
12}
13
14void D3DObjectRect::BeginCache()
15{
16 _cache.Allocate(0);
17 _cache_enabled = true;
18}
19
20void D3DObjectRect::EndCache(D3DDevice *d3d)
21{
22 if (!_cache_enabled || _cache.Length() == 0)
23 return;
24 D3DShaderPack::Current()->SetVDecl(d3d, D3DShaderPack::VDECL_XYC);
25 D3DShaderPack::Current()->SetVS(d3d, D3DShaderPack::VS_COPY_COLOR);
26 D3DShaderPack::Current()->SetPS(d3d, D3DShaderPack::PS_COLOR);
27 d3d->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, _cache.Length() / 3,
28 _cache.Data(), sizeof(Vertex));
29
30 DBG("Rect cache drawn: %d items", _cache.Length() / 6);
31 _cache_enabled = false;
32}
33
34void D3DObjectRect::Draw(D3DDevice *d3d)
35{
36 Vertex data[6] = {
37 {_x, _y, _color}, {_x + _w, _y, _color}, {_x, _y + _h, _color},
38 {_x, _y + _h, _color}, {_x + _w, _y, _color}, {_x + _w, _y + _h, _color}};
39
40 if (!_cache_enabled)
41 {
42 D3DShaderPack::Current()->SetVDecl(d3d, D3DShaderPack::VDECL_XYC);
43 D3DShaderPack::Current()->SetVS(d3d, D3DShaderPack::VS_COPY_COLOR);
44 D3DShaderPack::Current()->SetPS(d3d, D3DShaderPack::PS_COLOR);
45 d3d->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 2, data, sizeof(Vertex));
46 }
47 else
48 {
49 _cache.Add(data[0]);
50 _cache.Add(data[1]);
51 _cache.Add(data[2]);
52 _cache.Add(data[3]);
53 _cache.Add(data[4]);
54 _cache.Add(data[5]);
55 }
56}
57
58void D3DObjectRect::Setup(FLOAT x, FLOAT y, FLOAT w, FLOAT h, DWORD color)
59{
60 _x = x;
61 _y = y;
62 _w = w;
63 _h = h;
64 _color = color;
65}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.h
deleted file mode 100644
index f7ef084..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_rect.h
+++ /dev/null
@@ -1,37 +0,0 @@
1#ifndef __EVAS_DIRECT3D_OBJECT_RECT_H__
2#define __EVAS_DIRECT3D_OBJECT_RECT_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "array.h"
8
9#include "evas_direct3d_object.h"
10
11class D3DObjectRect : public D3DObject
12{
13public:
14 D3DObjectRect();
15
16 static void BeginCache();
17 virtual void Draw(D3DDevice *d3d);
18 static void EndCache(D3DDevice *d3d);
19
20 void Setup(FLOAT x, FLOAT y, FLOAT w, FLOAT h, DWORD color);
21
22private:
23 FLOAT _x, _y, _w, _h;
24 DWORD _color;
25
26private:
27 struct Vertex
28 {
29 FLOAT x, y;
30 DWORD color;
31 };
32
33 static TArray<Vertex> _cache;
34 static bool _cache_enabled;
35};
36
37#endif // __EVAS_DIRECT3D_OBJECT_RECT_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.cpp
deleted file mode 100644
index b171fc0..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
1
2#include "evas_direct3d_scene.h"
3
4D3DScene::D3DScene()
5{
6}
7
8void D3DScene::FreeObjects()
9{
10 for (int i = 0; i < _objects.Length(); i++)
11 _objects[i]->SetFree(true);
12}
13
14void D3DScene::DrawAll(D3DDevice *d3d)
15{
16 for (int i = 0; i < _objects.Length(); i++)
17 {
18 if (!_objects[i]->IsFree())
19 _objects[i]->Draw(d3d);
20 }
21}
22
23void D3DScene::DeleteObject(D3DObject *object)
24{
25 for (int i = 0; i < _objects.Length(); i++)
26 {
27 if (_objects[i].Addr() == object)
28 {
29 _objects.Replace(i);
30 return;
31 }
32 }
33}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.h
deleted file mode 100644
index e2f5f94..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_scene.h
+++ /dev/null
@@ -1,63 +0,0 @@
1#ifndef __EVAS_DIRECT3D_SCENE_H__
2#define __EVAS_DIRECT3D_SCENE_H__
3
4#include "evas_engine.h"
5
6#include <assert.h>
7#include <typeinfo>
8
9#include "ref.h"
10#include "array.h"
11
12#include "evas_direct3d_object.h"
13
14class D3DDevice;
15
16class D3DScene : virtual public Referenc
17{
18public:
19 D3DScene();
20
21 void FreeObjects();
22
23 inline void AddObject(D3DObject *object);
24 inline int GetObjectCount();
25 void DeleteObject(D3DObject *object);
26
27 void DrawAll(D3DDevice *d3d);
28
29 template <class T> T *GetFreeObject()
30 {
31 for (int i = 0; i < _objects.Length(); i++)
32 {
33 if (typeid(T) == typeid(*_objects[i].Addr()) && _objects[i]->IsFree())
34 return (T *)_objects[i].Addr();
35 }
36 return NULL;
37 }
38
39 template <class T> void GetObjectsOfType(TArray<T *> &res)
40 {
41 for (int i = 0; i < _objects.Length(); i++)
42 {
43 if (typeid(T) == typeid(*_objects[i].Addr()))
44 res.Add((T *)_objects[i].Addr());
45 }
46 }
47
48private:
49 TArray<Ref<D3DObject> > _objects;
50};
51
52void D3DScene::AddObject(D3DObject *object)
53{
54 assert(object != NULL);
55 _objects.Add(object);
56}
57
58int D3DScene::GetObjectCount()
59{
60 return _objects.Length();
61}
62
63#endif // __EVAS_DIRECT3D_SCENE_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.cpp
deleted file mode 100644
index d9c868f..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.cpp
+++ /dev/null
@@ -1,344 +0,0 @@
1
2#include <assert.h>
3
4#include <d3dx9.h>
5
6#include "evas_direct3d_shader_pack.h"
7#include "evas_direct3d_device.h"
8
9Ref<D3DShaderPack> D3DShaderPack::_this;
10
11D3DShaderPack::D3DShaderPack()
12{
13}
14
15D3DShaderPack::~D3DShaderPack()
16{
17 Uninitialize();
18}
19
20D3DShaderPack *D3DShaderPack::Current()
21{
22 if (_this.IsNull())
23 _this = new D3DShaderPack();
24 return _this;
25}
26
27void D3DShaderPack::SetCurrent(D3DShaderPack *obj)
28{
29 _this = obj;
30}
31
32
33bool D3DShaderPack::Initialize(D3DDevice *d3d)
34{
35 bool res = true;
36 if (!(res = InitVertexDeclarations(d3d) && res))
37 WRN("Failed to create vdecl set");
38 if (!(res = InitVertexShaders(d3d) && res))
39 WRN("Failed to create vs set");
40 if (!(res = InitPixelShaders(d3d) && res))
41 WRN("Failed to create ps set");
42 return res;
43}
44
45void D3DShaderPack::Uninitialize()
46{
47 for (int i = 0; i < _vdecl.Length(); i++)
48 {
49 if (_vdecl[i] != NULL)
50 {
51 _vdecl[i]->Release();
52 _vdecl[i] = NULL;
53 }
54 }
55
56 for (int i = 0; i < _vs.Length(); i++)
57 {
58 if (_vs[i] != NULL)
59 {
60 _vs[i]->Release();
61 _vs[i] = NULL;
62 }
63 }
64
65 for (int i = 0; i < _ps.Length(); i++)
66 {
67 if (_ps[i] != NULL)
68 {
69 _ps[i]->Release();
70 _ps[i] = NULL;
71 }
72 }
73}
74
75bool D3DShaderPack::InitVertexDeclarations(D3DDevice *d3d)
76{
77 _vdecl.Allocate(VDECL_NUM);
78 _vdecl.Set(NULL);
79
80 LPDIRECT3DVERTEXDECLARATION9 vdecl = NULL;
81 {
82 D3DVERTEXELEMENT9 elements[] = {
83 {0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
84 {0, 8, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0},
85 D3DDECL_END()
86 };
87 if (FAILED(d3d->GetDevice()->CreateVertexDeclaration(elements, &vdecl)))
88 return false;
89 if (vdecl == NULL)
90 return false;
91 }
92 _vdecl[VDECL_XYC] = vdecl;
93 vdecl = NULL;
94 {
95 D3DVERTEXELEMENT9 elements[] = {
96 {0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
97 {0, 8, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
98 D3DDECL_END()
99 };
100 if (FAILED(d3d->GetDevice()->CreateVertexDeclaration(elements, &vdecl)))
101 return false;
102 if (vdecl == NULL)
103 return false;
104 }
105 _vdecl[VDECL_XYUV] = vdecl;
106 vdecl = NULL;
107 {
108 D3DVERTEXELEMENT9 elements[] = {
109 {0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
110 {0, 8, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
111 {0, 16, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0},
112 D3DDECL_END()
113 };
114 if (FAILED(d3d->GetDevice()->CreateVertexDeclaration(elements, &vdecl)))
115 return false;
116 if (vdecl == NULL)
117 return false;
118 }
119 _vdecl[VDECL_XYUVC] = vdecl;
120 vdecl = NULL;
121 {
122 D3DVERTEXELEMENT9 elements[] = {
123 {0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
124 {0, 12, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},
125 {0, 20, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0},
126 D3DDECL_END()
127 };
128 if (FAILED(d3d->GetDevice()->CreateVertexDeclaration(elements, &vdecl)))
129 return false;
130 if (vdecl == NULL)
131 return false;
132 }
133 _vdecl[VDECL_XYZUVC] = vdecl;
134
135 return true;
136}
137
138bool D3DShaderPack::InitVertexShaders(D3DDevice *d3d)
139{
140 _vs.Allocate(VS_NUM);
141 _vs.Set(NULL);
142
143 {
144 char buf[] =
145 "struct VsInput { float2 pos : POSITION; float4 col : COLOR; };\n"
146 "struct VsOutput { float4 pos : POSITION; float4 col : COLOR0; };\n"
147 "VsOutput main(VsInput vs_in) {\n"
148 "VsOutput vs_out;\n"
149 "vs_out.pos = float4(vs_in.pos, 0, 1);\n"
150 "vs_out.col = vs_in.col;\n"
151 "return vs_out;}";
152
153 _vs[VS_COPY_COLOR] = (LPDIRECT3DVERTEXSHADER9)
154 CompileShader(d3d, true, "CopyColor", buf, sizeof(buf) - 1);
155 if (_vs[VS_COPY_COLOR] == NULL)
156 return false;
157 }
158
159 {
160 char buf[] =
161 "struct VsInput { float2 pos : POSITION; float2 tex : TEXCOORD0; };\n"
162 "struct VsOutput { float4 pos : POSITION; float2 tex : TEXCOORD0; };\n"
163 "VsOutput main(VsInput vs_in) {\n"
164 "VsOutput vs_out;\n"
165 "vs_out.pos = float4(vs_in.pos, 0, 1);\n"
166 "vs_out.tex = vs_in.tex;\n"
167 "return vs_out;}";
168
169 _vs[VS_COPY_UV] = (LPDIRECT3DVERTEXSHADER9)
170 CompileShader(d3d, true, "CopyUV", buf, sizeof(buf) - 1);
171 if (_vs[VS_COPY_UV] == NULL)
172 return false;
173 }
174
175 {
176 char buf[] =
177 "struct VsInput { float2 pos : POSITION; float2 tex : TEXCOORD0; float4 col : COLOR; };\n"
178 "struct VsOutput { float4 pos : POSITION; float2 tex : TEXCOORD0; float4 col : COLOR0; };\n"
179 "VsOutput main(VsInput vs_in) {\n"
180 "VsOutput vs_out;\n"
181 "vs_out.pos = float4(vs_in.pos, 0, 1);\n"
182 "vs_out.tex = vs_in.tex;\n"
183 "vs_out.col = vs_in.col;\n"
184 "return vs_out;}";
185
186 _vs[VS_COPY_UV_COLOR] = (LPDIRECT3DVERTEXSHADER9)
187 CompileShader(d3d, true, "CopyUVColor", buf, sizeof(buf) - 1);
188 if (_vs[VS_COPY_UV_COLOR] == NULL)
189 return false;
190 }
191
192 {
193 char buf[] =
194 "struct VsInput { float3 pos : POSITION; float2 tex : TEXCOORD0; float4 col : COLOR; };\n"
195 "struct VsOutput { float4 pos : POSITION; float2 tex : TEXCOORD0; float4 col : COLOR0; };\n"
196 "VsOutput main(VsInput vs_in) {\n"
197 "VsOutput vs_out;\n"
198 "vs_out.pos = float4(vs_in.pos, 1);\n"
199 "vs_out.tex = vs_in.tex;\n"
200 "vs_out.col = vs_in.col;\n"
201 "return vs_out;}";
202
203 _vs[VS_COPY_UV_COLOR_Z] = (LPDIRECT3DVERTEXSHADER9)
204 CompileShader(d3d, true, "CopyUVColorZ", buf, sizeof(buf) - 1);
205 if (_vs[VS_COPY_UV_COLOR_Z] == NULL)
206 return false;
207 }
208
209 return true;
210}
211
212bool D3DShaderPack::InitPixelShaders(D3DDevice *d3d)
213{
214 _ps.Allocate(PS_NUM);
215 _ps.Set(NULL);
216
217 {
218 char buf[] =
219 "struct VsOutput { float4 pos : POSITION; float4 col : COLOR0; };\n"
220 "float4 main(VsOutput ps_in) : COLOR0 {\n"
221 "return ps_in.col;}";
222
223 _ps[PS_COLOR] = (LPDIRECT3DPIXELSHADER9)
224 CompileShader(d3d, false, "Color", buf, sizeof(buf) - 1);
225 if (_ps[PS_COLOR] == NULL)
226 return false;
227 }
228
229 {
230 char buf[] =
231 "sampler Texture : register(s0);\n"
232 "struct VsOutput { float4 pos : POSITION; float2 tex : TEXCOORD0; };\n"
233 "float4 main(VsOutput ps_in) : COLOR0 {\n"
234 "return tex2D(Texture, ps_in.tex);}";
235
236 _ps[PS_TEX] = (LPDIRECT3DPIXELSHADER9)
237 CompileShader(d3d, false, "Tex", buf, sizeof(buf) - 1);
238 if (_ps[PS_TEX] == NULL)
239 return false;
240 }
241
242 {
243 char buf[] =
244 "sampler Texture : register(s0);\n"
245 "struct VsOutput { float4 pos : POSITION; float2 tex : TEXCOORD0; float4 col : COLOR0; };\n"
246 "float4 main(VsOutput ps_in) : COLOR0 {\n"
247 "return tex2D(Texture, ps_in.tex) * ps_in.col;}";
248
249 _ps[PS_TEX_COLOR_FILTER] = (LPDIRECT3DPIXELSHADER9)
250 CompileShader(d3d, false, "TexColorFilter", buf, sizeof(buf) - 1);
251 if (_ps[PS_TEX_COLOR_FILTER] == NULL)
252 return false;
253 }
254
255 {
256 char buf[] =
257 "sampler Texture : register(s1);\n"
258 "struct VsOutput { float4 pos : POSITION; float2 tex : TEXCOORD0; };\n"
259 "float4 main(VsOutput ps_in) : COLOR0 {\n"
260 "return tex2D(Texture, ps_in.tex);}";
261
262 _ps[PS_TEX_2] = (LPDIRECT3DPIXELSHADER9)
263 CompileShader(d3d, false, "Tex2", buf, sizeof(buf) - 1);
264 if (_ps[PS_TEX_2] == NULL)
265 return false;
266 }
267
268 return true;
269}
270
271void *D3DShaderPack::CompileShader(D3DDevice *d3d, bool make_vs,
272 const char *name, const char *buf, int size)
273{
274 LPD3DXBUFFER compiled_res = NULL;
275 LPD3DXBUFFER error_msgs = NULL;
276
277 HRESULT res = D3DXCompileShader(buf, size, NULL, NULL,
278 "main", make_vs ? "vs_2_0" : "ps_2_0", // ?
279 0, &compiled_res, &error_msgs, NULL);
280
281 if (FAILED(res))
282 {
283 ERR("Shader %s compilation failed, code = %X", name, res);
284 if (error_msgs == NULL)
285 return NULL;
286 const char *mess = (const char *)error_msgs->GetBufferPointer();
287 ERR("Error output:\n%s", mess);
288 error_msgs->Release();
289 return NULL;
290 }
291
292 if (error_msgs != NULL)
293 error_msgs->Release();
294
295 void *res_ptr = NULL;
296 if (make_vs)
297 {
298 LPDIRECT3DVERTEXSHADER9 vs;
299 res = d3d->GetDevice()->CreateVertexShader((DWORD *)compiled_res->GetBufferPointer(), &vs);
300 res_ptr = (void *)vs;
301 }
302 else
303 {
304 LPDIRECT3DPIXELSHADER9 ps;
305 res = d3d->GetDevice()->CreatePixelShader((DWORD *)compiled_res->GetBufferPointer(), &ps);
306 res_ptr = (void *)ps;
307 }
308
309 compiled_res->Release();
310
311 if (FAILED(res))
312 {
313 WRN("Shader %s creation failed, code = %X", name, res);
314 return NULL;
315 }
316 return res_ptr;
317}
318
319bool D3DShaderPack::SetVDecl(D3DDevice *d3d, int id)
320{
321 if (id < 0 || id >= _vdecl.Length() || _vdecl[id] == NULL)
322 return false;
323 assert(d3d != NULL);
324 d3d->GetDevice()->SetVertexDeclaration(_vdecl[id]);
325 return true;
326}
327
328bool D3DShaderPack::SetVS(D3DDevice *d3d, int id)
329{
330 if (id < 0 || id >= _vs.Length() || _vs[id] == NULL)
331 return false;
332 assert(d3d != NULL);
333 d3d->GetDevice()->SetVertexShader(_vs[id]);
334 return true;
335}
336
337bool D3DShaderPack::SetPS(D3DDevice *d3d, int id)
338{
339 if (id < 0 || id >= _ps.Length() || _ps[id] == NULL)
340 return false;
341 assert(d3d != NULL);
342 d3d->GetDevice()->SetPixelShader(_ps[id]);
343 return true;
344}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.h
deleted file mode 100644
index b865f78..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_shader_pack.h
+++ /dev/null
@@ -1,75 +0,0 @@
1#ifndef __EVAS_DIRECT3D_SHADER_PACK_H__
2#define __EVAS_DIRECT3D_SHADER_PACK_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "array.h"
8
9class D3DDevice;
10
11class D3DShaderPack : virtual public Referenc
12{
13public:
14 ~D3DShaderPack();
15
16 static D3DShaderPack *Current();
17 static void SetCurrent(D3DShaderPack *obj);
18
19 bool Initialize(D3DDevice *d3d);
20 void Uninitialize();
21
22 bool SetVDecl(D3DDevice *d3d, int id);
23 bool SetVS(D3DDevice *d3d, int id);
24 bool SetPS(D3DDevice *d3d, int id);
25
26public:
27 enum VDECL
28 {
29 VDECL_XYC = 0,
30 VDECL_XYUV,
31 VDECL_XYUVC,
32 VDECL_XYZUVC,
33
34 VDECL_NUM
35 };
36
37 enum VS
38 {
39 VS_COPY_COLOR = 0,
40 VS_COPY_UV,
41 VS_COPY_UV_COLOR,
42 VS_COPY_UV_COLOR_Z,
43
44 VS_NUM
45 };
46
47 enum PS
48 {
49 PS_COLOR = 0,
50 PS_TEX,
51 PS_TEX_COLOR_FILTER,
52 PS_TEX_2,
53
54 PS_NUM
55 };
56
57private:
58 D3DShaderPack();
59
60 bool InitVertexDeclarations(D3DDevice *d3d);
61 bool InitVertexShaders(D3DDevice *d3d);
62 bool InitPixelShaders(D3DDevice *d3d);
63
64 void *CompileShader(D3DDevice *d3d, bool make_vs, const char *name,
65 const char *buf, int size);
66
67private:
68 TArray<LPDIRECT3DVERTEXDECLARATION9> _vdecl;
69 TArray<LPDIRECT3DVERTEXSHADER9> _vs;
70 TArray<LPDIRECT3DPIXELSHADER9> _ps;
71
72 static Ref<D3DShaderPack> _this;
73};
74
75#endif // __EVAS_DIRECT3D_SHADER_PACK_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.cpp b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.cpp
deleted file mode 100644
index 8d3dd45..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
1
2//#define ENABLE_LOG_PRINTF
3
4#include "evas_direct3d_vertex_buffer_cache.h"
5#include "evas_direct3d_device.h"
6
7#include <assert.h>
8
9
10Ref<D3DVertexBufferCache> D3DVertexBufferCache::_this;
11
12D3DVertexBufferCache::D3DVertexBufferCache()
13{
14 size_border_low = 0.6; // We can reuse buffer on 60%
15 size_border_high = 0.2; // We can reallocate the buffer on 20%
16}
17
18D3DVertexBufferCache::~D3DVertexBufferCache()
19{
20 Uninitialize();
21}
22
23D3DVertexBufferCache *D3DVertexBufferCache::Current()
24{
25 if (_this.IsNull())
26 _this = new D3DVertexBufferCache();
27 return _this;
28}
29
30void D3DVertexBufferCache::SetCurrent(D3DVertexBufferCache *obj)
31{
32 _this = obj;
33}
34
35void D3DVertexBufferCache::Uninitialize()
36{
37 for (int i = 0; i < _cache.Length(); i++)
38 {
39 assert(_cache[i].vb != NULL);
40 _cache[i].vb->Release();
41 }
42 _cache.Resize();
43}
44
45bool D3DVertexBufferCache::InitBuffer(D3DDevice *d3d, BYTE *data, int size, CacheEntryInfo &info)
46{
47 assert(d3d != NULL);
48 assert(data != NULL);
49 assert(size > 0);
50
51 int best = FindBestEntry(size);
52 CacheEntry *ce = NULL;
53
54 // Reallocate
55 if (best >= 0 && _cache[best].size < size)
56 {
57 DeleteEntry(best);
58 best = -1;
59 }
60
61 // New
62 if (best < 0)
63 {
64 CacheEntry new_entry;
65 if (!CreateEntry(d3d, new_entry, size))
66 {
67 WRN("Failed to create new vbcache entry");
68 return false;
69 }
70 _cache.Add(new_entry);
71 info.id = _cache.Length() - 1;
72 ce = _cache.Last();
73 }
74 else
75 {
76 info.id = best;
77 ce = &_cache[best];
78 }
79
80 assert(ce != NULL);
81 if (!InsertData(*ce, data, size))
82 {
83 WRN("Failed to insert vbcache data");
84 return false;
85 }
86 return true;
87}
88
89bool D3DVertexBufferCache::SelectBufferToDevice(D3DDevice *device, int id, int vertex_size)
90{
91 if (id < 0 || id >= _cache.Length())
92 return false;
93 return SUCCEEDED(device->GetDevice()->SetStreamSource(0, _cache[id].vb, 0, vertex_size));
94}
95
96int D3DVertexBufferCache::FindBestEntry(int size)
97{
98 // Search for buffer that fits in borders
99 for (int i = 0; i < _cache.Length(); i++)
100 {
101 const int vs = _cache[i].size;
102 if (size >= (vs - FLOAT(vs) * size_border_low) && size <= vs)
103 return i;
104 }
105 bool less_than_all = true;
106 for (int i = 0; i < _cache.Length(); i++)
107 {
108 const int vs = _cache[i].size;
109 if (size >= (vs - FLOAT(vs) * size_border_low))
110 less_than_all = false;
111 }
112 // Requested size is too small to reuse in any buffer
113 if (less_than_all)
114 return -1;
115 // Search for buffer that can be reallocated
116 for (int i = 0; i < _cache.Length(); i++)
117 {
118 const int vs = _cache[i].size;
119 if (size <= (vs + FLOAT(vs) * size_border_high))
120 return i;
121 }
122 // No buffer can be reused or reallocated, create a new one
123 return -1;
124}
125
126bool D3DVertexBufferCache::CreateEntry(D3DDevice *d3d, CacheEntry &entry, int size)
127{
128 assert(d3d != NULL);
129 if (FAILED(d3d->GetDevice()->CreateVertexBuffer(size, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY,
130 0, D3DPOOL_DEFAULT, &entry.vb, NULL)))
131 {
132 return false;
133 }
134 entry.size = size;
135 return true;
136}
137
138void D3DVertexBufferCache::DeleteEntry(int id)
139{
140 if (id < 0 || id >= _cache.Length())
141 return;
142 assert(_cache[id].vb != NULL);
143 _cache[id].vb->Release();
144 _cache.Replace(id);
145}
146
147bool D3DVertexBufferCache::InsertData(CacheEntry &entry, BYTE *data, int size)
148{
149 BYTE *ptr = NULL;
150 if (FAILED(entry.vb->Lock(0, size, (void **)&ptr, D3DLOCK_DISCARD)))
151 return false;
152 CopyMemory(ptr, data, size);
153 return SUCCEEDED(entry.vb->Unlock());
154}
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.h
deleted file mode 100644
index 822ac80..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_vertex_buffer_cache.h
+++ /dev/null
@@ -1,60 +0,0 @@
1#ifndef __EVAS_DIRECT3D_VERTEX_BUFFER_CACHE_H__
2#define __EVAS_DIRECT3D_VERTEX_BUFFER_CACHE_H__
3
4#include "evas_engine.h"
5
6#include "ref.h"
7#include "array.h"
8
9class D3DDevice;
10
11class D3DVertexBufferCache : virtual public Referenc
12{
13public:
14 struct CacheEntryInfo
15 {
16 int id;
17 };
18
19public:
20 ~D3DVertexBufferCache();
21
22 static D3DVertexBufferCache *Current();
23 static void SetCurrent(D3DVertexBufferCache *obj);
24
25 inline void SetSizeBorders(FLOAT low, FLOAT high);
26
27 bool InitBuffer(D3DDevice *d3d, BYTE *data, int size, CacheEntryInfo &info);
28 bool SelectBufferToDevice(D3DDevice *device, int id, int vertex_size);
29 void Uninitialize();
30
31private:
32 struct CacheEntry
33 {
34 LPDIRECT3DVERTEXBUFFER9 vb;
35 int size;
36 };
37
38private:
39 D3DVertexBufferCache();
40
41 int FindBestEntry(int size);
42 bool CreateEntry(D3DDevice *d3d, CacheEntry &entry, int size);
43 void DeleteEntry(int id);
44 bool InsertData(CacheEntry &entry, BYTE *data, int size);
45
46private:
47 TArray<CacheEntry> _cache;
48 FLOAT size_border_low;
49 FLOAT size_border_high;
50
51 static Ref<D3DVertexBufferCache> _this;
52};
53
54void D3DVertexBufferCache::SetSizeBorders(FLOAT low, FLOAT high)
55{
56 size_border_low = low;
57 size_border_high = high;
58}
59
60#endif // __EVAS_DIRECT3D_VERTEX_BUFFER_CACHE_H__
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_engine.c b/libraries/evas/src/modules/engines/direct3d/evas_engine.c
deleted file mode 100644
index f7722d8..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_engine.c
+++ /dev/null
@@ -1,503 +0,0 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_engine.h"
3#include "evas_private.h"
4#include "Evas_Engine_Direct3D.h"
5
6#undef EAPI
7#define EAPI __declspec(dllexport)
8
9/* engine struct data */
10typedef struct _Render_Engine Render_Engine;
11struct _Render_Engine
12{
13 Direct3DDeviceHandler d3d;
14 int width, height;
15 int end : 1;
16 int in_redraw : 1;
17};
18
19int _evas_engine_direct3d_log_dom = -1;
20
21/* function tables - filled in later (func and parent func) */
22static Evas_Func func, pfunc;
23
24//////////////////////////////////////////////////////////////////////////////
25// Prototypes
26
27static void *eng_info(Evas *e);
28static void eng_info_free(Evas *e, void *info);
29static int eng_setup(Evas *e, void *info);
30static void eng_output_free(void *data);
31static void eng_output_resize(void *data, int width, int height);
32
33//////////////////////////////////////////////////////////////////////////////
34// Init / shutdown methods
35//
36
37static void *
38_output_setup(int width, int height, int rotation, HWND window, int depth, int fullscreen)
39{
40 Render_Engine *re;
41
42 re = (Render_Engine *)calloc(1, sizeof(Render_Engine));
43 if (!re)
44 return NULL;
45
46 /* if we haven't initialized - init (automatic abort if already done) */
47 evas_common_cpu_init();
48
49 evas_common_blend_init();
50 evas_common_image_init();
51 evas_common_convert_init();
52 evas_common_scale_init();
53 evas_common_rectangle_init();
54 evas_common_polygon_init();
55 evas_common_line_init();
56 evas_common_font_init();
57 evas_common_draw_init();
58 evas_common_tilebuf_init();
59
60 if ((re->d3d = evas_direct3d_init(window, depth, fullscreen)) == 0)
61 {
62 free(re);
63 return NULL;
64 }
65
66 re->width = width;
67 re->height = height;
68
69 return re;
70}
71
72static void *
73eng_info(Evas *e)
74{
75 Evas_Engine_Info_Direct3D *info;
76 info = (Evas_Engine_Info_Direct3D *)calloc(1, sizeof(Evas_Engine_Info_Direct3D));
77 if (!info) return NULL;
78 info->magic.magic = rand();
79 memset(&info->info, 0, sizeof(info->info));
80 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
81 return info;
82 e = NULL;
83}
84
85static void
86eng_info_free(Evas *e, void *info)
87{
88 Evas_Engine_Info_Direct3D *in;
89 in = (Evas_Engine_Info_Direct3D *)info;
90 free(in);
91}
92
93static int
94eng_setup(Evas *e, void *info)
95{
96 Render_Engine *re;
97 Evas_Engine_Info_Direct3D *in;
98 re = (Render_Engine *)e->engine.data.output;
99 in = (Evas_Engine_Info_Direct3D *)info;
100 if (!e->engine.data.output)
101 {
102 e->engine.data.output = _output_setup(e->output.w,
103 e->output.h,
104 in->info.rotation,
105 in->info.window,
106 in->info.depth,
107 in->info.fullscreen);
108 }
109 else if (in->info.fullscreen != 0)
110 {
111 if (re)
112 evas_direct3d_set_layered(re->d3d, 0, 0, 0, NULL);
113 evas_direct3d_set_fullscreen(re->d3d, -1, -1, 1);
114 }
115 else if (in->info.fullscreen == 0)
116 {
117 evas_direct3d_set_fullscreen(re->d3d, re->width, re->height, 0);
118 if (re && in->info.layered == 0)
119 evas_direct3d_set_layered(re->d3d, 0, 0, 0, NULL);
120 else if (re && in->info.layered != 0 && in->shape)
121 evas_direct3d_set_layered(re->d3d, 1, in->shape->width, in->shape->height, in->shape->mask);
122 }
123
124 if (!e->engine.data.output)
125 return 0;
126 if (!e->engine.data.context)
127 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
128
129 return 1;
130}
131
132static void
133eng_output_free(void *data)
134{
135 Render_Engine *re = (Render_Engine *)data;
136
137 evas_direct3d_free(re->d3d);
138
139 free(re);
140
141 evas_common_font_shutdown();
142 evas_common_image_shutdown();
143}
144
145//////////////////////////////////////////////////////////////////////////////
146// Context
147//
148
149static void
150eng_context_color_set(void *data, void *context, int r, int g, int b, int a)
151{
152 Render_Engine *re = (Render_Engine *)data;
153 evas_direct3d_context_color_set(re->d3d, r, g, b, a);
154
155 evas_common_draw_context_set_color(context, r, g, b, a);
156}
157
158static void
159eng_context_multiplier_set(void *data, void *context, int r, int g, int b, int a)
160{
161 Render_Engine *re = (Render_Engine *)data;
162 evas_direct3d_context_set_multiplier(re->d3d, 255, 255, 255, a);
163
164 evas_common_draw_context_set_multiplier(context, r, g, b, a);
165}
166
167static void
168eng_context_multiplier_unset(void *data, void *context)
169{
170 Render_Engine *re = (Render_Engine *)data;
171 evas_direct3d_context_set_multiplier(re->d3d, 255, 255, 255, 255);
172
173 evas_common_draw_context_unset_multiplier(context);
174}
175
176
177//////////////////////////////////////////////////////////////////////////////
178// Output manipulating
179//
180
181static void
182eng_output_resize(void *data, int width, int height)
183{
184 Render_Engine *re = (Render_Engine *)data;
185 re->width = width;
186 re->height = height;
187 evas_direct3d_resize(re->d3d, width, height);
188}
189
190static void
191eng_output_redraws_rect_add(void *data, int x, int y, int width, int height)
192{
193 Render_Engine *re = (Render_Engine *)data;
194}
195
196static void
197eng_output_redraws_rect_del(void *data, int x, int y, int width, int height)
198{
199 Render_Engine *re = (Render_Engine *)data;
200}
201
202static void
203eng_output_redraws_clear(void *data)
204{
205 Render_Engine *re = (Render_Engine *)data;
206}
207
208static void *
209eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h,
210 int *cx, int *cy, int *cw, int *ch)
211{
212 Render_Engine *re;
213
214 re = (Render_Engine *)data;
215 if (re->end)
216 {
217 re->end = 0;
218 re->in_redraw = 0;
219 return NULL;
220 }
221
222 if (x) *x = 0;
223 if (y) *y = 0;
224 if (w) *w = 800; //re->d3d.width;
225 if (h) *h = 600; //re->d3d.height;
226 if (cx) *cx = 0;
227 if (cy) *cy = 0;
228 if (cw) *cw = 800; //re->d3d.width;
229 if (ch) *ch = 600; //re->d3d.height;
230
231 re->in_redraw = 1;
232
233 return re;
234}
235
236static void
237eng_output_redraws_next_update_push(void *data, void *surface,
238 int x, int y, int w, int h)
239{
240 Render_Engine *re = (Render_Engine *)data;
241 re->end = 1;
242}
243
244static void
245eng_output_flush(void *data)
246{
247 Render_Engine *re = (Render_Engine *)data;
248 evas_direct3d_render_all(re->d3d);
249}
250
251static void
252eng_output_idle_flush(void *data)
253{
254 Render_Engine *re = (Render_Engine *)data;
255}
256
257
258//////////////////////////////////////////////////////////////////////////////
259// Draw objects
260//
261
262static void
263eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
264{
265 Render_Engine *re = (Render_Engine *)data;
266 if (re->in_redraw == 0)
267 return;
268 evas_direct3d_line_draw(re->d3d, x1, y1, x2, y2);
269}
270
271static void
272eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
273{
274 Render_Engine *re = (Render_Engine *)data;
275 if (re->in_redraw == 0)
276 return;
277 evas_direct3d_rectangle_draw(re->d3d, x, y, w, h);
278}
279
280static void *
281eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
282{
283 Render_Engine *re = (Render_Engine *)data;
284 *error = 0;
285 return evas_direct3d_image_load(re->d3d, file, key, NULL, lo);
286}
287
288static void *
289eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
290{
291 Render_Engine *re = (Render_Engine *)data;
292 return evas_direct3d_image_new_from_data(re->d3d, w, h, image_data, alpha, cspace);
293}
294
295static void *
296eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
297{
298 Render_Engine *re = (Render_Engine *)data;
299 return evas_direct3d_image_new_from_copied_data(re->d3d, w, h, image_data, alpha, cspace);
300}
301
302static void
303eng_image_free(void *data, void *image)
304{
305 Render_Engine *re = (Render_Engine *)data;
306 evas_direct3d_image_free(re->d3d, image);
307}
308
309static void *
310eng_image_data_put(void *data, void *image, DATA32 *image_data)
311{
312 Render_Engine *re = (Render_Engine *)data;
313 evas_direct3d_image_data_put(re->d3d, image, image_data);
314 return image;
315}
316
317static void *
318eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h)
319{
320 return image;
321}
322
323static void *
324eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, int *err)
325{
326 Render_Engine *re = (Render_Engine *)data;
327 evas_direct3d_image_data_get(re->d3d, image, to_write, image_data);
328 if (err) *err = EVAS_LOAD_ERROR_NONE;
329 return image;
330}
331
332static void
333eng_image_draw(void *data, void *context, void *surface, void *image,
334 int src_x, int src_y, int src_w, int src_h,
335 int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
336{
337 Render_Engine *re = (Render_Engine *)data;
338 evas_direct3d_image_draw(re->d3d, image,
339 src_x, src_y, src_w, src_h,
340 dst_x, dst_y, dst_w, dst_h, smooth);
341}
342
343static void
344eng_image_size_get(void *data, void *image, int *w, int *h)
345{
346 evas_direct3d_image_size_get(image, w, h);
347}
348
349static int
350eng_image_alpha_get(void *data, void *image)
351{
352 // Hm:)
353 if (!image)
354 return 1;
355 return 0;
356}
357
358static int
359eng_image_colorspace_get(void *data, void *image)
360{
361 // Well, change that when you think about other colorspace
362 return EVAS_COLORSPACE_ARGB8888;
363}
364
365static void *
366eng_image_border_set(void *data, void *image, int l, int r, int t, int b)
367{
368 Render_Engine *re = (Render_Engine *)data;
369 evas_direct3d_image_border_set(re->d3d, image, l, t, r, b);
370 return image;
371}
372
373static void
374eng_image_border_get(void *data, void *image, int *l, int *r, int *t, int *b)
375{
376 Render_Engine *re = (Render_Engine *)data;
377 evas_direct3d_image_border_get(re->d3d, image, l, t, r, b);
378}
379
380static void
381eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
382{
383}
384
385static int
386eng_image_scale_hint_get(void *data __UNUSED__, void *image)
387{
388 return EVAS_IMAGE_SCALE_HINT_NONE;
389}
390
391static void
392eng_font_draw(void *data, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w, int h, int ow, int oh, const Evas_Text_Props *intl_props)
393{
394 Render_Engine *re = (Render_Engine *)data;
395 RGBA_Image im;
396 im.image.data = NULL;
397 im.cache_entry.w = re->width;
398 im.cache_entry.h = re->height;
399
400 evas_direct3d_select_or_create_font(re->d3d, font);
401
402 evas_common_draw_context_font_ext_set(context, re->d3d,
403 evas_direct3d_font_texture_new,
404 evas_direct3d_font_texture_free,
405 evas_direct3d_font_texture_draw);
406 evas_common_font_draw(&im, context, (RGBA_Font *) font, x, y, intl_props);
407 evas_common_draw_context_font_ext_set(context, NULL, NULL, NULL, NULL);
408}
409
410static void
411eng_font_free(void *data, void *font)
412{
413 Render_Engine *re = (Render_Engine *)data;
414 evas_common_font_free(font);
415 evas_direct3d_font_free(re->d3d, font);
416}
417
418/* module advertising code */
419static int
420module_open(Evas_Module *em)
421{
422 if (!em) return 0;
423 /* get whatever engine module we inherit from */
424 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
425 /* Initialize the log domain */
426 _evas_engine_direct3d_log_dom = eina_log_domain_register
427 ("evas-direct3d", EVAS_DEFAULT_LOG_COLOR);
428 if (_evas_engine_direct3d_log_dom < 0)
429 {
430 EINA_LOG_ERR("Can not create a module log domain.");
431 return 0;
432 }
433 /* store it for later use */
434 func = pfunc;
435 /* now to override methods */
436#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
437 ORD(info);
438 ORD(info_free);
439 ORD(setup);
440 ORD(context_color_set);
441 ORD(context_multiplier_set);
442 ORD(context_multiplier_unset);
443 ORD(output_free);
444 ORD(output_resize);
445 ORD(output_redraws_rect_add);
446 ORD(output_redraws_rect_del);
447 ORD(output_redraws_clear);
448 ORD(output_redraws_next_update_get);
449 ORD(output_redraws_next_update_push);
450 ORD(output_flush);
451 ORD(output_idle_flush);
452 ORD(line_draw);
453 ORD(rectangle_draw);
454 ORD(image_load);
455 ORD(image_new_from_data);
456 ORD(image_new_from_copied_data);
457 ORD(image_free);
458 ORD(image_data_put);
459 ORD(image_dirty_region);
460 ORD(image_data_get);
461 ORD(image_draw);
462 ORD(image_size_get);
463 ORD(image_alpha_get);
464 ORD(image_colorspace_get);
465 ORD(image_border_set);
466 ORD(image_border_get);
467 ORD(font_draw);
468 ORD(font_free);
469
470 ORD(image_scale_hint_set);
471 ORD(image_scale_hint_get);
472
473// ORD(image_map_draw);
474// ORD(image_map_surface_new);
475// ORD(image_map_surface_free);
476
477 /* now advertise out own api */
478 em->functions = (void *)(&func);
479 return 1;
480}
481
482static void
483module_close(Evas_Module *em)
484{
485 eina_log_domain_unregister(_evas_engine_direct3d_log_dom);
486}
487
488static Evas_Module_Api evas_modapi =
489{
490 EVAS_MODULE_API_VERSION,
491 "direct3d",
492 "none",
493 {
494 module_open,
495 module_close
496 }
497};
498
499EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, direct3d);
500
501#ifndef EVAS_STATIC_BUILD_DIRECT3D
502EVAS_EINA_MODULE_DEFINE(engine, direct3d);
503#endif
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_engine.h b/libraries/evas/src/modules/engines/direct3d/evas_engine.h
deleted file mode 100644
index da1ebff..0000000
--- a/libraries/evas/src/modules/engines/direct3d/evas_engine.h
+++ /dev/null
@@ -1,125 +0,0 @@
1#ifndef __EVAS_ENGINE_H__
2#define __EVAS_ENGINE_H__
3
4
5#define WIN32_LEAN_AND_MEAN
6#include <windows.h>
7#undef WIN32_LEAN_AND_MEAN
8#include <d3d9.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#define EVAS_INLINE_ARRAY_H // We dont need that and it is buggy
15
16#include "evas_common.h"
17
18#ifdef __cplusplus
19}
20#endif
21
22
23//#define ENABLE_LOG_PRINTF
24
25extern int _evas_engine_direct3d_log_dom ;
26#ifdef ERR
27# undef ERR
28#endif
29#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_direct3d_log_dom, __VA_ARGS__)
30
31#ifdef DBG
32# undef DBG
33#endif
34#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_direct3d_log_dom, __VA_ARGS__)
35
36#ifdef INF
37# undef INF
38#endif
39#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_direct3d_log_dom, __VA_ARGS__)
40
41#ifdef WRN
42# undef WRN
43#endif
44#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_direct3d_log_dom, __VA_ARGS__)
45
46#ifdef CRIT
47# undef CRIT
48#endif
49#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_direct3d_log_dom, __VA_ARGS__)
50
51#ifdef ENABLE_LOG_PRINTF
52#define Log(str, ...) INF("D3D "str, __VA_ARGS__)
53#else
54#define Log(str, ...)
55#endif
56
57typedef void * Direct3DDeviceHandler;
58typedef void * Direct3DImageHandler;
59typedef void * Direct3DFontGlyphHandler;
60
61
62#ifdef __cplusplus
63extern "C" {
64#endif
65
66// Main engine functions
67
68Direct3DDeviceHandler evas_direct3d_init(HWND window, int depth, int fullscreen);
69void evas_direct3d_free(Direct3DDeviceHandler d3d);
70void evas_direct3d_render_all(Direct3DDeviceHandler d3d);
71void evas_direct3d_resize(Direct3DDeviceHandler d3d, int width, int height);
72void evas_direct3d_set_fullscreen(Direct3DDeviceHandler d3d,
73 int width, int height, int fullscreen);
74void evas_direct3d_set_layered(Direct3DDeviceHandler d3d, int layered,
75 int mask_width, int mask_height, unsigned char *mask);
76
77
78// Context manipulations
79
80void evas_direct3d_context_color_set(Direct3DDeviceHandler d3d, int r, int g, int b, int a);
81void evas_direct3d_context_set_multiplier(Direct3DDeviceHandler d3d, int r, int g, int b, int a);
82
83// Simple objects
84
85void evas_direct3d_line_draw(Direct3DDeviceHandler d3d, int x1, int y1, int x2, int y2);
86void evas_direct3d_rectangle_draw(Direct3DDeviceHandler d3d, int x, int y, int w, int h);
87
88// Images
89
90Direct3DImageHandler evas_direct3d_image_load(Direct3DDeviceHandler d3d,
91 const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo);
92Direct3DImageHandler evas_direct3d_image_new_from_data(Direct3DDeviceHandler d3d,
93 int w, int h, DWORD *image_data, int alpha, int cspace);
94Direct3DImageHandler evas_direct3d_image_new_from_copied_data(Direct3DDeviceHandler d3d,
95 int w, int h, DWORD *image_data, int alpha, int cspace);
96void evas_direct3d_image_free(Direct3DDeviceHandler d3d, Direct3DImageHandler image);
97void evas_direct3d_image_data_put(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
98 DWORD *image_data);
99void evas_direct3d_image_data_get(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
100 int to_write, DATA32 **image_data);
101void evas_direct3d_image_draw(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
102 int src_x, int src_y, int src_w, int src_h,
103 int dst_x, int dst_y, int dst_w, int dst_h, int smooth);
104void evas_direct3d_image_size_get(Direct3DImageHandler image, int *w, int *h);
105void evas_direct3d_image_border_set(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
106 int l, int r, int t, int b);
107void evas_direct3d_image_border_get(Direct3DDeviceHandler d3d, Direct3DImageHandler image,
108 int *l, int *r, int *t, int *b);
109
110// Fonts
111
112Direct3DFontGlyphHandler evas_direct3d_font_texture_new(Direct3DDeviceHandler d3d,
113 RGBA_Font_Glyph *fg);
114void evas_direct3d_font_texture_free(Direct3DFontGlyphHandler ft);
115void evas_direct3d_font_texture_draw(Direct3DDeviceHandler d3d, void *dest, void *context,
116 RGBA_Font_Glyph *fg, int x, int y);
117void evas_direct3d_select_or_create_font(Direct3DDeviceHandler d3d, void *font);
118void evas_direct3d_font_free(Direct3DDeviceHandler d3d, void *font);
119
120#ifdef __cplusplus
121}
122#endif
123
124
125#endif /* __EVAS_ENGINE_H__ */
diff --git a/libraries/evas/src/modules/engines/direct3d/ref.h b/libraries/evas/src/modules/engines/direct3d/ref.h
deleted file mode 100644
index 0853f2e..0000000
--- a/libraries/evas/src/modules/engines/direct3d/ref.h
+++ /dev/null
@@ -1,210 +0,0 @@
1#ifndef __REF_H__
2#define __REF_H__
3
4//////////////////////////////////////////////////////////////////////////////
5// class Referenc
6// Desc: Base class enabling reference interface
7// Note: Class should derive as virtual
8//
9class Referenc
10{
11public:
12 Referenc()
13 : refs_count(0) {};
14
15 inline int AddRef()
16 {
17 return ++refs_count;
18 }
19 inline int RemRef()
20 {
21 return --refs_count;
22 }
23 inline int RefCount()
24 {
25 return refs_count;
26 }
27
28private:
29 int refs_count;
30};
31
32
33//////////////////////////////////////////////////////////////////////////////
34// template Ref
35// Desc: Holder in smart-pointers system.
36// Important: Only Referenc subclasses may be used as template param.
37//
38
39template <class T>
40class Ref
41{
42public:
43 // Constructors & destructor
44 Ref();
45 //Ref(Ref<T> &ref);
46 Ref(const Ref<T> &ref);
47 Ref(T *ptr);
48 Ref(const T *ptr);
49 ~Ref();
50
51 Ref<T> &operator =(Ref<T> &ref);
52 Ref<T> &operator =(T *ptr);
53
54 inline T *Addr();
55 inline T *Addr() const;
56 inline int RefCount();
57 inline bool IsNull();
58
59 inline T *operator ->();
60 inline operator const T *() const;
61 inline operator T *();
62
63//private:
64 void RemRef();
65
66private:
67 T *m_ptr;
68};
69
70//////////////////////////////////////////////////////////////////////////////
71// Constructors & destructor
72template <class T> Ref<T>::Ref()
73: m_ptr(NULL)
74{
75}
76
77//template <class T> Ref<T>::Ref(Ref<T> &ref)
78//: m_ptr(NULL)
79//{
80// if (ref.Addr() != NULL)
81// {
82// m_ptr = ref.Addr();
83// ((Referenc *)m_ptr)->AddRef();
84// }
85//}
86
87template <class T> Ref<T>::Ref(const Ref<T> &ref)
88: m_ptr(NULL)
89{
90 if (ref.Addr() != NULL)
91 {
92 m_ptr = ref.Addr();
93 ((Referenc *)m_ptr)->AddRef();
94 }
95}
96
97template <class T> Ref<T>::Ref(T *ptr)
98: m_ptr(NULL)
99{
100 if (ptr != NULL)
101 {
102 m_ptr = ptr;
103 ((Referenc *)m_ptr)->AddRef();
104 }
105}
106
107template <class T> Ref<T>::Ref(const T *ptr)
108: m_ptr(NULL)
109{
110 if (ptr != NULL)
111 {
112 m_ptr = ptr;
113 ((Referenc *)m_ptr)->AddRef();
114 }
115}
116
117template <class T> Ref<T>::~Ref()
118{
119 if (m_ptr == NULL)
120 return;
121 RemRef();
122}
123
124// Check pointer on correctness
125template <class T> bool Ref<T>::IsNull()
126{
127 return (m_ptr == NULL);
128}
129
130//////////////////////////////////////////////////////////////////////////////
131// Operators
132
133template <class T> Ref<T> &Ref<T>::operator =(T *ptr)
134{
135 if (ptr != NULL)
136 {
137 if (m_ptr != ptr)
138 {
139 RemRef();
140 m_ptr = ptr;
141 ((Referenc *)m_ptr)->AddRef();
142 }
143 }
144 else if (m_ptr != NULL)
145 RemRef();
146 return *this;
147}
148
149template <class T> Ref<T> &Ref<T>::operator =(Ref<T> &ref)
150{
151 if (ref.Addr() != NULL)
152 {
153 if (m_ptr != ref.Addr())
154 {
155 RemRef();
156 m_ptr = ref.Addr();
157 ((Referenc *)m_ptr)->AddRef();
158 }
159 }
160 else if (m_ptr != NULL)
161 RemRef();
162 return *this;
163}
164
165// Get pointer
166template <class T> T *Ref<T>::Addr()
167{
168 return m_ptr;
169}
170
171template <class T> T *Ref<T>::Addr() const
172{
173 return m_ptr;
174}
175
176// Get refs count
177template <class T> int Ref<T>::RefCount()
178{
179 if (m_ptr == NULL)
180 return 0;
181 return ((Referenc *)m_ptr)->RefCount();
182}
183
184// Remove ref to the object and delete it if necessary
185// WARNING: arrays cannot be deleted
186template <class T> void Ref<T>::RemRef()
187{
188 if (m_ptr == NULL)
189 return;
190 if (((Referenc *)m_ptr)->RemRef() == 0)
191 delete m_ptr;
192 m_ptr = NULL;
193}
194
195template <class T> T *Ref<T>::operator ->()
196{
197 return m_ptr;
198}
199
200template <class T> Ref<T>::operator const T *() const
201{
202 return m_ptr;
203}
204
205template <class T> Ref<T>::operator T *()
206{
207 return m_ptr;
208}
209
210#endif // __REF_H__
diff --git a/libraries/evas/src/modules/engines/directfb/Evas_Engine_DirectFB.h b/libraries/evas/src/modules/engines/directfb/Evas_Engine_DirectFB.h
deleted file mode 100644
index 53352b7..0000000
--- a/libraries/evas/src/modules/engines/directfb/Evas_Engine_DirectFB.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#ifndef _EVAS_ENGINE_DIRECTFB_H
2#define _EVAS_ENGINE_DIRECTFB_H
3
4#include <Evas.h>
5#include <directfb.h>
6
7typedef struct _Evas_Engine_Info_DirectFB Evas_Engine_Info_DirectFB;
8
9struct _Evas_Engine_Info_DirectFB
10{
11 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
12 /* at you and make nasty noises */
13 Evas_Engine_Info magic;
14
15 struct Evas_Engine_DirectFB_Spec {
16 IDirectFB *dfb;
17 IDirectFBSurface *surface;
18 } info;
19
20 /* non-blocking or blocking mode */
21 Evas_Engine_Render_Mode render_mode;
22};
23#endif
24
25
diff --git a/libraries/evas/src/modules/engines/directfb/Makefile.am b/libraries/evas/src/modules/engines/directfb/Makefile.am
deleted file mode 100644
index 967e594..0000000
--- a/libraries/evas/src/modules/engines/directfb/Makefile.am
+++ /dev/null
@@ -1,44 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@evas_engine_directfb_cflags@
13
14if BUILD_ENGINE_DIRECTFB
15
16DIRECTFB_SOURCES = evas_engine.c polygon.c
17DIRECTFB_LIBADD = @evas_engine_directfb_libs@
18
19
20includes_HEADERS = Evas_Engine_DirectFB.h
21includesdir = $(includedir)/evas-@VMAJ@
22
23if !EVAS_STATIC_BUILD_DIRECTFB
24
25pkgdir = $(libdir)/evas/modules/engines/directfb/$(MODULE_ARCH)
26pkg_LTLIBRARIES = module.la
27
28module_la_SOURCES = $(DIRECTFB_SOURCES)
29
30module_la_LIBADD = @EINA_LIBS@ $(DIRECTFB_LIBADD) $(top_builddir)/src/lib/libevas.la
31module_la_LDFLAGS = -module -avoid-version
32module_la_LIBTOOLFLAGS = --tag=disable-static
33
34else
35
36noinst_LTLIBRARIES = libevas_engine_directfb.la
37
38libevas_engine_directfb_la_SOURCES = $(DIRECTFB_SOURCES)
39libevas_engine_directfb_la_LIBADD = $(DIRECTFB_LIBADD)
40
41endif
42endif
43
44EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/directfb/Makefile.in b/libraries/evas/src/modules/engines/directfb/Makefile.in
deleted file mode 100644
index 7d642c9..0000000
--- a/libraries/evas/src/modules/engines/directfb/Makefile.in
+++ /dev/null
@@ -1,808 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/directfb
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_TRUE@libevas_engine_directfb_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_directfb_la_SOURCES_DIST = evas_engine.c polygon.c
87@BUILD_ENGINE_DIRECTFB_TRUE@am__objects_1 = evas_engine.lo polygon.lo
88@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_TRUE@am_libevas_engine_directfb_la_OBJECTS = $(am__objects_1)
89libevas_engine_directfb_la_OBJECTS = \
90 $(am_libevas_engine_directfb_la_OBJECTS)
91AM_V_lt = $(am__v_lt_$(V))
92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
93am__v_lt_0 = --silent
94@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_TRUE@am_libevas_engine_directfb_la_rpath =
95@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
96@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@ $(top_builddir)/src/lib/libevas.la
97am__module_la_SOURCES_DIST = evas_engine.c polygon.c
98@BUILD_ENGINE_DIRECTFB_TRUE@am__objects_2 = module_la-evas_engine.lo \
99@BUILD_ENGINE_DIRECTFB_TRUE@ module_la-polygon.lo
100@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@am_module_la_OBJECTS = $(am__objects_2)
101module_la_OBJECTS = $(am_module_la_OBJECTS)
102module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
103 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
104 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
105@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@am_module_la_rpath = -rpath \
106@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@ $(pkgdir)
107DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
108depcomp = $(SHELL) $(top_srcdir)/depcomp
109am__depfiles_maybe = depfiles
110am__mv = mv -f
111COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
112 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
113LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
114 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
115 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
116 $(AM_CFLAGS) $(CFLAGS)
117AM_V_CC = $(am__v_CC_$(V))
118am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
119am__v_CC_0 = @echo " CC " $@;
120AM_V_at = $(am__v_at_$(V))
121am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
122am__v_at_0 = @
123CCLD = $(CC)
124LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
125 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
126 $(AM_LDFLAGS) $(LDFLAGS) -o $@
127AM_V_CCLD = $(am__v_CCLD_$(V))
128am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
129am__v_CCLD_0 = @echo " CCLD " $@;
130AM_V_GEN = $(am__v_GEN_$(V))
131am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
132am__v_GEN_0 = @echo " GEN " $@;
133SOURCES = $(libevas_engine_directfb_la_SOURCES) $(module_la_SOURCES)
134DIST_SOURCES = $(am__libevas_engine_directfb_la_SOURCES_DIST) \
135 $(am__module_la_SOURCES_DIST)
136am__includes_HEADERS_DIST = Evas_Engine_DirectFB.h
137HEADERS = $(includes_HEADERS)
138ETAGS = etags
139CTAGS = ctags
140DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
141ACLOCAL = @ACLOCAL@
142ALLOCA = @ALLOCA@
143AMTAR = @AMTAR@
144AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
145AR = @AR@
146AS = @AS@
147AUTOCONF = @AUTOCONF@
148AUTOHEADER = @AUTOHEADER@
149AUTOMAKE = @AUTOMAKE@
150AWK = @AWK@
151CC = @CC@
152CCDEPMODE = @CCDEPMODE@
153CFLAGS = @CFLAGS@
154CHECK_CFLAGS = @CHECK_CFLAGS@
155CHECK_LIBS = @CHECK_LIBS@
156CPP = @CPP@
157CPPFLAGS = @CPPFLAGS@
158CXX = @CXX@
159CXXCPP = @CXXCPP@
160CXXDEPMODE = @CXXDEPMODE@
161CXXFLAGS = @CXXFLAGS@
162CYGPATH_W = @CYGPATH_W@
163DEFS = @DEFS@
164DEPDIR = @DEPDIR@
165DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
166DIRECTFB_LIBS = @DIRECTFB_LIBS@
167DLLTOOL = @DLLTOOL@
168DSYMUTIL = @DSYMUTIL@
169DUMPBIN = @DUMPBIN@
170ECHO_C = @ECHO_C@
171ECHO_N = @ECHO_N@
172ECHO_T = @ECHO_T@
173ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
174ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
175EDB_CFLAGS = @EDB_CFLAGS@
176EDB_LIBS = @EDB_LIBS@
177EDJE_CFLAGS = @EDJE_CFLAGS@
178EDJE_LIBS = @EDJE_LIBS@
179EET_CFLAGS = @EET_CFLAGS@
180EET_LIBS = @EET_LIBS@
181EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
182EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
183EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
184EGREP = @EGREP@
185EINA_CFLAGS = @EINA_CFLAGS@
186EINA_LIBS = @EINA_LIBS@
187EVAS_CFLAGS = @EVAS_CFLAGS@
188EVAS_LIBS = @EVAS_LIBS@
189EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
190EVIL_CFLAGS = @EVIL_CFLAGS@
191EVIL_LIBS = @EVIL_LIBS@
192EXEEXT = @EXEEXT@
193EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
194EXOTIC_LIBS = @EXOTIC_LIBS@
195FGREP = @FGREP@
196FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
197FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
198FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
199FREETYPE_LIBS = @FREETYPE_LIBS@
200FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
201FRIBIDI_LIBS = @FRIBIDI_LIBS@
202GL_EET_CFLAGS = @GL_EET_CFLAGS@
203GL_EET_LIBS = @GL_EET_LIBS@
204GREP = @GREP@
205HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
206HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
207INSTALL = @INSTALL@
208INSTALL_DATA = @INSTALL_DATA@
209INSTALL_PROGRAM = @INSTALL_PROGRAM@
210INSTALL_SCRIPT = @INSTALL_SCRIPT@
211INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
212LD = @LD@
213LDFLAGS = @LDFLAGS@
214LIBOBJS = @LIBOBJS@
215LIBS = @LIBS@
216LIBTOOL = @LIBTOOL@
217LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
218LINEBREAK_LIBS = @LINEBREAK_LIBS@
219LIPO = @LIPO@
220LN_S = @LN_S@
221LTLIBOBJS = @LTLIBOBJS@
222MAKEINFO = @MAKEINFO@
223MKDIR_P = @MKDIR_P@
224MODULE_ARCH = @MODULE_ARCH@
225NM = @NM@
226NMEDIT = @NMEDIT@
227OBJC = @OBJC@
228OBJCDEPMODE = @OBJCDEPMODE@
229OBJCFLAGS = @OBJCFLAGS@
230OBJDUMP = @OBJDUMP@
231OBJEXT = @OBJEXT@
232OTOOL = @OTOOL@
233OTOOL64 = @OTOOL64@
234PACKAGE = @PACKAGE@
235PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
236PACKAGE_NAME = @PACKAGE_NAME@
237PACKAGE_STRING = @PACKAGE_STRING@
238PACKAGE_TARNAME = @PACKAGE_TARNAME@
239PACKAGE_URL = @PACKAGE_URL@
240PACKAGE_VERSION = @PACKAGE_VERSION@
241PATH_SEPARATOR = @PATH_SEPARATOR@
242PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
243PIXMAN_LIBS = @PIXMAN_LIBS@
244PKG_CONFIG = @PKG_CONFIG@
245PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
246PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
247PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@
250SDL_CFLAGS = @SDL_CFLAGS@
251SDL_LIBS = @SDL_LIBS@
252SED = @SED@
253SET_MAKE = @SET_MAKE@
254SHELL = @SHELL@
255SHM_OPEN_LINK = @SHM_OPEN_LINK@
256STRIP = @STRIP@
257SVG_CFLAGS = @SVG_CFLAGS@
258SVG_LIBS = @SVG_LIBS@
259VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@
262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265XCB_CFLAGS = @XCB_CFLAGS@
266XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
267XCB_GL_LIBS = @XCB_GL_LIBS@
268XCB_LIBS = @XCB_LIBS@
269XEXT_CFLAGS = @XEXT_CFLAGS@
270XEXT_LIBS = @XEXT_LIBS@
271XMKMF = @XMKMF@
272X_CFLAGS = @X_CFLAGS@
273X_EXTRA_LIBS = @X_EXTRA_LIBS@
274X_LIBS = @X_LIBS@
275X_PRE_LIBS = @X_PRE_LIBS@
276abs_builddir = @abs_builddir@
277abs_srcdir = @abs_srcdir@
278abs_top_builddir = @abs_top_builddir@
279abs_top_srcdir = @abs_top_srcdir@
280ac_ct_CC = @ac_ct_CC@
281ac_ct_CXX = @ac_ct_CXX@
282ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
283ac_ct_OBJC = @ac_ct_OBJC@
284altivec_cflags = @altivec_cflags@
285am__include = @am__include@
286am__leading_dot = @am__leading_dot@
287am__quote = @am__quote@
288am__tar = @am__tar@
289am__untar = @am__untar@
290bindir = @bindir@
291build = @build@
292build_alias = @build_alias@
293build_cpu = @build_cpu@
294build_os = @build_os@
295build_vendor = @build_vendor@
296builddir = @builddir@
297datadir = @datadir@
298datarootdir = @datarootdir@
299dlopen_libs = @dlopen_libs@
300docdir = @docdir@
301dvidir = @dvidir@
302edje_cc = @edje_cc@
303efl_doxygen = @efl_doxygen@
304efl_have_doxygen = @efl_have_doxygen@
305evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
306evas_engine_buffer_libs = @evas_engine_buffer_libs@
307evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
308evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
309evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
310evas_engine_directfb_libs = @evas_engine_directfb_libs@
311evas_engine_fb_cflags = @evas_engine_fb_cflags@
312evas_engine_fb_libs = @evas_engine_fb_libs@
313evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
314evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
315evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
316evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
317evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
318evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
319evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
320evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
321evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
322evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
323evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
324evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
325evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
326evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
327evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
328evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
329evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
330evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
331evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
332evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
333evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
334evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
335evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
336evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
337evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
338evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
349evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
350evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
351evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
352evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
353evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
354evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
355evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
356evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
357evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
358evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
359evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
360evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
361evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
362evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
363evas_image_loader_png_libs = @evas_image_loader_png_libs@
364evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
365evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
366evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
367evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
368evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
369evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
370evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
371evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
372evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
373evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
374evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
375evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
376exec_prefix = @exec_prefix@
377have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
378have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
379have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
380have_evas_engine_software_x11 = @have_evas_engine_software_x11@
381have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
382have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
383have_lcov = @have_lcov@
384host = @host@
385host_alias = @host_alias@
386host_cpu = @host_cpu@
387host_os = @host_os@
388host_vendor = @host_vendor@
389htmldir = @htmldir@
390includedir = @includedir@
391infodir = @infodir@
392install_sh = @install_sh@
393libdir = @libdir@
394libexecdir = @libexecdir@
395localedir = @localedir@
396localstatedir = @localstatedir@
397lt_ECHO = @lt_ECHO@
398lt_enable_auto_import = @lt_enable_auto_import@
399mandir = @mandir@
400mkdir_p = @mkdir_p@
401oldincludedir = @oldincludedir@
402pdfdir = @pdfdir@
403pkgconfig_requires_private = @pkgconfig_requires_private@
404prefix = @prefix@
405program_transform_name = @program_transform_name@
406psdir = @psdir@
407pthread_cflags = @pthread_cflags@
408pthread_libs = @pthread_libs@
409release_info = @release_info@
410requirement_evas = @requirement_evas@
411sbindir = @sbindir@
412sharedstatedir = @sharedstatedir@
413srcdir = @srcdir@
414sysconfdir = @sysconfdir@
415target_alias = @target_alias@
416top_build_prefix = @top_build_prefix@
417top_builddir = @top_builddir@
418top_srcdir = @top_srcdir@
419version_info = @version_info@
420MAINTAINERCLEANFILES = Makefile.in
421AM_CPPFLAGS = \
422-I. \
423-I$(top_srcdir)/src/lib \
424-I$(top_srcdir)/src/lib/include \
425-I$(top_srcdir)/src/modules/engines \
426@FREETYPE_CFLAGS@ \
427@PIXMAN_CFLAGS@ \
428@EINA_CFLAGS@ \
429@evas_engine_directfb_cflags@
430
431@BUILD_ENGINE_DIRECTFB_TRUE@DIRECTFB_SOURCES = evas_engine.c polygon.c
432@BUILD_ENGINE_DIRECTFB_TRUE@DIRECTFB_LIBADD = @evas_engine_directfb_libs@
433@BUILD_ENGINE_DIRECTFB_TRUE@includes_HEADERS = Evas_Engine_DirectFB.h
434@BUILD_ENGINE_DIRECTFB_TRUE@includesdir = $(includedir)/evas-@VMAJ@
435@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@pkgdir = $(libdir)/evas/modules/engines/directfb/$(MODULE_ARCH)
436@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@pkg_LTLIBRARIES = module.la
437@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@module_la_SOURCES = $(DIRECTFB_SOURCES)
438@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@module_la_LIBADD = @EINA_LIBS@ $(DIRECTFB_LIBADD) $(top_builddir)/src/lib/libevas.la
439@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@module_la_LDFLAGS = -module -avoid-version
440@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
441@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_TRUE@noinst_LTLIBRARIES = libevas_engine_directfb.la
442@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_TRUE@libevas_engine_directfb_la_SOURCES = $(DIRECTFB_SOURCES)
443@BUILD_ENGINE_DIRECTFB_TRUE@@EVAS_STATIC_BUILD_DIRECTFB_TRUE@libevas_engine_directfb_la_LIBADD = $(DIRECTFB_LIBADD)
444EXTRA_DIST = evas_engine.h
445all: all-am
446
447.SUFFIXES:
448.SUFFIXES: .c .lo .o .obj
449$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
450 @for dep in $?; do \
451 case '$(am__configure_deps)' in \
452 *$$dep*) \
453 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
454 && { if test -f $@; then exit 0; else break; fi; }; \
455 exit 1;; \
456 esac; \
457 done; \
458 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/directfb/Makefile'; \
459 $(am__cd) $(top_srcdir) && \
460 $(AUTOMAKE) --gnu src/modules/engines/directfb/Makefile
461.PRECIOUS: Makefile
462Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
463 @case '$?' in \
464 *config.status*) \
465 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
466 *) \
467 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
468 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
469 esac;
470
471$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
472 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
473
474$(top_srcdir)/configure: $(am__configure_deps)
475 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
476$(ACLOCAL_M4): $(am__aclocal_m4_deps)
477 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
478$(am__aclocal_m4_deps):
479
480clean-noinstLTLIBRARIES:
481 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
482 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
483 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
484 test "$$dir" != "$$p" || dir=.; \
485 echo "rm -f \"$${dir}/so_locations\""; \
486 rm -f "$${dir}/so_locations"; \
487 done
488install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
489 @$(NORMAL_INSTALL)
490 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
491 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
492 list2=; for p in $$list; do \
493 if test -f $$p; then \
494 list2="$$list2 $$p"; \
495 else :; fi; \
496 done; \
497 test -z "$$list2" || { \
498 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
499 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
500 }
501
502uninstall-pkgLTLIBRARIES:
503 @$(NORMAL_UNINSTALL)
504 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
505 for p in $$list; do \
506 $(am__strip_dir) \
507 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
508 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
509 done
510
511clean-pkgLTLIBRARIES:
512 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
513 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
514 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
515 test "$$dir" != "$$p" || dir=.; \
516 echo "rm -f \"$${dir}/so_locations\""; \
517 rm -f "$${dir}/so_locations"; \
518 done
519libevas_engine_directfb.la: $(libevas_engine_directfb_la_OBJECTS) $(libevas_engine_directfb_la_DEPENDENCIES)
520 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_directfb_la_rpath) $(libevas_engine_directfb_la_OBJECTS) $(libevas_engine_directfb_la_LIBADD) $(LIBS)
521module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
522 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
523
524mostlyclean-compile:
525 -rm -f *.$(OBJEXT)
526
527distclean-compile:
528 -rm -f *.tab.c
529
530@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
531@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
532@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-polygon.Plo@am__quote@
533@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/polygon.Plo@am__quote@
534
535.c.o:
536@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
537@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
538@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
539@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
540@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
541@am__fastdepCC_FALSE@ $(COMPILE) -c $<
542
543.c.obj:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
550
551.c.lo:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
558
559module_la-evas_engine.lo: evas_engine.c
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
566
567module_la-polygon.lo: polygon.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-polygon.lo -MD -MP -MF $(DEPDIR)/module_la-polygon.Tpo -c -o module_la-polygon.lo `test -f 'polygon.c' || echo '$(srcdir)/'`polygon.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-polygon.Tpo $(DEPDIR)/module_la-polygon.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='polygon.c' object='module_la-polygon.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-polygon.lo `test -f 'polygon.c' || echo '$(srcdir)/'`polygon.c
574
575mostlyclean-libtool:
576 -rm -f *.lo
577
578clean-libtool:
579 -rm -rf .libs _libs
580install-includesHEADERS: $(includes_HEADERS)
581 @$(NORMAL_INSTALL)
582 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
583 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
584 for p in $$list; do \
585 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
586 echo "$$d$$p"; \
587 done | $(am__base_list) | \
588 while read files; do \
589 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
590 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
591 done
592
593uninstall-includesHEADERS:
594 @$(NORMAL_UNINSTALL)
595 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
596 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
597 test -n "$$files" || exit 0; \
598 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
599 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
600
601ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
602 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
603 unique=`for i in $$list; do \
604 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
605 done | \
606 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
607 END { if (nonempty) { for (i in files) print i; }; }'`; \
608 mkid -fID $$unique
609tags: TAGS
610
611TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
612 $(TAGS_FILES) $(LISP)
613 set x; \
614 here=`pwd`; \
615 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
616 unique=`for i in $$list; do \
617 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
618 done | \
619 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
620 END { if (nonempty) { for (i in files) print i; }; }'`; \
621 shift; \
622 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
623 test -n "$$unique" || unique=$$empty_fix; \
624 if test $$# -gt 0; then \
625 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
626 "$$@" $$unique; \
627 else \
628 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
629 $$unique; \
630 fi; \
631 fi
632ctags: CTAGS
633CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
634 $(TAGS_FILES) $(LISP)
635 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
636 unique=`for i in $$list; do \
637 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
638 done | \
639 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
640 END { if (nonempty) { for (i in files) print i; }; }'`; \
641 test -z "$(CTAGS_ARGS)$$unique" \
642 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
643 $$unique
644
645GTAGS:
646 here=`$(am__cd) $(top_builddir) && pwd` \
647 && $(am__cd) $(top_srcdir) \
648 && gtags -i $(GTAGS_ARGS) "$$here"
649
650distclean-tags:
651 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
652
653distdir: $(DISTFILES)
654 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
655 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
656 list='$(DISTFILES)'; \
657 dist_files=`for file in $$list; do echo $$file; done | \
658 sed -e "s|^$$srcdirstrip/||;t" \
659 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
660 case $$dist_files in \
661 */*) $(MKDIR_P) `echo "$$dist_files" | \
662 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
663 sort -u` ;; \
664 esac; \
665 for file in $$dist_files; do \
666 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
667 if test -d $$d/$$file; then \
668 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
669 if test -d "$(distdir)/$$file"; then \
670 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
671 fi; \
672 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
673 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
674 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
675 fi; \
676 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
677 else \
678 test -f "$(distdir)/$$file" \
679 || cp -p $$d/$$file "$(distdir)/$$file" \
680 || exit 1; \
681 fi; \
682 done
683check-am: all-am
684check: check-am
685all-am: Makefile $(LTLIBRARIES) $(HEADERS)
686installdirs:
687 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
688 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
689 done
690install: install-am
691install-exec: install-exec-am
692install-data: install-data-am
693uninstall: uninstall-am
694
695install-am: all-am
696 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
697
698installcheck: installcheck-am
699install-strip:
700 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
701 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
702 `test -z '$(STRIP)' || \
703 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
704mostlyclean-generic:
705
706clean-generic:
707
708distclean-generic:
709 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
710 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
711
712maintainer-clean-generic:
713 @echo "This command is intended for maintainers to use"
714 @echo "it deletes files that may require special tools to rebuild."
715 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
716clean: clean-am
717
718clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
719 clean-pkgLTLIBRARIES mostlyclean-am
720
721distclean: distclean-am
722 -rm -rf ./$(DEPDIR)
723 -rm -f Makefile
724distclean-am: clean-am distclean-compile distclean-generic \
725 distclean-tags
726
727dvi: dvi-am
728
729dvi-am:
730
731html: html-am
732
733html-am:
734
735info: info-am
736
737info-am:
738
739install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
740
741install-dvi: install-dvi-am
742
743install-dvi-am:
744
745install-exec-am:
746
747install-html: install-html-am
748
749install-html-am:
750
751install-info: install-info-am
752
753install-info-am:
754
755install-man:
756
757install-pdf: install-pdf-am
758
759install-pdf-am:
760
761install-ps: install-ps-am
762
763install-ps-am:
764
765installcheck-am:
766
767maintainer-clean: maintainer-clean-am
768 -rm -rf ./$(DEPDIR)
769 -rm -f Makefile
770maintainer-clean-am: distclean-am maintainer-clean-generic
771
772mostlyclean: mostlyclean-am
773
774mostlyclean-am: mostlyclean-compile mostlyclean-generic \
775 mostlyclean-libtool
776
777pdf: pdf-am
778
779pdf-am:
780
781ps: ps-am
782
783ps-am:
784
785uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
786
787.MAKE: install-am install-strip
788
789.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
790 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
791 ctags distclean distclean-compile distclean-generic \
792 distclean-libtool distclean-tags distdir dvi dvi-am html \
793 html-am info info-am install install-am install-data \
794 install-data-am install-dvi install-dvi-am install-exec \
795 install-exec-am install-html install-html-am \
796 install-includesHEADERS install-info install-info-am \
797 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
798 install-ps install-ps-am install-strip installcheck \
799 installcheck-am installdirs maintainer-clean \
800 maintainer-clean-generic mostlyclean mostlyclean-compile \
801 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
802 tags uninstall uninstall-am uninstall-includesHEADERS \
803 uninstall-pkgLTLIBRARIES
804
805
806# Tell versions [3.59,3.63) of GNU make to not export all variables.
807# Otherwise a system limit (for SysV at least) may be exceeded.
808.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/directfb/evas_engine.c b/libraries/evas/src/modules/engines/directfb/evas_engine.c
deleted file mode 100644
index 5347d2d..0000000
--- a/libraries/evas/src/modules/engines/directfb/evas_engine.c
+++ /dev/null
@@ -1,1754 +0,0 @@
1#include <assert.h>
2#include <math.h>
3#include <string.h>
4#include <sys/time.h>
5#include <time.h>
6#include "evas_engine.h"
7#include "evas_common.h" /* Also includes international specific stuff */
8
9/* Uses Evas own image_draw primitive, for comparison purposes only. */
10//#define DFB_USE_EVAS_IMAGE_DRAW 1
11//#define DFB_USE_EVAS_RECT_DRAW 1
12//#define DFB_USE_EVAS_POLYGON_DRAW 1
13//#define DFB_UPDATE_INDIVIDUAL_RECTS 1
14#define DFB_FLIP_FLAGS DSFLIP_NONE
15//#define DFB_FLIP_FLAGS (DSFLIP_ONSYNC | DSFLIP_WAIT)
16
17/* Turn on debug */
18//#define DFB_DEBUG_IMAGE 1
19//#define DFB_DEBUG_FLAGS 1
20//#define DFB_DEBUG_ACCELERATION 1
21int _evas_engine_directfb_log_dom = -1;
22
23static Evas_Func func = {};
24static Evas_Func parent_func = {};
25static IDirectFB *dfb = NULL; /* XXX HACK to work around evas image cache
26 * lack of extra data. Fix it instead later.
27 */
28
29
30/***********************************************************************
31 * Evas helpers
32 **********************************************************************/
33static void
34_context_get_color(RGBA_Draw_Context *dc, int *r, int *g, int *b, int *a)
35{
36 DATA32 col;
37
38 if (dc->mul.use)
39 col = dc->mul.col;
40 else
41 col = dc->col.col;
42
43 *r = R_VAL(&col);
44 *g = G_VAL(&col);
45 *b = B_VAL(&col);
46 *a = A_VAL(&col);
47}
48
49
50/***********************************************************************
51 * DirectFB helpers
52 **********************************************************************/
53static void
54_dfb_surface_clear(IDirectFBSurface *surface, int x, int y, int w, int h)
55{
56 DFBRegion cr;
57 DFBResult r;
58
59 cr.x1 = x;
60 cr.y1 = y;
61 cr.x2 = x + w - 1;
62 cr.y2 = y + h - 1;
63 r = surface->SetClip(surface, &cr);
64 if (r != DFB_OK)
65 goto error;
66
67 r = surface->Clear(surface, 0, 0, 0, 0);
68 if (r != DFB_OK)
69 goto error;
70
71 return;
72
73 error:
74 ERR("DirectFB: could not clear surface: %s",
75 DirectFBErrorString(r));
76}
77
78static void
79_image_clear(DirectFB_Engine_Image_Entry *image, int x, int y, int w, int h)
80{
81 if (image->cache_entry.src->flags.alpha)
82 _dfb_surface_clear(image->surface, x, y, w, h);
83}
84
85static void
86_image_autoset_alpha(DirectFB_Engine_Image_Entry *image)
87{
88 DFBResult r;
89 DFBSurfacePixelFormat fmt;
90 IDirectFBSurface *surface;
91 RGBA_Image *im;
92 int has_alpha;
93
94 surface = image->surface;
95 r = surface->GetPixelFormat(surface, &fmt);
96 if (r != DFB_OK)
97 {
98 ERR("Could not get pixel format: %s",
99 DirectFBErrorString(r));
100 return;
101 }
102
103 /* XXX: check this in more depth in future, if other PF are supported */
104 image->cache_entry.src->flags.alpha = (fmt == DSPF_ARGB);
105}
106
107static void
108_dfb_surface_update(IDirectFBSurface *surface, int x, int y, int w, int h)
109{
110 DFBRegion cr;
111 DFBResult r;
112
113 cr.x1 = x;
114 cr.y1 = y;
115 cr.x2 = x + w - 1;
116 cr.y2 = y + h - 1;
117 r = surface->Flip(surface, &cr, DSFLIP_NONE);
118 if (r != DFB_OK)
119 WRN("Could not update surface: %s",
120 DirectFBErrorString(r));
121}
122
123static IDirectFBSurface *
124_dfb_surface_from_data(IDirectFB *dfb, int w, int h, void *data)
125{
126 IDirectFBSurface *s;
127 DFBSurfaceDescription desc;
128 DFBResult r;
129
130 desc.flags = (DSDESC_CAPS | DSDESC_WIDTH | DSDESC_HEIGHT |
131 DSDESC_PIXELFORMAT | DSDESC_PREALLOCATED);
132 desc.caps = DSCAPS_PREMULTIPLIED;
133 desc.width = w;
134 desc.height = h;
135 desc.preallocated[0].data = data;
136 desc.preallocated[0].pitch = w * 4;
137 desc.preallocated[1].data = NULL;
138 desc.preallocated[1].pitch = 0;
139 desc.pixelformat = DSPF_ARGB;
140 r = dfb->CreateSurface(dfb, &desc, &s);
141 if (r != DFB_OK)
142 {
143 ERR("Cannot create DirectFB surface: %s",
144 DirectFBErrorString(r));
145 return NULL;
146 }
147
148 s->SetPorterDuff(s, DSPD_SRC_OVER);
149
150 return s;
151}
152
153static void
154_dfb_surface_free(IDirectFBSurface *surface)
155{
156 if (surface)
157 surface->Release(surface);
158}
159
160static void
161_dfb_blit_accel_caps_print(IDirectFBSurface *dst, IDirectFBSurface *src)
162{
163#ifdef DFB_DEBUG_ACCELERATION
164 DFBAccelerationMask mask;
165 DFBResult r;
166
167 r = dst->GetAccelerationMask(dst, src, &mask);
168 if (r != DFB_OK)
169 {
170 ERR("Could not retrieve acceleration mask: %s",
171 DirectFBErrorString(r));
172 return;
173 }
174
175 DBG("Acceleration: ");
176
177#define O(m) if (mask & m) DBG(#m " ")
178 O(DFXL_FILLRECTANGLE);
179 O(DFXL_DRAWRECTANGLE);
180 O(DFXL_DRAWLINE);
181 O(DFXL_FILLTRIANGLE);
182 O(DFXL_BLIT);
183 O(DFXL_STRETCHBLIT);
184 O(DFXL_TEXTRIANGLES);
185 O(DFXL_DRAWSTRING);
186#undef O
187
188 if (mask == DFXL_NONE) DBG("<NONE>");
189#endif /* DFB_DEBUG_ACCELERATION */
190}
191
192#ifdef DFB_DEBUG_FLAGS
193static const char *
194_dfb_blit_flags_str(DFBSurfaceBlittingFlags flags)
195{
196 static char buf[1024];
197
198 buf[0] = 0;
199
200#define T(m, n) \
201 do { \
202 if (flags & m) { \
203 if (buf[0] != 0) strcat(buf, " | "); \
204 strcat(buf, n); \
205 } \
206 } while (0)
207
208 T(DSBLIT_BLEND_ALPHACHANNEL, "BLEND_ALPHACHANNEL");
209 T(DSBLIT_BLEND_COLORALPHA, "BLEND_COLORALPHA");
210 T(DSBLIT_COLORIZE, "COLORIZE");
211 T(DSBLIT_SRC_COLORKEY, "SRC_COLORKEY");
212 T(DSBLIT_DST_COLORKEY, "DST_COLORKEY");
213 T(DSBLIT_SRC_PREMULTIPLY, "SRC_PREMULTIPLY");
214 T(DSBLIT_DST_PREMULTIPLY, "DST_PREMULTIPLY");
215 T(DSBLIT_DEMULTIPLY, "DEMULTIPLY");
216 T(DSBLIT_DEINTERLACE, "DSBLIT_DEINTERLACE");
217 T(DSBLIT_SRC_PREMULTCOLOR, "SRC_PREMULTCOLOR");
218 T(DSBLIT_XOR, "XOR");
219 T(DSBLIT_INDEX_TRANSLATION, "INDEX_TRANSLATION");
220#undef T
221
222 if (buf[0] == 0)
223 strcpy(buf, "NOFX");
224
225 return buf;
226}
227
228static const char *
229_dfb_draw_flags_str(DFBSurfaceDrawingFlags flags)
230{
231 static char buf[1024];
232
233 buf[0] = 0;
234
235#define T(m, n) \
236 do { \
237 if (flags & m) { \
238 if (buf[0] != 0) strcat(buf, " | "); \
239 strcat(buf, n); \
240 } \
241 } while (0)
242 T(DSDRAW_BLEND, "BLEND");
243 T(DSDRAW_DST_COLORKEY, "DST_COLORKEY");
244 T(DSDRAW_SRC_PREMULTIPLY, "SRC_PREMULTIPLY");
245 T(DSDRAW_DST_PREMULTIPLY, "DST_PREMULTIPLY");
246 T(DSDRAW_DEMULTIPLY, "DEMULTIPLY");
247 T(DSDRAW_XOR, "DSDRAW_XOR");
248#undef T
249 if (buf[0] == 0)
250 strcpy(buf, "NOFX");
251
252 return buf;
253}
254
255static const char *
256_dfb_blend_func_str(DFBSurfaceBlendFunction func)
257{
258 static char *names[] = {
259 "ZERO",
260 "ONE",
261 "SRCCOLOR",
262 "INVSRCCOLOR",
263 "SRCALPHA",
264 "INVSRCALPHA",
265 "DESTALPHA",
266 "INVDESTALPHA",
267 "DESTCOLOR",
268 "INVDESTCOLOR",
269 "SRCALPHASAT"
270 };
271 func--;
272 if ((func >= 0) && (func <= sizeof(names)/sizeof(*names)))
273 return names[func];
274 else
275 return NULL;
276}
277#endif /* DFB_DEBUG_FLAGS */
278
279int
280_dfb_surface_set_color_from_context(IDirectFBSurface *surface, RGBA_Draw_Context *dc)
281{
282 DFBSurfaceDrawingFlags flags;
283 int r, g, b, a;
284 DFBResult res;
285
286 _context_get_color(dc, &r, &g, &b, &a);
287 if (a == 0)
288 return 0;
289
290 r = 0xff * r / a;
291 g = 0xff * g / a;
292 b = 0xff * b / a;
293
294 res = surface->SetColor(surface, r, g, b, a);
295 if (res != DFB_OK)
296 goto error;
297
298 flags = (a != 255) ? DSDRAW_BLEND : DSDRAW_NOFX;
299 res = surface->SetDrawingFlags(surface, flags);
300 if (res != DFB_OK)
301 goto error;
302
303#ifdef DFB_DEBUG_FLAGS
304 DBG("Color=%d %d %d %d, flags=%s",
305 r, g, b, a, _dfb_draw_flags_str(flags));
306#endif /* DFB_DEBUG_FLAGS */
307
308 return 1;
309
310 error:
311 ERR("Could not set color from context: %s",
312 DirectFBErrorString(res));
313 return 0;
314}
315
316static int
317_dfb_surface_set_blit_params(DirectFB_Engine_Image_Entry *d, DirectFB_Engine_Image_Entry *s, RGBA_Draw_Context *dc)
318{
319 IDirectFBSurface *surface;
320 DFBSurfaceBlittingFlags blit_flags = DSBLIT_NOFX;
321 DFBResult res;
322 int r, g, b, a;
323
324 _context_get_color(dc, &r, &g, &b, &a);
325 if (a == 0)
326 return 0;
327
328 if (a != 255)
329 blit_flags = DSBLIT_BLEND_COLORALPHA | DSBLIT_SRC_PREMULTCOLOR;
330
331 if ((r != a) || (g != a) || (b != a))
332 {
333 blit_flags |= DSBLIT_COLORIZE;
334
335 r = 0xff * r / a;
336 g = 0xff * g / a;
337 b = 0xff * b / a;
338 }
339
340 if (s->cache_entry.src->flags.alpha)
341 blit_flags |= DSBLIT_BLEND_ALPHACHANNEL;
342
343 surface = d->surface;
344
345 if (blit_flags &
346 (DSBLIT_BLEND_COLORALPHA | DSBLIT_SRC_PREMULTCOLOR | DSBLIT_COLORIZE))
347 {
348 res = surface->SetColor(surface, r, g, b, a);
349 if (res != DFB_OK)
350 goto error;
351 }
352
353 res = surface->SetBlittingFlags(surface, blit_flags);
354 if (res != DFB_OK)
355 goto error;
356
357#ifdef DFB_DEBUG_FLAGS
358 DBG("sfunc=%s, dfunc=%s, color=%d %d %d %d, blit=%s, draw=%s",
359 _dfb_blend_func_str(src_func), _dfb_blend_func_str(dst_func),
360 r, g, b, a,
361 _dfb_blit_flags_str(blit_flags), _dfb_draw_flags_str(draw_flags));
362#endif /* DFB_DEBUG_FLAGS */
363
364 return 1;
365
366 error:
367 ERR("Could not set blit params: %s",
368 DirectFBErrorString(res));
369 return 0;
370}
371
372static int
373_dfb_lock_and_sync_image(IDirectFBSurface *surface, RGBA_Image *image, DFBSurfaceLockFlags flags)
374{
375 DFBResult r;
376 int pitch, sw, sh;
377 void *pixels;
378
379 r = surface->GetSize(surface, &sw, &sh);
380 if (r != DFB_OK)
381 return 0;
382
383 r = surface->Lock(surface, flags, &pixels, &pitch);
384 if (r != DFB_OK)
385 return 0;
386
387 if (pitch != (sw * 4))
388 {
389 /* XXX TODO: support other pixel formats. */
390 ERR("IDirectFBSurface pitch(%d) is not supported: "
391 "should be %d.",
392 pitch, sw * 4);
393 surface->Unlock(surface);
394 return 0;
395 }
396
397 image->cache_entry.w = sw;
398 image->cache_entry.h = sh;
399 image->image.data = pixels;
400 return 1;
401}
402
403typedef void (*_cb_for_each_cutout_t)(IDirectFBSurface *surface, RGBA_Draw_Context *dc, const DFBRegion *region, void *data);
404static void
405_dfb_surface_for_each_cutout(IDirectFBSurface *surface, RGBA_Draw_Context *dc, _cb_for_each_cutout_t cb, void *data)
406{
407 Cutout_Rects *rects;
408 int i;
409
410 rects = evas_common_draw_context_apply_cutouts(dc);
411 if (!rects)
412 {
413 DFBRegion cr;
414 cr.x1 = 0;
415 cr.y1 = 0;
416 surface->GetSize(surface, &cr.x2, &cr.y2);
417 cr.x2 -= 1;
418 cr.y2 -= 1;
419 surface->SetClip(surface, NULL);
420 cb(surface, dc, &cr, data);
421 return;
422 }
423
424 for (i = 0; i < rects->active; ++i)
425 {
426 Cutout_Rect *r;
427 DFBRegion cr;
428
429 r = rects->rects + i;
430
431 cr.x1 = r->x;
432 cr.y1 = r->y;
433 cr.x2 = r->x + r->w - 1;
434 cr.y2 = r->y + r->h - 1;
435 surface->SetClip(surface, &cr);
436 cb(surface, dc, &cr, data);
437 }
438 evas_common_draw_context_apply_clear_cutouts(rects);
439}
440
441static void
442_dfb_rect_set(DFBRectangle *r, int x, int y, int w, int h)
443{
444 r->x = x;
445 r->y = y;
446 r->w = w;
447 r->h = h;
448}
449
450
451/***********************************************************************
452 * Image Cache
453 **********************************************************************/
454static Engine_Image_Entry *
455evas_cache_image_dfb_alloc(void)
456{
457 DirectFB_Engine_Image_Entry *deie;
458
459 deie = calloc(1, sizeof (DirectFB_Engine_Image_Entry));
460
461 return (Engine_Image_Entry *)deie;
462}
463
464static void
465evas_cache_image_dfb_delete(Engine_Image_Entry *eie)
466{
467 free(eie);
468}
469
470static int
471evas_cache_image_dfb_constructor(Engine_Image_Entry *eie, void *data)
472{
473 DirectFB_Engine_Image_Entry *deie = (DirectFB_Engine_Image_Entry *)eie;
474 Render_Engine *re = data;
475 IDirectFBSurface *s;
476 RGBA_Image *im;
477
478 im = (RGBA_Image *)eie->src;
479 if (!im)
480 return EVAS_LOAD_ERROR_NONE; // XXX TODO: confirm?
481
482 evas_cache_image_load_data(&im->cache_entry);
483 if (!im->image.data)
484 return EVAS_LOAD_ERROR_NONE; // XXX TODO: confirm?
485
486 s = _dfb_surface_from_data(re->spec->dfb, eie->w, eie->h, im->image.data);
487 if (!s)
488 return EVAS_LOAD_ERROR_GENERIC;
489
490 deie->surface = s;
491 deie->flags.engine_surface = 0;
492
493 return EVAS_LOAD_ERROR_NONE;
494}
495
496static void
497evas_cache_image_dfb_destructor(Engine_Image_Entry *eie)
498{
499 DirectFB_Engine_Image_Entry *deie = (DirectFB_Engine_Image_Entry *)eie;
500
501 if (!deie->flags.engine_surface)
502 _dfb_surface_free(deie->surface);
503 deie->surface = NULL;
504}
505
506/* note: dst have some properties set, like desired size (w, h) */
507static int
508_cache_image_copy(Engine_Image_Entry *dst, const Engine_Image_Entry *src)
509{
510 DirectFB_Engine_Image_Entry *dst_deie;
511 const DirectFB_Engine_Image_Entry *src_deie;
512 IDirectFBSurface *s;
513 RGBA_Image *im;
514
515 dst_deie = (DirectFB_Engine_Image_Entry *)dst;
516 src_deie = (const DirectFB_Engine_Image_Entry *)src;
517 im = (RGBA_Image *)dst->src;
518 s = _dfb_surface_from_data(dfb, dst->w, dst->h, im->image.data);
519 if (!s)
520 return -1;
521
522 dst_deie->surface = s;
523 dst_deie->flags.engine_surface = 0;
524
525 return 0;
526}
527
528static int
529evas_cache_image_dfb_dirty(Engine_Image_Entry *dst, const Engine_Image_Entry *src)
530{
531 return _cache_image_copy(dst, src);
532}
533
534static void
535evas_cache_image_dfb_dirty_region(Engine_Image_Entry *eim, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
536{
537 RGBA_Image *im;
538
539 im = (RGBA_Image *)eim->src;
540 im->flags |= RGBA_IMAGE_IS_DIRTY;
541}
542
543static int
544evas_cache_image_dfb_update_data(Engine_Image_Entry *dst, void *engine_data)
545{
546 DirectFB_Engine_Image_Entry *deie = (DirectFB_Engine_Image_Entry *)dst;
547 IDirectFBSurface *s = engine_data;
548 Image_Entry *ie;
549 RGBA_Image *im;
550
551 ie = dst->src;
552 im = (RGBA_Image *)ie;
553
554 if (s)
555 {
556 deie->surface = s;
557
558 /* XXX why size is required here? */
559 s->GetSize(s, &dst->w, &dst->h);
560
561 if (im)
562 {
563 im->image.data = NULL; /* IDirectFBSurface requires lock */
564 im->image.no_free = 1;
565 ie->w = dst->w;
566 ie->h = dst->h;
567 _image_autoset_alpha(deie);
568 }
569 }
570 else
571 {
572 _dfb_surface_free(deie->surface);
573 s = _dfb_surface_from_data(dfb, dst->w, dst->h, im->image.data);
574 deie->surface = s;
575 }
576
577 return 0;
578}
579
580static int
581evas_cache_image_dfb_size_set(Engine_Image_Entry *dst, const Engine_Image_Entry *src)
582{
583 return _cache_image_copy(dst, src);
584}
585
586static void
587evas_cache_image_dfb_load(Engine_Image_Entry *eim, const Image_Entry *ie)
588{
589 DirectFB_Engine_Image_Entry *deie = (DirectFB_Engine_Image_Entry *)eim;
590 IDirectFBSurface *s;
591 const RGBA_Image *im;
592
593 if (deie->surface)
594 return;
595
596 im = (const RGBA_Image *)ie;
597 s = _dfb_surface_from_data(dfb, eim->w, eim->h, im->image.data);
598 deie->surface = s;
599}
600
601static int
602evas_cache_image_dfb_mem_size_get(Engine_Image_Entry *eie)
603{
604 DirectFB_Engine_Image_Entry *deie = (DirectFB_Engine_Image_Entry *)eie;
605 DFBResult r;
606 int size, w, h;
607
608 if (!deie->surface)
609 return 0;
610
611 size = sizeof(*deie->surface);
612
613 r = deie->surface->GetSize(deie->surface, &w, &h);
614 if (r != DFB_OK)
615 {
616 ERR("Could not get surface size: %s",
617 DirectFBErrorString(r));
618 return size;
619 }
620
621 size += w * h * 4; // XXX get correct surface size using pixelformat
622
623 return size;
624}
625
626#ifdef DFB_DEBUG_IMAGE
627static void
628evas_cache_image_dfb_debug(const char *context, Engine_Image_Entry* eie)
629{
630 DirectFB_Engine_Image_Entry *eim = (DirectFB_Engine_Image_Entry *)eie;
631
632 DBG("*** %s image (%p) ***", context, eim);
633 if (eim)
634 {
635 DBG("W: %d, H: %d, R: %d, Key: %s, DFB Surface: %p",
636 eie->w, eie->h, eie->references, eie->cache_key, eim->surface);
637
638 if (eie->src)
639 DBG("Pixels: %p", ((RGBA_Image*) eie->src)->image.data);
640 }
641 DBG("*** ***");
642}
643#endif
644
645static const Evas_Cache_Engine_Image_Func _dfb_cache_engine_image_cb = {
646 NULL /* key */,
647 evas_cache_image_dfb_alloc /* alloc */,
648 evas_cache_image_dfb_delete /* dealloc */,
649 evas_cache_image_dfb_constructor /* constructor */,
650 evas_cache_image_dfb_destructor /* destructor */,
651 evas_cache_image_dfb_dirty_region /* dirty_region */,
652 evas_cache_image_dfb_dirty /* dirty */,
653 evas_cache_image_dfb_size_set /* size_set */,
654 evas_cache_image_dfb_update_data /* update_data */,
655 evas_cache_image_dfb_load /* load */,
656 evas_cache_image_dfb_mem_size_get /* mem_size_get */,
657#ifdef DFB_DEBUG_IMAGE /* debug */
658 evas_cache_image_dfb_debug
659#else
660 NULL
661#endif
662};
663
664
665/***********************************************************************
666 * Evas Engine
667 **********************************************************************/
668static void *
669evas_engine_dfb_info(Evas* e __UNUSED__)
670{
671 Evas_Engine_Info_DirectFB *info;
672 info = calloc(1, sizeof(Evas_Engine_Info_DirectFB));
673 if (!info)
674 return NULL;
675 info->magic.magic = rand();
676 return info;
677}
678
679static void
680evas_engine_dfb_info_free(Evas *e __UNUSED__, void *in)
681{
682 Evas_Engine_Info_DirectFB *info = in;
683 free(info);
684}
685
686static Eina_Bool
687_is_dfb_data_ok(IDirectFB *idfb, IDirectFBSurface *surface, int w, int h)
688{
689 DFBResult r;
690 int sw, sh;
691
692 if (!idfb)
693 {
694 ERR("missing IDirectFB");
695 return EINA_FALSE;
696 }
697 dfb = idfb;
698
699 if (!surface)
700 {
701 ERR("missing IDirectFBSurface");
702 return EINA_FALSE;
703 }
704
705 r = surface->GetSize(surface, &sw, &sh);
706 if (r != DFB_OK)
707 {
708 ERR("Could not get surface %p size: %s",
709 surface, DirectFBErrorString(r));
710 return EINA_FALSE;
711 }
712
713 if ((w > sw) || (h > sh))
714 {
715 ERR("Requested size is larger than surface: %dx%d > %dx%d",
716 w, h, sw, sh);
717 return EINA_FALSE;
718 }
719 else if ((w <= 0) || (h <= 0))
720 {
721 w = sw;
722 h = sh;
723 }
724
725 return EINA_TRUE;
726}
727
728static void
729_evas_common_init(void)
730{
731 evas_common_cpu_init();
732 evas_common_blend_init();
733 evas_common_image_init();
734 evas_common_convert_init();
735 evas_common_scale_init();
736 evas_common_rectangle_init();
737 evas_common_polygon_init();
738 evas_common_line_init();
739 evas_common_font_init();
740 evas_common_draw_init();
741 evas_common_tilebuf_init();
742}
743
744static int
745evas_engine_dfb_output_reconfigure(Render_Engine *re, int w, int h)
746{
747 if (re->screen_image)
748 evas_cache_engine_image_drop(&re->screen_image->cache_entry);
749
750 if (re->tb)
751 evas_common_tilebuf_free(re->tb);
752
753 re->tb = evas_common_tilebuf_new(w, h);
754 if (!re->tb)
755 {
756 ERR("Could not allocate tile buffer.");
757 goto failed_tilebuf;
758 }
759 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
760
761 /* We create a "fake" RGBA_Image which points to the IDirectFB surface.
762 * Each access to that surface is wrapped in Lock / Unlock calls whenever
763 * the data is manipulated directly.
764 */
765 re->screen_image = (DirectFB_Engine_Image_Entry *)
766 evas_cache_engine_image_engine(re->cache, re->spec->surface);
767 if (!re->screen_image)
768 {
769 ERR("RGBA_Image allocation from DFB failed");
770 goto failed_image;
771 }
772 re->screen_image->flags.engine_surface = 1;
773
774 _image_autoset_alpha(re->screen_image);
775 _image_clear(re->screen_image, 0, 0, w, h);
776
777 return 1;
778
779 failed_image:
780 evas_common_tilebuf_free(re->tb);
781 re->tb = NULL;
782 failed_tilebuf:
783 re->screen_image = NULL;
784 ERR("Evas DirectFB reconfigure failed");
785 return 0;
786}
787
788static void *
789_dfb_output_setup(int w, int h, const struct Evas_Engine_DirectFB_Spec *spec)
790{
791 Render_Engine *re;
792
793 if (!_is_dfb_data_ok(spec->dfb, spec->surface, w, h))
794 goto fatal;
795
796 _evas_common_init();
797
798 re = calloc(1, sizeof(Render_Engine));
799 if (!re)
800 {
801 perror("calloc");
802 goto fatal;
803 }
804 re->dfb = spec->dfb;
805 re->spec = spec;
806 re->cache = evas_cache_engine_image_init(&_dfb_cache_engine_image_cb,
807 evas_common_image_cache_get());
808 if (!re->cache)
809 {
810 ERR("Evas_Cache_Engine_Image allocation failed!");
811 goto fatal_after_engine;
812 }
813
814 if (!evas_engine_dfb_output_reconfigure(re, w, h))
815 {
816 ERR("Could not reconfigure evas engine.");
817 goto fatal_after_reconfigure;
818 }
819
820 _dfb_blit_accel_caps_print(spec->surface, NULL);
821
822 return re;
823
824
825 fatal_after_reconfigure:
826 evas_cache_engine_image_shutdown(re->cache);
827 fatal_after_engine:
828 free(re);
829 fatal:
830 CRIT("DirectFB: unable to continue, abort()!");
831 abort();
832 return NULL;
833}
834
835static int
836evas_engine_dfb_setup(Evas *e, void *in)
837{
838 Evas_Engine_Info_DirectFB *info = in;
839
840 if (!e->engine.data.output)
841 e->engine.data.output = _dfb_output_setup(e->output.w, e->output.h,
842 &info->info);
843 // XXX TODO: else reconfigure existing...
844
845 if (!e->engine.data.output)
846 return 0;
847
848 if (!e->engine.data.context)
849 e->engine.data.context =
850 e->engine.func->context_new(e->engine.data.output);
851
852 return 1;
853}
854
855static void
856evas_engine_dfb_output_free(void *data)
857{
858 Render_Engine *re = data;
859
860 if (!re)
861 return;
862
863 if (re->cache)
864 evas_cache_engine_image_shutdown(re->cache);
865
866 evas_common_tilebuf_free(re->tb);
867 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
868 free(re);
869
870 evas_common_font_shutdown();
871 evas_common_image_shutdown();
872}
873
874static void
875evas_engine_dfb_output_resize(void *data, int w, int h)
876{
877 if (!evas_engine_dfb_output_reconfigure(data, w, h))
878 ERR("Failed to resize DirectFB evas");
879}
880
881static void
882evas_engine_dfb_output_tile_size_set(void *data, int w, int h)
883{
884 Render_Engine *re = data;
885
886 evas_common_tilebuf_set_tile_size(re->tb, w, h);
887}
888
889static void
890evas_engine_dfb_output_redraws_rect_add(void *data, int x, int y, int w, int h)
891{
892 Render_Engine *re = data;
893
894 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
895}
896
897static void
898evas_engine_dfb_output_redraws_rect_del(void *data, int x, int y, int w, int h)
899{
900 Render_Engine *re = data;
901
902 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
903}
904
905static void
906evas_engine_dfb_output_redraws_clear(void *data)
907{
908 Render_Engine *re = data;
909
910 evas_common_tilebuf_clear(re->tb);
911}
912
913static void *
914evas_engine_dfb_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
915{
916 Render_Engine *re = data;
917 Tilebuf_Rect *tb_rect;
918
919 if (re->end)
920 {
921 re->end = 0;
922 return NULL;
923 }
924 if (!re->rects)
925 {
926 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
927 re->cur_rect = EINA_INLIST_GET(re->rects);
928 }
929 if (!re->cur_rect)
930 return NULL;
931
932 tb_rect = (Tilebuf_Rect*) re->cur_rect;
933 *cx = *x = tb_rect->x;
934 *cy = *y = tb_rect->y;
935 *cw = *w = tb_rect->w;
936 *ch = *h = tb_rect->h;
937 re->cur_rect = re->cur_rect->next;
938 if (!re->cur_rect)
939 {
940 evas_common_tilebuf_free_render_rects(re->rects);
941 re->rects = NULL;
942 re->end = 1;
943 }
944
945 return re->screen_image;
946}
947
948static void
949evas_engine_dfb_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x, int y, int w, int h)
950{
951 Render_Engine *re = data;
952 DFBRegion *r;
953
954 if (re->update_regions_count >= re->update_regions_limit)
955 {
956 void *tmp;
957
958 re->update_regions_limit += 16;
959
960 tmp = realloc(re->update_regions,
961 sizeof(DFBRegion) * re->update_regions_limit);
962 if (!tmp)
963 {
964 perror("realloc");
965 return;
966 }
967 re->update_regions = tmp;
968 }
969
970 r = re->update_regions + re->update_regions_count;
971 re->update_regions_count++;
972
973 r->x1 = x;
974 r->y1 = y;
975 r->x2 = x + w - 1;
976 r->y2 = y + h - 1;
977}
978
979static void
980evas_engine_dfb_output_flush(void *data)
981{
982 Render_Engine *re = data;
983 IDirectFBSurface *s = re->screen_image->surface;
984 DFBRegion *r, *r_end;
985
986 r = re->update_regions;
987 r_end = re->update_regions + re->update_regions_count;
988
989#ifdef DFB_UPDATE_INDIVIDUAL_RECTS
990 for (; r < r_end; r++)
991 s->Flip(s, r, DFB_FLIP_FLAGS);
992#else
993 DFBRegion bb;
994
995 bb.x1 = bb.y1 = 10000;
996 bb.x2 = bb.y2 = 0;
997 for (; r < r_end; r++)
998 {
999 if (bb.x1 > r->x1)
1000 bb.x1 = r->x1;
1001 if (bb.y1 > r->y1)
1002 bb.y1 = r->y1;
1003
1004 if (bb.x2 < r->x2)
1005 bb.x2 = r->x2;
1006 if (bb.y2 < r->y2)
1007 bb.y2 = r->y2;
1008 }
1009
1010 s->Flip(s, &bb, DFB_FLIP_FLAGS);
1011#endif
1012
1013 re->update_regions_count = 0;
1014}
1015
1016static void
1017evas_engine_dfb_output_idle_flush(void *data)
1018{
1019 Render_Engine *re = data;
1020
1021 if (re->update_regions_count != 0)
1022 ERR("update_regions_count not 0 as it should be!");
1023
1024 free(re->update_regions);
1025 re->update_regions_count = 0;
1026 re->update_regions_limit = 0;
1027 re->update_regions = NULL;
1028}
1029
1030/* HACK!!! -- KLUDGE!!!
1031 *
1032 * This should really use IDirectFBFont and IDirectFBSurface::DrawString(),
1033 * but to be edje-compatible IDirectFBFont::CreateFont() should be able to
1034 * load fonts from non-files, which it does not.
1035 *
1036 * Try to find a way to create own IDirectFBFont in future and load from
1037 * memory.
1038 */
1039static void
1040evas_engine_dfb_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
1041{
1042 DirectFB_Engine_Image_Entry *eim = surface;
1043 IDirectFBSurface *screen;
1044 Render_Engine *re = data;
1045 RGBA_Image *im;
1046
1047 im = (RGBA_Image *)eim->cache_entry.src;
1048 screen = eim->surface;
1049 if (!_dfb_lock_and_sync_image(screen, im, DSLF_READ | DSLF_WRITE))
1050 return;
1051
1052 evas_common_font_draw(im, context, font, x, y, intl_props);
1053 evas_common_cpu_end_opt();
1054
1055 im->image.data = NULL;
1056
1057 screen->Unlock(screen);
1058}
1059
1060
1061static void
1062_cb_draw_line(IDirectFBSurface *surface, RGBA_Draw_Context *dc __UNUSED__, const DFBRegion *region __UNUSED__, void *data)
1063{
1064 const Eina_Rectangle *r = data;
1065
1066 surface->DrawLine(surface, r->x, r->y, r->w, r->h); /* x2, y2 really */
1067}
1068
1069static void
1070evas_engine_dfb_line_draw(void *data __UNUSED__, void *context, void *surface, int x1, int y1, int x2, int y2)
1071{
1072 DirectFB_Engine_Image_Entry *eim = surface;
1073 Eina_Rectangle r;
1074
1075 if (!_dfb_surface_set_color_from_context(eim->surface, context))
1076 return;
1077
1078 EINA_RECTANGLE_SET(&r, x1, y1, x2, y2); /* x2, y2 (ab)used as w, h */
1079 _dfb_surface_for_each_cutout(eim->surface, context, _cb_draw_line, &r);
1080}
1081
1082#ifndef DFB_USE_EVAS_RECT_DRAW
1083static void
1084_cb_draw_rectangle(IDirectFBSurface *surface, RGBA_Draw_Context *dc __UNUSED__, const DFBRegion *region __UNUSED__, void *data)
1085{
1086 const Eina_Rectangle *r = data;
1087
1088 surface->FillRectangle(surface, r->x, r->y, r->w, r->h);
1089}
1090
1091static void
1092evas_engine_dfb_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
1093{
1094 DirectFB_Engine_Image_Entry *eim = surface;
1095 IDirectFBSurface *screen;
1096 Render_Engine *re = data;
1097 RGBA_Draw_Context *dc = context;
1098 Eina_Rectangle r;
1099
1100 screen = eim->surface;
1101 if (!_dfb_surface_set_color_from_context(screen, context))
1102 {
1103 if (dc->render_op != EVAS_RENDER_COPY)
1104 return;
1105 if (!eim->cache_entry.src->flags.alpha)
1106 return;
1107 screen->SetColor(screen, 0, 0, 0, 0);
1108 screen->SetDrawingFlags(screen, DSDRAW_NOFX);
1109 }
1110
1111 EINA_RECTANGLE_SET(&r, x, y, w, h);
1112 _dfb_surface_for_each_cutout(screen, context, _cb_draw_rectangle, &r);
1113}
1114#else
1115static void
1116evas_engine_dfb_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
1117{
1118 DirectFB_Engine_Image_Entry *eim = surface;
1119 IDirectFBSurface *screen;
1120 Render_Engine *re = data;
1121 RGBA_Image *dst;
1122
1123 dst = (RGBA_Image *)eim->cache_entry.src;
1124 screen = eim->surface;
1125 if (!_dfb_lock_and_sync_image(screen, dst, DSLF_READ | DSLF_WRITE))
1126 return;
1127
1128 evas_common_rectangle_draw(dst, context, x, y, w, h);
1129 evas_common_cpu_end_opt();
1130
1131 dst->image.data = NULL;
1132
1133 screen->Unlock(screen);
1134}
1135#endif
1136
1137#ifndef DFB_USE_EVAS_POLYGON_DRAW
1138static void
1139evas_engine_dfb_polygon_draw(void *data __UNUSED__, void *context, void *surface, void *polygon, int x, int y)
1140{
1141 DirectFB_Engine_Image_Entry *eim = surface;
1142 _dfb_polygon_draw(eim->surface, context, polygon, x, y);
1143}
1144#else
1145static void
1146evas_engine_dfb_polygon_draw(void *data, void *context, void *surface, void *polygon, int x, int y)
1147{
1148 DirectFB_Engine_Image_Entry *eim = surface;
1149 IDirectFBSurface *screen;
1150 Render_Engine *re = data;
1151 RGBA_Image *dst;
1152
1153 dst = (RGBA_Image *)eim->cache_entry.src;
1154 screen = eim->surface;
1155 if (!_dfb_lock_and_sync_image(screen, dst, DSLF_READ | DSLF_WRITE))
1156 return;
1157
1158 evas_common_polygon_draw(dst, context, polygon, x, y);
1159 evas_common_cpu_end_opt();
1160
1161 dst->image.data = NULL;
1162
1163 screen->Unlock(screen);
1164}
1165#endif
1166
1167/** Image Object *******************************************************/
1168static void *
1169evas_engine_dfb_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
1170{
1171 Render_Engine *re = data;
1172
1173 *error = 0;
1174 return evas_cache_engine_image_request(re->cache, file, key, lo,
1175 data, error);
1176}
1177
1178static int
1179evas_engine_dfb_image_alpha_get(void *data __UNUSED__, void *image)
1180{
1181 DirectFB_Engine_Image_Entry *eim = image;
1182 Image_Entry *ie;
1183 RGBA_Image *im;
1184
1185 if (!eim) return 1;
1186 ie = eim->cache_entry.src;
1187 im = (RGBA_Image *)ie;
1188 switch (ie->space)
1189 {
1190 case EVAS_COLORSPACE_ARGB8888:
1191 if (ie->flags.alpha) return 1;
1192 default:
1193 break;
1194 }
1195 return 0;
1196}
1197
1198static void
1199evas_engine_dfb_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
1200{
1201 DirectFB_Engine_Image_Entry *eim = image;
1202 Image_Entry *ie;
1203
1204 ie = eim->cache_entry.src;
1205 if (w) *w = ie->w;
1206 if (h) *h = ie->h;
1207}
1208
1209static int
1210evas_engine_dfb_image_colorspace_get(void *data __UNUSED__, void *image)
1211{
1212 DirectFB_Engine_Image_Entry *eim = image;
1213
1214 if (!eim) return EVAS_COLORSPACE_ARGB8888;
1215 return eim->cache_entry.src->space;
1216}
1217
1218static void
1219evas_engine_dfb_image_colorspace_set(void *data, void *image, int cspace)
1220{
1221 DirectFB_Engine_Image_Entry *eim = image;
1222
1223 if (!eim) return;
1224 if (eim->cache_entry.src->space == cspace) return;
1225
1226 evas_cache_engine_image_colorspace(&eim->cache_entry, cspace, data);
1227}
1228
1229static void *
1230evas_engine_dfb_image_new_from_copied_data(void *data, int w, int h, DATA32* image_data, int alpha, int cspace)
1231{
1232 Render_Engine *re = data;
1233
1234 return evas_cache_engine_image_copied_data(re->cache, w, h, image_data,
1235 alpha, cspace, NULL);
1236}
1237
1238static void *
1239evas_engine_dfb_image_new_from_data(void *data, int w, int h, DATA32* image_data, int alpha, int cspace)
1240{
1241 Render_Engine *re = data;
1242
1243 return evas_cache_engine_image_data(re->cache, w, h, image_data,
1244 alpha, cspace, NULL);
1245}
1246
1247static void
1248evas_engine_dfb_image_free(void *data __UNUSED__, void *image)
1249{
1250 DirectFB_Engine_Image_Entry *eim = image;
1251
1252 evas_cache_engine_image_drop(&eim->cache_entry);
1253}
1254
1255static void *
1256evas_engine_dfb_image_size_set(void *data __UNUSED__, void *image, int w, int h)
1257{
1258 DirectFB_Engine_Image_Entry *eim = image;
1259
1260 return evas_cache_engine_image_size_set(&eim->cache_entry, w, h);
1261}
1262
1263static void *
1264evas_engine_dfb_image_dirty_region(void *data __UNUSED__, void *image, int x, int y, int w, int h)
1265{
1266 DirectFB_Engine_Image_Entry *eim = image;
1267
1268 return evas_cache_engine_image_dirty(&eim->cache_entry, x, y, w, h);
1269}
1270
1271static void *
1272evas_engine_dfb_image_data_get(void *data __UNUSED__, void *image, int to_write, DATA32** image_data)
1273{
1274 DirectFB_Engine_Image_Entry *deie = image;
1275 Engine_Image_Entry *ce;
1276 Image_Entry *ie;
1277 RGBA_Image *im;
1278
1279 if (!deie)
1280 {
1281 *image_data = NULL;
1282 return NULL;
1283 }
1284
1285 ce = (Engine_Image_Entry *)deie;
1286 ie = ce->src;
1287 im = (RGBA_Image *)ie;
1288
1289 switch (ie->space)
1290 {
1291 case EVAS_COLORSPACE_ARGB8888:
1292 {
1293 DFBResult r;
1294 IDirectFBSurface *s;
1295 void *pixels;
1296 int pitch;
1297
1298 if (to_write)
1299 deie = (DirectFB_Engine_Image_Entry *)
1300 evas_cache_engine_image_dirty(ce, 0, 0, ie->w, ie->h);
1301
1302 evas_cache_engine_image_load_data(ce);
1303
1304 ce = (Engine_Image_Entry *)deie;
1305 ie = ce->src;
1306 im = (RGBA_Image *)ie;
1307 s = deie->surface;
1308
1309 if (to_write)
1310 {
1311 r = s->Lock(s, DSLF_WRITE, &pixels, &pitch);
1312 if (r != DFB_OK)
1313 goto error;
1314 deie->flags.is_locked = 1;
1315 }
1316 else
1317 {
1318 r = s->Lock(s, DSLF_READ, &pixels, &pitch);
1319 if (r != DFB_OK)
1320 goto error;
1321 s->Unlock(s);
1322 }
1323
1324 *image_data = pixels;
1325 im->image.data = pixels; /* remember for _put() */
1326 break;
1327
1328 error:
1329 ERR("Could not lock surface %p: %s",
1330 s, DirectFBErrorString(r));
1331 *image_data = NULL;
1332 break;
1333 }
1334 case EVAS_COLORSPACE_YCBCR422P709_PL:
1335 case EVAS_COLORSPACE_YCBCR422P601_PL:
1336 case EVAS_COLORSPACE_YCBCR422601_PL:
1337 /* XXX untested */
1338 *image_data = im->cs.data;
1339 break;
1340 default:
1341 abort();
1342 break;
1343 }
1344 return deie;
1345}
1346
1347static void *
1348evas_engine_dfb_image_data_put(void *data, void *image, DATA32* image_data)
1349{
1350 DirectFB_Engine_Image_Entry *deie = image;
1351 Render_Engine *re = data;
1352 Engine_Image_Entry *ce;
1353 Image_Entry *ie;
1354 RGBA_Image *im;
1355
1356 if (!deie) return NULL;
1357
1358 ce = (Engine_Image_Entry *)deie;
1359 ie = ce->src;
1360 im = (RGBA_Image*)ie;
1361
1362 switch (ie->space)
1363 {
1364 case EVAS_COLORSPACE_ARGB8888:
1365 if (image_data == im->image.data)
1366 {
1367 if (deie->flags.is_locked)
1368 {
1369 deie->surface->Unlock(deie->surface);
1370 deie->flags.is_locked = 0;
1371 }
1372 }
1373 else
1374 {
1375 int alpha, cspace;
1376
1377 alpha = func.image_alpha_get(re, deie);
1378 cspace = func.image_colorspace_get(re, deie);
1379
1380 evas_cache_engine_image_drop(ce);
1381 deie = (DirectFB_Engine_Image_Entry *)
1382 evas_cache_engine_image_data(re->cache, ce->w, ce->h,
1383 image_data, alpha, cspace, NULL);
1384 }
1385 break;
1386 case EVAS_COLORSPACE_YCBCR422P601_PL:
1387 case EVAS_COLORSPACE_YCBCR422P709_PL:
1388 case EVAS_COLORSPACE_YCBCR422601_PL:
1389 /* XXX untested */
1390 if (image_data != im->cs.data)
1391 {
1392 if (im->cs.data)
1393 if (!im->cs.no_free)
1394 free(im->cs.data);
1395 im->cs.data = image_data;
1396 evas_common_image_colorspace_dirty(im);
1397 }
1398 break;
1399 default:
1400 abort();
1401 break;
1402 }
1403 return deie;
1404}
1405
1406static void
1407evas_engine_dfb_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
1408{
1409 DirectFB_Engine_Image_Entry *deie = image;
1410 RGBA_Image *im;
1411
1412 if (!deie) return ;
1413 im = (RGBA_Image*) deie->cache_entry.src;
1414 if (!im) return ;
1415 evas_cache_image_preload_data(&im->cache_entry, target);
1416}
1417
1418static void
1419evas_engine_dfb_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
1420{
1421 DirectFB_Engine_Image_Entry *deie = image;
1422 RGBA_Image *im;
1423
1424 if (!deie) return ;
1425 im = (RGBA_Image*) deie->cache_entry.src;
1426 if (!im) return ;
1427 evas_cache_image_preload_cancel(&im->cache_entry, target);
1428}
1429
1430static void *
1431evas_engine_dfb_image_alpha_set(void *data __UNUSED__, void *image, int has_alpha)
1432{
1433 DirectFB_Engine_Image_Entry *eim = image;
1434 Engine_Image_Entry *ce;
1435 Image_Entry *ie;
1436 RGBA_Image *im;
1437
1438 if (!eim) return NULL;
1439
1440 ce = &eim->cache_entry;
1441 ie = ce->src;
1442 im = (RGBA_Image*)ie;
1443
1444 if (ie->space != EVAS_COLORSPACE_ARGB8888)
1445 {
1446 ie->flags.alpha = 0;
1447 return eim;
1448 }
1449
1450 eim = (DirectFB_Engine_Image_Entry *)
1451 evas_cache_engine_image_dirty(ce, 0, 0, ce->w, ce->h);
1452
1453 ie->flags.alpha = !!has_alpha;
1454 return eim;
1455}
1456
1457struct _for_each_cutout_image
1458{
1459 IDirectFBSurface *image;
1460 DFBRectangle src, dst;
1461};
1462
1463static void
1464_cb_draw_image_unscaled(IDirectFBSurface *surface, RGBA_Draw_Context *dc __UNUSED__, const DFBRegion *region __UNUSED__, void *data)
1465{
1466 const struct _for_each_cutout_image *p = data;
1467
1468 surface->Blit(surface, p->image, &p->src, p->dst.x, p->dst.y);
1469}
1470
1471static void
1472_cb_draw_image_scaled(IDirectFBSurface *surface, RGBA_Draw_Context *dc __UNUSED__, const DFBRegion *region __UNUSED__, void *data)
1473{
1474 const struct _for_each_cutout_image *p = data;
1475
1476 surface->StretchBlit(surface, p->image, &p->src, &p->dst);
1477}
1478
1479#ifndef DFB_USE_EVAS_IMAGE_DRAW
1480static void
1481evas_engine_dfb_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth __UNUSED__)
1482{
1483 DirectFB_Engine_Image_Entry *eim = surface;
1484 Render_Engine *re = data;
1485 IDirectFBSurface *screen;
1486 DirectFB_Engine_Image_Entry *deie = image;
1487 struct _for_each_cutout_image p;
1488 _cb_for_each_cutout_t cb;
1489
1490 screen = eim->surface;
1491 if (deie->cache_entry.src->space == EVAS_COLORSPACE_ARGB8888)
1492 evas_cache_engine_image_load_data(&deie->cache_entry);
1493
1494 evas_common_image_colorspace_normalize((RGBA_Image *)deie->cache_entry.src);
1495
1496 _dfb_surface_set_blit_params(eim, deie, context);
1497
1498 _dfb_rect_set(&p.src, src_x, src_y, src_w, src_h);
1499 _dfb_rect_set(&p.dst, dst_x, dst_y, dst_w, dst_h);
1500 p.image = deie->surface;
1501
1502 if ((src_w == dst_w) && (src_h == dst_h))
1503 cb = _cb_draw_image_unscaled;
1504 else
1505 cb = _cb_draw_image_scaled;
1506
1507 _dfb_blit_accel_caps_print(screen, deie->surface);
1508 _dfb_surface_for_each_cutout(screen, context, cb, &p);
1509}
1510#else /* DFB_USE_EVAS_IMAGE_DRAW */
1511static void
1512evas_engine_dfb_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
1513{
1514 DirectFB_Engine_Image_Entry *deie = image;
1515 DirectFB_Engine_Image_Entry *eim = surface;
1516 Render_Engine *re = data;
1517 RGBA_Image *dst, *src;
1518 IDirectFBSurface *screen;
1519
1520 screen = eim->surface;
1521 if (deie->cache_entry.src->space == EVAS_COLORSPACE_ARGB8888)
1522 evas_cache_engine_image_load_data(&deie->cache_entry);
1523
1524 evas_common_image_colorspace_normalize((RGBA_Image *)deie->cache_entry.src);
1525
1526 dst = (RGBA_Image *)eim->cache_entry.src;
1527 if (!_dfb_lock_and_sync_image(screen, dst, DSLF_READ | DSLF_WRITE))
1528 return;
1529
1530 src = (RGBA_Image *)deie->cache_entry.src;
1531 if (!_dfb_lock_and_sync_image(deie->surface, src, DSLF_READ))
1532 goto error_src;
1533
1534 if (smooth)
1535 evas_common_scale_rgba_in_to_out_clip_smooth(src, dst, context,
1536 src_x, src_y, src_w, src_h,
1537 dst_x, dst_y, dst_w, dst_h);
1538 else
1539 evas_common_scale_rgba_in_to_out_clip_sample(src, dst, context,
1540 src_x, src_y, src_w, src_h,
1541 dst_x, dst_y, dst_w, dst_h);
1542 evas_common_cpu_end_opt();
1543
1544 dst->image.data = NULL;
1545
1546 screen->Unlock(screen);
1547 deie->surface->Unlock(deie->surface);
1548
1549 return;
1550
1551 error_src:
1552 screen->Unlock(screen);
1553}
1554#endif
1555
1556static void
1557evas_engine_dfb_image_map_draw(void *data __UNUSED__, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
1558{
1559 Render_Engine *re = (Render_Engine*) data;
1560 DirectFB_Engine_Image_Entry *deie = image;
1561 DirectFB_Engine_Image_Entry *eim = surface;
1562 IDirectFBSurface *screen;
1563 RGBA_Image *dst, *src;
1564
1565 if (!deie || !eim) return ;
1566
1567 screen = eim->surface;
1568 dst = (RGBA_Image *) eim->cache_entry.src;
1569 if (!_dfb_lock_and_sync_image(screen, dst, DSLF_READ | DSLF_WRITE))
1570 return;
1571
1572 src = (RGBA_Image *)deie->cache_entry.src;
1573 if (!_dfb_lock_and_sync_image(deie->surface, src, DSLF_READ))
1574 goto error_src;
1575
1576 evas_common_map_rgba(src, dst, context, 4, p, smooth, level);
1577 evas_common_cpu_end_opt();
1578
1579 screen->Unlock(screen);
1580 deie->surface->Unlock(deie->surface);
1581
1582 return ;
1583
1584 error_src:
1585 screen->Unlock(screen);
1586}
1587
1588static void *
1589evas_engine_dfb_image_map_surface_new(void *data, int w, int h, int alpha)
1590{
1591 Render_Engine *re = (Render_Engine*) data;
1592 void *surface;
1593
1594 surface = evas_cache_engine_image_copied_data(re->cache,
1595 w, h, NULL, alpha,
1596 EVAS_COLORSPACE_ARGB8888,
1597 NULL);
1598 return surface;
1599}
1600
1601static void
1602evas_engine_dfb_image_map_surface_free(void *data __UNUSED__, void *surface)
1603{
1604 evas_cache_engine_image_drop(surface);
1605}
1606
1607
1608static void
1609evas_engine_dfb_image_cache_flush(void *data)
1610{
1611 Render_Engine *re = data;
1612 int size;
1613
1614 size = evas_cache_engine_image_get(re->cache);
1615 evas_cache_engine_image_set(re->cache, 0);
1616 evas_cache_engine_image_set(re->cache, size);
1617}
1618
1619static void
1620evas_engine_dfb_image_cache_set(void *data, int bytes)
1621{
1622 Render_Engine *re = data;
1623
1624 evas_cache_engine_image_set(re->cache, bytes);
1625}
1626
1627static int
1628evas_engine_dfb_image_cache_get(void *data)
1629{
1630 Render_Engine *re = data;
1631
1632 return evas_cache_engine_image_get(re->cache);
1633}
1634
1635static char *
1636evas_engine_dfb_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
1637{
1638 DirectFB_Engine_Image_Entry *eim = image;
1639 RGBA_Image *im;
1640
1641 if (!eim) return NULL;
1642 im = (RGBA_Image *)eim->cache_entry.src;
1643
1644 return im->info.comment;
1645}
1646
1647static void
1648evas_engine_dfb_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
1649{
1650}
1651
1652static int
1653evas_engine_dfb_image_scale_hint_get(void *data __UNUSED__, void *image)
1654{
1655 return EVAS_IMAGE_SCALE_HINT_NONE;
1656}
1657
1658static Eina_Bool
1659evas_engine_dfb_canvas_alpha_get(void *data, void *context)
1660{
1661 Render_Engine *re = data;
1662
1663 return re->screen_image->cache_entry.src->flags.alpha;
1664}
1665
1666static int
1667module_open(Evas_Module *em)
1668{
1669 if (!em) return 0;
1670 /* get whatever engine module we inherit from */
1671 if (!_evas_module_engine_inherit(&parent_func, "software_generic")) return 0;
1672 _evas_engine_directfb_log_dom = eina_log_domain_register
1673 ("evas-directfb", EVAS_DEFAULT_LOG_COLOR);
1674 if (_evas_engine_directfb_log_dom < 0)
1675 {
1676 EINA_LOG_ERR("Can not create a module log domain.");
1677 return 0;
1678 }
1679 /* store it for later use */
1680 func = parent_func;
1681 /* now to override methods */
1682#define ORD(f) EVAS_API_OVERRIDE(f, &func, evas_engine_dfb_)
1683 ORD(info);
1684 ORD(info_free);
1685 ORD(setup);
1686 ORD(canvas_alpha_get);
1687 ORD(output_free);
1688 ORD(output_resize);
1689 ORD(output_tile_size_set);
1690 ORD(output_redraws_rect_add);
1691 ORD(output_redraws_rect_del);
1692 ORD(output_redraws_clear);
1693 ORD(output_redraws_next_update_get);
1694 ORD(output_redraws_next_update_push);
1695 ORD(output_flush);
1696 ORD(output_idle_flush);
1697 ORD(image_load);
1698 ORD(image_new_from_data);
1699 ORD(image_new_from_copied_data);
1700 ORD(image_colorspace_set);
1701 ORD(image_colorspace_get);
1702 ORD(image_free);
1703 ORD(image_size_set);
1704 ORD(image_size_get);
1705 ORD(image_dirty_region);
1706 ORD(image_data_get);
1707 ORD(image_data_put);
1708 ORD(image_data_preload_request);
1709 ORD(image_data_preload_cancel);
1710 ORD(image_alpha_set);
1711 ORD(image_alpha_get);
1712 ORD(image_draw);
1713 ORD(image_comment_get);
1714 ORD(image_cache_flush);
1715 ORD(image_cache_set);
1716 ORD(image_cache_get);
1717 ORD(font_draw);
1718 ORD(line_draw);
1719 ORD(rectangle_draw);
1720 ORD(polygon_draw);
1721 ORD(image_scale_hint_set);
1722 ORD(image_scale_hint_get);
1723
1724 ORD(image_map_draw);
1725 ORD(image_map_surface_new);
1726 ORD(image_map_surface_free);
1727
1728 /* now advertise out own api */
1729 em->functions = (void *)(&func);
1730 return 1;
1731}
1732
1733static void
1734module_close(Evas_Module *em)
1735{
1736 eina_log_domain_unregister(_evas_engine_directfb_log_dom);
1737}
1738
1739static Evas_Module_Api evas_modapi =
1740{
1741 EVAS_MODULE_API_VERSION,
1742 "directfb",
1743 "ProFUSION embedded systems",
1744 {
1745 module_open,
1746 module_close
1747 }
1748};
1749
1750EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, directfb);
1751
1752#ifndef EVAS_STATIC_BUILD_DIRECTFB
1753EVAS_EINA_MODULE_DEFINE(engine, directfb);
1754#endif
diff --git a/libraries/evas/src/modules/engines/directfb/evas_engine.h b/libraries/evas/src/modules/engines/directfb/evas_engine.h
deleted file mode 100644
index 7ad1e38..0000000
--- a/libraries/evas/src/modules/engines/directfb/evas_engine.h
+++ /dev/null
@@ -1,71 +0,0 @@
1#ifndef EVAS_ENGINE_DIRECTFB_H
2#define EVAS_ENGINE_DIRECTFB_H
3
4#include "evas_common.h"
5#include "evas_private.h"
6#include "Evas_Engine_DirectFB.h"
7
8extern int _evas_engine_directfb_log_dom ;
9
10#ifdef ERR
11# undef ERR
12#endif
13#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_directfb_log_dom, __VA_ARGS__)
14
15#ifdef DBG
16# undef DBG
17#endif
18#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_directfb_log_dom, __VA_ARGS__)
19
20#ifdef INF
21# undef INF
22#endif
23#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_directfb_log_dom, __VA_ARGS__)
24
25#ifdef WRN
26# undef WRN
27#endif
28#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_directfb_log_dom, __VA_ARGS__)
29
30#ifdef CRIT
31# undef CRIT
32#endif
33#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_directfb_log_dom, __VA_ARGS__)
34
35typedef struct _DirectFB_Engine_Image_Entry DirectFB_Engine_Image_Entry;
36struct _DirectFB_Engine_Image_Entry
37{
38 Engine_Image_Entry cache_entry;
39 IDirectFBSurface *surface;
40
41 struct
42 {
43 Eina_Bool engine_surface : 1;
44 Eina_Bool is_locked : 1;
45 } flags;
46};
47
48typedef struct _Render_Engine Render_Engine;
49struct _Render_Engine
50{
51 DirectFB_Engine_Image_Entry *screen_image;
52 const struct Evas_Engine_DirectFB_Spec *spec;
53 IDirectFB *dfb;
54
55 Evas_Cache_Engine_Image *cache;
56
57 Tilebuf *tb;
58 Tilebuf_Rect *rects;
59 Eina_Inlist *cur_rect;
60
61 DFBRegion *update_regions;
62 unsigned int update_regions_count;
63 unsigned int update_regions_limit;
64
65 Eina_Bool end : 1;
66};
67
68int _dfb_surface_set_color_from_context(IDirectFBSurface *surface, RGBA_Draw_Context *dc);
69void _dfb_polygon_draw(IDirectFBSurface *surface, RGBA_Draw_Context *dc, Eina_Inlist *points, int x, int y);
70
71#endif
diff --git a/libraries/evas/src/modules/engines/directfb/polygon.c b/libraries/evas/src/modules/engines/directfb/polygon.c
deleted file mode 100644
index 715fd84..0000000
--- a/libraries/evas/src/modules/engines/directfb/polygon.c
+++ /dev/null
@@ -1,269 +0,0 @@
1#include <math.h>
2#include "evas_engine.h"
3
4/* reduce calls to DirectFB (FillSpans), but uses twice as much memory */
5//#define USE_SPAN_RECTS 1
6
7#define MAX_SPANS 512
8typedef struct _RGBA_Edge RGBA_Edge;
9typedef struct _RGBA_Vertex RGBA_Vertex;
10
11struct _RGBA_Edge
12{
13 double x, dx;
14 int i;
15};
16
17struct _RGBA_Vertex
18{
19 double x, y;
20 int i;
21};
22
23#define POLY_EDGE_DEL(_i) \
24{ \
25 int _j; \
26 \
27 for (_j = 0; (_j < num_active_edges) && (edges[_j].i != _i); _j++); \
28 if (_j < num_active_edges) \
29 { \
30 num_active_edges--; \
31 memmove(&(edges[_j]), &(edges[_j + 1]), \
32 (num_active_edges - _j) * sizeof(RGBA_Edge)); \
33 } \
34}
35
36#define POLY_EDGE_ADD(_i, _y) \
37{ \
38 int _j; \
39 float _dx; \
40 RGBA_Vertex *_p, *_q; \
41 if (_i < (n - 1)) _j = _i + 1; \
42 else _j = 0; \
43 if (point[_i].y < point[_j].y) \
44 { \
45 _p = &(point[_i]); \
46 _q = &(point[_j]); \
47 } \
48 else \
49 { \
50 _p = &(point[_j]); \
51 _q = &(point[_i]); \
52 } \
53 edges[num_active_edges].dx = _dx = (_q->x - _p->x) / (_q->y - _p->y); \
54 edges[num_active_edges].x = (_dx * ((float)_y + 0.5 - _p->y)) + _p->x; \
55 edges[num_active_edges].i = _i; \
56 num_active_edges++; \
57}
58
59static int
60polygon_point_sorter(const void *a, const void *b)
61{
62 RGBA_Vertex *p, *q;
63
64 p = (RGBA_Vertex *)a;
65 q = (RGBA_Vertex *)b;
66 if (p->y <= q->y) return -1;
67 return 1;
68}
69
70static int
71polygon_edge_sorter(const void *a, const void *b)
72{
73 RGBA_Edge *p, *q;
74
75 p = (RGBA_Edge *)a;
76 q = (RGBA_Edge *)b;
77 if (p->x <= q->x) return -1;
78 return 1;
79}
80
81#ifndef USE_SPAN_RECTS
82typedef DFBSpan span_t;
83
84static void
85polygon_span_add(span_t *span, int y __UNUSED__, int x, int w)
86{
87 span->x = x;
88 span->w = w;
89}
90
91static void
92polygon_spans_fill(IDirectFBSurface *surface, int y, const span_t *spans, int n_spans)
93{
94 /* directfb automatically increments y for each span */
95 for (; n_spans > 0; n_spans--, spans++)
96 surface->FillSpans(surface, y, spans, 1);
97}
98#else /* USE_SPAN_RECTS */
99typedef DFBRectangle span_t;
100
101static void
102polygon_span_add(span_t *span, int y, int x, int w)
103{
104 span->x = x;
105 span->y = y;
106 span->w = w;
107 span->h = 1;
108}
109
110static void
111polygon_spans_fill(IDirectFBSurface *surface, int y, const span_t *spans, int n_spans)
112{
113 surface->FillRectangles(surface, spans, n_spans);
114}
115#endif /* USE_SPAN_RECTS */
116
117
118void
119_dfb_polygon_draw(IDirectFBSurface *surface, RGBA_Draw_Context *dc, Eina_Inlist *points, int px, int py)
120{
121 RGBA_Polygon_Point *pt;
122 RGBA_Vertex *point;
123 RGBA_Edge *edges;
124 int num_active_edges;
125 int n;
126 int i, j, k;
127 int y0, y1, y;
128 int ext_x, ext_y, ext_w, ext_h;
129 int *sorted_index;
130
131 ext_x = 0;
132 ext_y = 0;
133 surface->GetSize(surface, &ext_w, &ext_h);
134 if (dc->clip.use)
135 {
136 if (dc->clip.x > ext_x)
137 {
138 ext_w += ext_x - dc->clip.x;
139 ext_x = dc->clip.x;
140 }
141 if ((ext_x + ext_w) > (dc->clip.x + dc->clip.w))
142 {
143 ext_w = (dc->clip.x + dc->clip.w) - ext_x;
144 }
145 if (dc->clip.y > ext_y)
146 {
147 ext_h += ext_y - dc->clip.y;
148 ext_y = dc->clip.y;
149 }
150 if ((ext_y + ext_h) > (dc->clip.y + dc->clip.h))
151 {
152 ext_h = (dc->clip.y + dc->clip.h) - ext_y;
153 }
154 }
155 if ((ext_w <= 0) || (ext_h <= 0)) return;
156
157 evas_common_cpu_end_opt();
158
159 if (!_dfb_surface_set_color_from_context(surface, dc))
160 return;
161
162 n = 0; EINA_INLIST_FOREACH(points, pt) n++;
163 if (n < 3) return;
164 edges = malloc(sizeof(RGBA_Edge) * n);
165 if (!edges) return;
166 point = malloc(sizeof(RGBA_Vertex) * n);
167 if (!point)
168 {
169 free(edges);
170 return;
171 }
172 sorted_index = malloc(sizeof(int) * n);
173 if (!sorted_index)
174 {
175 free(edges);
176 free(point);
177 return;
178 }
179
180 k = 0;
181 EINA_INLIST_FOREACH(points, pt)
182 {
183 point[k].x = pt->x + px;
184 point[k].y = pt->y + py;
185 point[k].i = k;
186 k++;
187 }
188 qsort(point, n, sizeof(RGBA_Vertex), polygon_point_sorter);
189 for (k = 0; k < n; k++) sorted_index[k] = point[k].i;
190 k = 0;
191 EINA_INLIST_FOREACH(points, pt)
192 {
193 point[k].x = pt->x + px;
194 point[k].y = pt->y + py;
195 point[k].i = k;
196 k++;
197 }
198
199 y0 = MAX(ext_y, ceil(point[sorted_index[0]].y - 0.5));
200 y1 = MIN(ext_y + ext_h - 1, floor(point[sorted_index[n - 1]].y - 0.5));
201
202 k = 0;
203 num_active_edges = 0;
204
205 for (y = y0; y <= y1; y++)
206 {
207 span_t spans[MAX_SPANS];
208 unsigned int n_spans = 0;
209
210 for (; (k < n) && (point[sorted_index[k]].y <= ((double)y + 0.5)); k++)
211 {
212 i = sorted_index[k];
213
214 if (i > 0) j = i - 1;
215 else j = n - 1;
216 if (point[j].y <= ((double)y - 0.5))
217 {
218 POLY_EDGE_DEL(j)
219 }
220 else if (point[j].y > ((double)y + 0.5))
221 {
222 POLY_EDGE_ADD(j, y)
223 }
224 if (i < (n - 1)) j = i + 1;
225 else j = 0;
226 if (point[j].y <= ((double)y - 0.5))
227 {
228 POLY_EDGE_DEL(i)
229 }
230 else if (point[j].y > ((double)y + 0.5))
231 {
232 POLY_EDGE_ADD(i, y)
233 }
234 }
235
236 qsort(edges, num_active_edges, sizeof(RGBA_Edge), polygon_edge_sorter);
237
238 for (j = 0; j < num_active_edges; j += 2)
239 {
240 int x0, x1;
241
242 x0 = ceil(edges[j].x - 0.5);
243 if (j < (num_active_edges - 1))
244 x1 = floor(edges[j + 1].x - 0.5);
245 else
246 x1 = x0;
247 if ((x1 >= ext_x) && (x0 < (ext_x + ext_w)) && (x0 <= x1))
248 {
249 if (n_spans == MAX_SPANS)
250 {
251 polygon_spans_fill(surface, y, spans, n_spans);
252 n_spans = 0;
253 }
254
255 polygon_span_add(spans + n_spans, y, x0, (x1 - x0) + 1);
256 n_spans++;
257 }
258 edges[j].x += edges[j].dx;
259 edges[j + 1].x += edges[j + 1].dx;
260 }
261
262 if (n_spans)
263 polygon_spans_fill(surface, y, spans, n_spans);
264 }
265
266 free(edges);
267 free(point);
268 free(sorted_index);
269}
diff --git a/libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h b/libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h
deleted file mode 100644
index b548237..0000000
--- a/libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#ifndef _EVAS_ENGINE_FB_H
2#define _EVAS_ENGINE_FB_H
3
4typedef struct _Evas_Engine_Info_FB Evas_Engine_Info_FB;
5
6struct _Evas_Engine_Info_FB
7{
8 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
9 /* at you and make nasty noises */
10 Evas_Engine_Info magic;
11
12 struct {
13
14 int virtual_terminal;
15 int device_number;
16 int refresh;
17 int rotation;
18 } info;
19
20 /* non-blocking or blocking mode */
21 Evas_Engine_Render_Mode render_mode;
22};
23#endif
24
25
diff --git a/libraries/evas/src/modules/engines/fb/Makefile.am b/libraries/evas/src/modules/engines/fb/Makefile.am
deleted file mode 100644
index 55127bb..0000000
--- a/libraries/evas/src/modules/engines/fb/Makefile.am
+++ /dev/null
@@ -1,48 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@evas_engine_fb_cflags@
13
14if BUILD_ENGINE_FB
15
16FB_SOURCES = \
17evas_engine.c \
18evas_fb_main.c \
19evas_outbuf.c
20
21FB_LIBADD = @evas_engine_fb_libs@
22
23
24includes_HEADERS = Evas_Engine_FB.h
25includesdir = $(includedir)/evas-@VMAJ@
26
27if !EVAS_STATIC_BUILD_FB
28
29pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH)
30pkg_LTLIBRARIES = module.la
31module_la_SOURCES = $(FB_SOURCES)
32module_la_LIBADD = @EINA_LIBS@ $(FB_LIBADD) $(top_builddir)/src/lib/libevas.la
33module_la_LDFLAGS = -module -avoid-version
34module_la_LIBTOOLFLAGS = --tag=disable-static
35
36else
37
38noinst_LTLIBRARIES = libevas_engine_fb.la
39
40libevas_engine_fb_la_SOURCES = $(FB_SOURCES)
41libevas_engine_fb_la_LIBADD = $(FB_LIBADD)
42
43endif
44endif
45
46EXTRA_DIST = \
47evas_engine.h \
48evas_fb.h
diff --git a/libraries/evas/src/modules/engines/fb/Makefile.in b/libraries/evas/src/modules/engines/fb/Makefile.in
deleted file mode 100644
index 31d222a..0000000
--- a/libraries/evas/src/modules/engines/fb/Makefile.in
+++ /dev/null
@@ -1,829 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/fb
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@libevas_engine_fb_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_fb_la_SOURCES_DIST = evas_engine.c evas_fb_main.c \
87 evas_outbuf.c
88@BUILD_ENGINE_FB_TRUE@am__objects_1 = evas_engine.lo evas_fb_main.lo \
89@BUILD_ENGINE_FB_TRUE@ evas_outbuf.lo
90@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@am_libevas_engine_fb_la_OBJECTS = $(am__objects_1)
91libevas_engine_fb_la_OBJECTS = $(am_libevas_engine_fb_la_OBJECTS)
92AM_V_lt = $(am__v_lt_$(V))
93am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
94am__v_lt_0 = --silent
95@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@am_libevas_engine_fb_la_rpath =
96@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
97@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@ $(top_builddir)/src/lib/libevas.la
98am__module_la_SOURCES_DIST = evas_engine.c evas_fb_main.c \
99 evas_outbuf.c
100@BUILD_ENGINE_FB_TRUE@am__objects_2 = module_la-evas_engine.lo \
101@BUILD_ENGINE_FB_TRUE@ module_la-evas_fb_main.lo \
102@BUILD_ENGINE_FB_TRUE@ module_la-evas_outbuf.lo
103@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@am_module_la_rpath = \
109@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@ -rpath \
110@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@ $(pkgdir)
111DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
112depcomp = $(SHELL) $(top_srcdir)/depcomp
113am__depfiles_maybe = depfiles
114am__mv = mv -f
115COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
116 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
117LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
118 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
119 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
120 $(AM_CFLAGS) $(CFLAGS)
121AM_V_CC = $(am__v_CC_$(V))
122am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
123am__v_CC_0 = @echo " CC " $@;
124AM_V_at = $(am__v_at_$(V))
125am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
126am__v_at_0 = @
127CCLD = $(CC)
128LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
129 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
130 $(AM_LDFLAGS) $(LDFLAGS) -o $@
131AM_V_CCLD = $(am__v_CCLD_$(V))
132am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
133am__v_CCLD_0 = @echo " CCLD " $@;
134AM_V_GEN = $(am__v_GEN_$(V))
135am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
136am__v_GEN_0 = @echo " GEN " $@;
137SOURCES = $(libevas_engine_fb_la_SOURCES) $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_fb_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_FB.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
198EXOTIC_LIBS = @EXOTIC_LIBS@
199FGREP = @FGREP@
200FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
201FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
202FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
203FREETYPE_LIBS = @FREETYPE_LIBS@
204FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
205FRIBIDI_LIBS = @FRIBIDI_LIBS@
206GL_EET_CFLAGS = @GL_EET_CFLAGS@
207GL_EET_LIBS = @GL_EET_LIBS@
208GREP = @GREP@
209HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
210HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
211INSTALL = @INSTALL@
212INSTALL_DATA = @INSTALL_DATA@
213INSTALL_PROGRAM = @INSTALL_PROGRAM@
214INSTALL_SCRIPT = @INSTALL_SCRIPT@
215INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
216LD = @LD@
217LDFLAGS = @LDFLAGS@
218LIBOBJS = @LIBOBJS@
219LIBS = @LIBS@
220LIBTOOL = @LIBTOOL@
221LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
222LINEBREAK_LIBS = @LINEBREAK_LIBS@
223LIPO = @LIPO@
224LN_S = @LN_S@
225LTLIBOBJS = @LTLIBOBJS@
226MAKEINFO = @MAKEINFO@
227MKDIR_P = @MKDIR_P@
228MODULE_ARCH = @MODULE_ARCH@
229NM = @NM@
230NMEDIT = @NMEDIT@
231OBJC = @OBJC@
232OBJCDEPMODE = @OBJCDEPMODE@
233OBJCFLAGS = @OBJCFLAGS@
234OBJDUMP = @OBJDUMP@
235OBJEXT = @OBJEXT@
236OTOOL = @OTOOL@
237OTOOL64 = @OTOOL64@
238PACKAGE = @PACKAGE@
239PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
240PACKAGE_NAME = @PACKAGE_NAME@
241PACKAGE_STRING = @PACKAGE_STRING@
242PACKAGE_TARNAME = @PACKAGE_TARNAME@
243PACKAGE_URL = @PACKAGE_URL@
244PACKAGE_VERSION = @PACKAGE_VERSION@
245PATH_SEPARATOR = @PATH_SEPARATOR@
246PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
247PIXMAN_LIBS = @PIXMAN_LIBS@
248PKG_CONFIG = @PKG_CONFIG@
249PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
250PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251PNG_CFLAGS = @PNG_CFLAGS@
252PNG_LIBS = @PNG_LIBS@
253RANLIB = @RANLIB@
254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_LIBS = @SDL_LIBS@
256SED = @SED@
257SET_MAKE = @SET_MAKE@
258SHELL = @SHELL@
259SHM_OPEN_LINK = @SHM_OPEN_LINK@
260STRIP = @STRIP@
261SVG_CFLAGS = @SVG_CFLAGS@
262SVG_LIBS = @SVG_LIBS@
263VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
264VALGRIND_LIBS = @VALGRIND_LIBS@
265VERSION = @VERSION@
266VMAJ = @VMAJ@
267WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
268WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
269XCB_CFLAGS = @XCB_CFLAGS@
270XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
271XCB_GL_LIBS = @XCB_GL_LIBS@
272XCB_LIBS = @XCB_LIBS@
273XEXT_CFLAGS = @XEXT_CFLAGS@
274XEXT_LIBS = @XEXT_LIBS@
275XMKMF = @XMKMF@
276X_CFLAGS = @X_CFLAGS@
277X_EXTRA_LIBS = @X_EXTRA_LIBS@
278X_LIBS = @X_LIBS@
279X_PRE_LIBS = @X_PRE_LIBS@
280abs_builddir = @abs_builddir@
281abs_srcdir = @abs_srcdir@
282abs_top_builddir = @abs_top_builddir@
283abs_top_srcdir = @abs_top_srcdir@
284ac_ct_CC = @ac_ct_CC@
285ac_ct_CXX = @ac_ct_CXX@
286ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
287ac_ct_OBJC = @ac_ct_OBJC@
288altivec_cflags = @altivec_cflags@
289am__include = @am__include@
290am__leading_dot = @am__leading_dot@
291am__quote = @am__quote@
292am__tar = @am__tar@
293am__untar = @am__untar@
294bindir = @bindir@
295build = @build@
296build_alias = @build_alias@
297build_cpu = @build_cpu@
298build_os = @build_os@
299build_vendor = @build_vendor@
300builddir = @builddir@
301datadir = @datadir@
302datarootdir = @datarootdir@
303dlopen_libs = @dlopen_libs@
304docdir = @docdir@
305dvidir = @dvidir@
306edje_cc = @edje_cc@
307efl_doxygen = @efl_doxygen@
308efl_have_doxygen = @efl_have_doxygen@
309evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
310evas_engine_buffer_libs = @evas_engine_buffer_libs@
311evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
312evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
313evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
314evas_engine_directfb_libs = @evas_engine_directfb_libs@
315evas_engine_fb_cflags = @evas_engine_fb_cflags@
316evas_engine_fb_libs = @evas_engine_fb_libs@
317evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
318evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
319evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
320evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
321evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
322evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
323evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
324evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
325evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
326evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
327evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
328evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
329evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
330evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
331evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
332evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
333evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
334evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
335evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
336evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
337evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
338evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
339evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
340evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
341evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines \
430@FREETYPE_CFLAGS@ \
431@PIXMAN_CFLAGS@ \
432@EINA_CFLAGS@ \
433@evas_engine_fb_cflags@
434
435@BUILD_ENGINE_FB_TRUE@FB_SOURCES = \
436@BUILD_ENGINE_FB_TRUE@evas_engine.c \
437@BUILD_ENGINE_FB_TRUE@evas_fb_main.c \
438@BUILD_ENGINE_FB_TRUE@evas_outbuf.c
439
440@BUILD_ENGINE_FB_TRUE@FB_LIBADD = @evas_engine_fb_libs@
441@BUILD_ENGINE_FB_TRUE@includes_HEADERS = Evas_Engine_FB.h
442@BUILD_ENGINE_FB_TRUE@includesdir = $(includedir)/evas-@VMAJ@
443@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH)
444@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@pkg_LTLIBRARIES = module.la
445@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_SOURCES = $(FB_SOURCES)
446@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_LIBADD = @EINA_LIBS@ $(FB_LIBADD) $(top_builddir)/src/lib/libevas.la
447@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_LDFLAGS = -module -avoid-version
448@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
449@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@noinst_LTLIBRARIES = libevas_engine_fb.la
450@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@libevas_engine_fb_la_SOURCES = $(FB_SOURCES)
451@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@libevas_engine_fb_la_LIBADD = $(FB_LIBADD)
452EXTRA_DIST = \
453evas_engine.h \
454evas_fb.h
455
456all: all-am
457
458.SUFFIXES:
459.SUFFIXES: .c .lo .o .obj
460$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
461 @for dep in $?; do \
462 case '$(am__configure_deps)' in \
463 *$$dep*) \
464 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
465 && { if test -f $@; then exit 0; else break; fi; }; \
466 exit 1;; \
467 esac; \
468 done; \
469 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/fb/Makefile'; \
470 $(am__cd) $(top_srcdir) && \
471 $(AUTOMAKE) --gnu src/modules/engines/fb/Makefile
472.PRECIOUS: Makefile
473Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
474 @case '$?' in \
475 *config.status*) \
476 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
477 *) \
478 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
479 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
480 esac;
481
482$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484
485$(top_srcdir)/configure: $(am__configure_deps)
486 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
487$(ACLOCAL_M4): $(am__aclocal_m4_deps)
488 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
489$(am__aclocal_m4_deps):
490
491clean-noinstLTLIBRARIES:
492 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
493 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
494 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
495 test "$$dir" != "$$p" || dir=.; \
496 echo "rm -f \"$${dir}/so_locations\""; \
497 rm -f "$${dir}/so_locations"; \
498 done
499install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
500 @$(NORMAL_INSTALL)
501 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
502 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
503 list2=; for p in $$list; do \
504 if test -f $$p; then \
505 list2="$$list2 $$p"; \
506 else :; fi; \
507 done; \
508 test -z "$$list2" || { \
509 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
510 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
511 }
512
513uninstall-pkgLTLIBRARIES:
514 @$(NORMAL_UNINSTALL)
515 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
516 for p in $$list; do \
517 $(am__strip_dir) \
518 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
519 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
520 done
521
522clean-pkgLTLIBRARIES:
523 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
524 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
525 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
526 test "$$dir" != "$$p" || dir=.; \
527 echo "rm -f \"$${dir}/so_locations\""; \
528 rm -f "$${dir}/so_locations"; \
529 done
530libevas_engine_fb.la: $(libevas_engine_fb_la_OBJECTS) $(libevas_engine_fb_la_DEPENDENCIES)
531 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_fb_la_rpath) $(libevas_engine_fb_la_OBJECTS) $(libevas_engine_fb_la_LIBADD) $(LIBS)
532module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
533 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
534
535mostlyclean-compile:
536 -rm -f *.$(OBJEXT)
537
538distclean-compile:
539 -rm -f *.tab.c
540
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
542@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_fb_main.Plo@am__quote@
543@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
544@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
545@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_fb_main.Plo@am__quote@
546@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
547
548.c.o:
549@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
550@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
551@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
552@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
553@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
554@am__fastdepCC_FALSE@ $(COMPILE) -c $<
555
556.c.obj:
557@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
558@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
559@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
560@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
561@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
562@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
563
564.c.lo:
565@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
566@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
567@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
568@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
569@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
570@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
571
572module_la-evas_engine.lo: evas_engine.c
573@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
575@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
576@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
577@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
578@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
579
580module_la-evas_fb_main.lo: evas_fb_main.c
581@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_fb_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_fb_main.Tpo -c -o module_la-evas_fb_main.lo `test -f 'evas_fb_main.c' || echo '$(srcdir)/'`evas_fb_main.c
582@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_fb_main.Tpo $(DEPDIR)/module_la-evas_fb_main.Plo
583@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
584@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_fb_main.c' object='module_la-evas_fb_main.lo' libtool=yes @AMDEPBACKSLASH@
585@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
586@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_fb_main.lo `test -f 'evas_fb_main.c' || echo '$(srcdir)/'`evas_fb_main.c
587
588module_la-evas_outbuf.lo: evas_outbuf.c
589@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
590@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
591@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
592@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
593@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
594@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
595
596mostlyclean-libtool:
597 -rm -f *.lo
598
599clean-libtool:
600 -rm -rf .libs _libs
601install-includesHEADERS: $(includes_HEADERS)
602 @$(NORMAL_INSTALL)
603 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
604 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
605 for p in $$list; do \
606 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
607 echo "$$d$$p"; \
608 done | $(am__base_list) | \
609 while read files; do \
610 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
611 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
612 done
613
614uninstall-includesHEADERS:
615 @$(NORMAL_UNINSTALL)
616 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
617 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
618 test -n "$$files" || exit 0; \
619 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
620 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
621
622ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 mkid -fID $$unique
630tags: TAGS
631
632TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
633 $(TAGS_FILES) $(LISP)
634 set x; \
635 here=`pwd`; \
636 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
637 unique=`for i in $$list; do \
638 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
639 done | \
640 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
641 END { if (nonempty) { for (i in files) print i; }; }'`; \
642 shift; \
643 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
644 test -n "$$unique" || unique=$$empty_fix; \
645 if test $$# -gt 0; then \
646 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
647 "$$@" $$unique; \
648 else \
649 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
650 $$unique; \
651 fi; \
652 fi
653ctags: CTAGS
654CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
655 $(TAGS_FILES) $(LISP)
656 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
657 unique=`for i in $$list; do \
658 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
659 done | \
660 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
661 END { if (nonempty) { for (i in files) print i; }; }'`; \
662 test -z "$(CTAGS_ARGS)$$unique" \
663 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
664 $$unique
665
666GTAGS:
667 here=`$(am__cd) $(top_builddir) && pwd` \
668 && $(am__cd) $(top_srcdir) \
669 && gtags -i $(GTAGS_ARGS) "$$here"
670
671distclean-tags:
672 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
673
674distdir: $(DISTFILES)
675 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
676 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
677 list='$(DISTFILES)'; \
678 dist_files=`for file in $$list; do echo $$file; done | \
679 sed -e "s|^$$srcdirstrip/||;t" \
680 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
681 case $$dist_files in \
682 */*) $(MKDIR_P) `echo "$$dist_files" | \
683 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
684 sort -u` ;; \
685 esac; \
686 for file in $$dist_files; do \
687 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
688 if test -d $$d/$$file; then \
689 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
690 if test -d "$(distdir)/$$file"; then \
691 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
692 fi; \
693 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
694 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
695 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
696 fi; \
697 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
698 else \
699 test -f "$(distdir)/$$file" \
700 || cp -p $$d/$$file "$(distdir)/$$file" \
701 || exit 1; \
702 fi; \
703 done
704check-am: all-am
705check: check-am
706all-am: Makefile $(LTLIBRARIES) $(HEADERS)
707installdirs:
708 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
709 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
710 done
711install: install-am
712install-exec: install-exec-am
713install-data: install-data-am
714uninstall: uninstall-am
715
716install-am: all-am
717 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
718
719installcheck: installcheck-am
720install-strip:
721 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
722 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
723 `test -z '$(STRIP)' || \
724 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
725mostlyclean-generic:
726
727clean-generic:
728
729distclean-generic:
730 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
731 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
732
733maintainer-clean-generic:
734 @echo "This command is intended for maintainers to use"
735 @echo "it deletes files that may require special tools to rebuild."
736 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
737clean: clean-am
738
739clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
740 clean-pkgLTLIBRARIES mostlyclean-am
741
742distclean: distclean-am
743 -rm -rf ./$(DEPDIR)
744 -rm -f Makefile
745distclean-am: clean-am distclean-compile distclean-generic \
746 distclean-tags
747
748dvi: dvi-am
749
750dvi-am:
751
752html: html-am
753
754html-am:
755
756info: info-am
757
758info-am:
759
760install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
761
762install-dvi: install-dvi-am
763
764install-dvi-am:
765
766install-exec-am:
767
768install-html: install-html-am
769
770install-html-am:
771
772install-info: install-info-am
773
774install-info-am:
775
776install-man:
777
778install-pdf: install-pdf-am
779
780install-pdf-am:
781
782install-ps: install-ps-am
783
784install-ps-am:
785
786installcheck-am:
787
788maintainer-clean: maintainer-clean-am
789 -rm -rf ./$(DEPDIR)
790 -rm -f Makefile
791maintainer-clean-am: distclean-am maintainer-clean-generic
792
793mostlyclean: mostlyclean-am
794
795mostlyclean-am: mostlyclean-compile mostlyclean-generic \
796 mostlyclean-libtool
797
798pdf: pdf-am
799
800pdf-am:
801
802ps: ps-am
803
804ps-am:
805
806uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
807
808.MAKE: install-am install-strip
809
810.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
811 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
812 ctags distclean distclean-compile distclean-generic \
813 distclean-libtool distclean-tags distdir dvi dvi-am html \
814 html-am info info-am install install-am install-data \
815 install-data-am install-dvi install-dvi-am install-exec \
816 install-exec-am install-html install-html-am \
817 install-includesHEADERS install-info install-info-am \
818 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
819 install-ps install-ps-am install-strip installcheck \
820 installcheck-am installdirs maintainer-clean \
821 maintainer-clean-generic mostlyclean mostlyclean-compile \
822 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
823 tags uninstall uninstall-am uninstall-includesHEADERS \
824 uninstall-pkgLTLIBRARIES
825
826
827# Tell versions [3.59,3.63) of GNU make to not export all variables.
828# Otherwise a system limit (for SysV at least) may be exceeded.
829.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/fb/evas_engine.c b/libraries/evas/src/modules/engines/fb/evas_engine.c
deleted file mode 100644
index e15c02b..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_engine.c
+++ /dev/null
@@ -1,310 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_FB.h"
5
6int _evas_engine_fb_log_dom = -1;
7
8/* function tables - filled in later (func and parent func) */
9static Evas_Func func, pfunc;
10
11/* engine struct data */
12typedef struct _Render_Engine Render_Engine;
13
14struct _Render_Engine
15{
16 Tilebuf *tb;
17 Outbuf *ob;
18 Tilebuf_Rect *rects;
19 Eina_Inlist *cur_rect;
20 int end : 1;
21};
22
23/* prototypes we will use here */
24static void *_output_setup(int w, int h, int rot, int vt, int dev, int refresh);
25
26static void *eng_info(Evas *e);
27static void eng_info_free(Evas *e, void *info);
28static int eng_setup(Evas *e, void *info);
29static void eng_output_free(void *data);
30static void eng_output_resize(void *data, int w, int h);
31static void eng_output_tile_size_set(void *data, int w, int h);
32static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
33static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
34static void eng_output_redraws_clear(void *data);
35static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
36static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
37static void eng_output_flush(void *data);
38static void eng_output_idle_flush(void *data);
39
40/* internal engine routines */
41static void *
42_output_setup(int w, int h, int rot, int vt, int dev, int refresh)
43{
44 Render_Engine *re;
45
46 re = calloc(1, sizeof(Render_Engine));
47 if (!re)
48 return NULL;
49 /* if we haven't initialized - init (automatic abort if already done) */
50 evas_common_cpu_init();
51
52 evas_common_blend_init();
53 evas_common_image_init();
54 evas_common_convert_init();
55 evas_common_scale_init();
56 evas_common_rectangle_init();
57 evas_common_polygon_init();
58 evas_common_line_init();
59 evas_common_font_init();
60 evas_common_draw_init();
61 evas_common_tilebuf_init();
62
63 evas_fb_outbuf_fb_init();
64
65 /* get any stored performance metrics from device (xserver) */
66 re->ob = evas_fb_outbuf_fb_setup_fb(w, h, rot, OUTBUF_DEPTH_INHERIT, vt, dev, refresh);
67 re->tb = evas_common_tilebuf_new(evas_fb_outbuf_fb_get_width(re->ob), evas_fb_outbuf_fb_get_height(re->ob));
68 /* no backbuf! */
69 evas_fb_outbuf_fb_set_have_backbuf(re->ob, 0);
70 /* in preliminary tests 16x16 gave highest framerates */
71 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
72 return re;
73}
74
75/* engine api this module provides */
76static void *
77eng_info(Evas *e __UNUSED__)
78{
79 Evas_Engine_Info_FB *info;
80 info = calloc(1, sizeof(Evas_Engine_Info_FB));
81 if (!info) return NULL;
82 info->magic.magic = rand();
83 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
84 return info;
85}
86
87static void
88eng_info_free(Evas *e __UNUSED__, void *info)
89{
90 Evas_Engine_Info_FB *in;
91 in = (Evas_Engine_Info_FB *)info;
92 free(in);
93}
94
95static int
96eng_setup(Evas *e, void *in)
97{
98 Render_Engine *re;
99 Evas_Engine_Info_FB *info;
100
101 info = (Evas_Engine_Info_FB *)in;
102 re = _output_setup(e->output.w,
103 e->output.h,
104 info->info.rotation,
105 info->info.virtual_terminal,
106 info->info.device_number,
107 info->info.refresh);
108 e->engine.data.output = re;
109 if (!e->engine.data.output) return 0;
110 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
111
112 return 1;
113}
114
115static void
116eng_output_free(void *data)
117{
118 Render_Engine *re;
119
120 re = (Render_Engine *)data;
121 evas_fb_outbuf_fb_free(re->ob);
122 evas_common_tilebuf_free(re->tb);
123 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
124 free(re);
125
126 evas_common_font_shutdown();
127 evas_common_image_shutdown();
128}
129
130static void
131eng_output_resize(void *data, int w, int h)
132{
133 Render_Engine *re;
134
135 re = (Render_Engine *)data;
136 evas_fb_outbuf_fb_reconfigure(re->ob, w, h,
137 evas_fb_outbuf_fb_get_rot(re->ob),
138 OUTBUF_DEPTH_INHERIT);
139 evas_common_tilebuf_free(re->tb);
140 re->tb = evas_common_tilebuf_new(w, h);
141 if (re->tb)
142 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
143}
144
145static void
146eng_output_tile_size_set(void *data, int w, int h)
147{
148 Render_Engine *re;
149
150 re = (Render_Engine *)data;
151 evas_common_tilebuf_set_tile_size(re->tb, w, h);
152}
153
154static void
155eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
156{
157 Render_Engine *re;
158
159 re = (Render_Engine *)data;
160 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
161}
162
163static void
164eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
165{
166 Render_Engine *re;
167
168 re = (Render_Engine *)data;
169 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
170}
171
172static void
173eng_output_redraws_clear(void *data)
174{
175 Render_Engine *re;
176
177 re = (Render_Engine *)data;
178 evas_common_tilebuf_clear(re->tb);
179}
180
181static void *
182eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
183{
184 Render_Engine *re;
185 RGBA_Image *surface;
186 Tilebuf_Rect *rect;
187 int ux, uy, uw, uh;
188
189 re = (Render_Engine *)data;
190 if (re->end)
191 {
192 re->end = 0;
193 return NULL;
194 }
195 if (!re->rects)
196 {
197 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
198 re->cur_rect = EINA_INLIST_GET(re->rects);
199 }
200 if (!re->cur_rect) return NULL;
201 rect = (Tilebuf_Rect *)re->cur_rect;
202 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
203 re->cur_rect = re->cur_rect->next;
204 if (!re->cur_rect)
205 {
206 evas_common_tilebuf_free_render_rects(re->rects);
207 re->rects = NULL;
208 re->end = 1;
209 }
210
211 surface = evas_fb_outbuf_fb_new_region_for_update(re->ob,
212 ux, uy, uw, uh,
213 cx, cy, cw, ch);
214 *x = ux; *y = uy; *w = uw; *h = uh;
215 return surface;
216}
217
218static void
219eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
220{
221 Render_Engine *re;
222
223 re = (Render_Engine *)data;
224#ifdef BUILD_PIPE_RENDER
225 evas_common_pipe_map_begin(surface);
226#endif
227 evas_fb_outbuf_fb_push_updated_region(re->ob, surface, x, y, w, h);
228 evas_fb_outbuf_fb_free_region_for_update(re->ob, surface);
229 evas_common_cpu_end_opt();
230}
231
232static void
233eng_output_flush(void *data __UNUSED__)
234{
235}
236
237static void
238eng_output_idle_flush(void *data __UNUSED__)
239{
240}
241
242static Eina_Bool
243eng_canvas_alpha_get(void *data, void *context __UNUSED__)
244{
245 Render_Engine *re;
246
247 re = (Render_Engine *)data;
248 return (re->ob->priv.fb.fb->fb_var.transp.length > 0);
249}
250
251/* module advertising code */
252static int
253module_open(Evas_Module *em)
254{
255 if (!em) return 0;
256 /* get whatever engine module we inherit from */
257 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
258 _evas_engine_fb_log_dom = eina_log_domain_register
259 ("evas-fb", EVAS_DEFAULT_LOG_COLOR);
260 if (_evas_engine_fb_log_dom < 0)
261 {
262 EINA_LOG_ERR("Can not create a module log domain.");
263 return 0;
264 }
265
266 /* store it for later use */
267 func = pfunc;
268 /* now to override methods */
269#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
270 ORD(info);
271 ORD(info_free);
272 ORD(setup);
273 ORD(canvas_alpha_get);
274 ORD(output_free);
275 ORD(output_resize);
276 ORD(output_tile_size_set);
277 ORD(output_redraws_rect_add);
278 ORD(output_redraws_rect_del);
279 ORD(output_redraws_clear);
280 ORD(output_redraws_next_update_get);
281 ORD(output_redraws_next_update_push);
282 ORD(output_flush);
283 ORD(output_idle_flush);
284 /* now advertise out own api */
285 em->functions = (void *)(&func);
286 return 1;
287}
288
289static void
290module_close(Evas_Module *em __UNUSED__)
291{
292 eina_log_domain_unregister(_evas_engine_fb_log_dom);
293}
294
295static Evas_Module_Api evas_modapi =
296{
297 EVAS_MODULE_API_VERSION,
298 "fb",
299 "none",
300 {
301 module_open,
302 module_close
303 }
304};
305
306EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, fb);
307
308#ifndef EVAS_STATIC_BUILD_FB
309EVAS_EINA_MODULE_DEFINE(engine, fb);
310#endif
diff --git a/libraries/evas/src/modules/engines/fb/evas_engine.h b/libraries/evas/src/modules/engines/fb/evas_engine.h
deleted file mode 100644
index 295e91e..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_engine.h
+++ /dev/null
@@ -1,85 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include "evas_fb.h"
5
6extern int _evas_engine_fb_log_dom;
7#ifdef ERR
8# undef ERR
9#endif
10#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_fb_log_dom, __VA_ARGS__)
11
12#ifdef DBG
13# undef DBG
14#endif
15#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_fb_log_dom, __VA_ARGS__)
16
17#ifdef INF
18# undef INF
19#endif
20#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_fb_log_dom, __VA_ARGS__)
21
22#ifdef WRN
23# undef WRN
24#endif
25#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_fb_log_dom, __VA_ARGS__)
26
27#ifdef CRIT
28# undef CRIT
29#endif
30#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_fb_log_dom, __VA_ARGS__)
31
32typedef struct _Outbuf Outbuf;
33
34typedef enum _Outbuf_Depth Outbuf_Depth;
35
36enum _Outbuf_Depth
37{
38 OUTBUF_DEPTH_NONE,
39 OUTBUF_DEPTH_INHERIT,
40 OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,
41 OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED,
42 OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED,
43 OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED,
44 OUTBUF_DEPTH_RGB_32BPP_888_8888,
45 OUTBUF_DEPTH_LAST
46};
47
48struct _Outbuf
49{
50 Outbuf_Depth depth;
51 int w, h;
52 int rot;
53
54 struct {
55 struct {
56 FB_Mode *fb;
57 } fb;
58 struct {
59 DATA32 r, g, b;
60 } mask;
61 RGBA_Image *back_buf;
62 } priv;
63};
64
65/****/
66
67void evas_fb_outbuf_fb_init (void);
68void evas_fb_outbuf_fb_free (Outbuf *buf);
69
70Outbuf *evas_fb_outbuf_fb_setup_fb (int w, int h, int rot, Outbuf_Depth depth, int vt_no, int dev_no, int refresh);
71
72void evas_fb_outbuf_fb_blit (Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y);
73void evas_fb_outbuf_fb_update (Outbuf *buf, int x, int y, int w, int h);
74RGBA_Image *evas_fb_outbuf_fb_new_region_for_update (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
75void evas_fb_outbuf_fb_free_region_for_update (Outbuf *buf, RGBA_Image *update);
76void evas_fb_outbuf_fb_push_updated_region (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h);
77void evas_fb_outbuf_fb_reconfigure (Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth);
78int evas_fb_outbuf_fb_get_width (Outbuf *buf);
79int evas_fb_outbuf_fb_get_height (Outbuf *buf);
80Outbuf_Depth evas_fb_outbuf_fb_get_depth (Outbuf *buf);
81int evas_fb_outbuf_fb_get_rot (Outbuf *buf);
82int evas_fb_outbuf_fb_get_have_backbuf (Outbuf *buf);
83void evas_fb_outbuf_fb_set_have_backbuf (Outbuf *buf, int have_backbuf);
84
85#endif
diff --git a/libraries/evas/src/modules/engines/fb/evas_fb.h b/libraries/evas/src/modules/engines/fb/evas_fb.h
deleted file mode 100644
index 76ab30b..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_fb.h
+++ /dev/null
@@ -1,93 +0,0 @@
1#ifndef _EVAS_FB_H
2#define _EVAS_FB_H 1
3
4/* -------------------------------------------------------------------- */
5/* LINUX FBCON FRAMEBUFFER UTILITY CODE */
6/* makes setting up the framebuffer easy. Also makes it eays to port to */
7/* some other system if needed. */
8/* Copyright (c) 1999 - Carsten Haitzler (The Rasterman) */
9/* -------------------------------------------------------------------- */
10
11#include <stdio.h>
12#include <stdlib.h>
13#include <string.h>
14#include <unistd.h>
15#include <fcntl.h>
16#include <termios.h>
17#include <errno.h>
18#include <sys/ioctl.h>
19#include <sys/mman.h>
20#include <sys/wait.h>
21#include <sys/stat.h>
22#include <linux/kd.h>
23#include <linux/vt.h>
24#include <linux/fb.h>
25
26typedef struct _fb_mode FB_Mode;
27
28struct _fb_mode
29{
30 unsigned int width;
31 unsigned int height;
32 unsigned int refresh;
33 unsigned int depth;
34 unsigned int bpp;
35 int fb_fd;
36 void *mem;
37 unsigned int mem_offset;
38 struct fb_var_screeninfo fb_var;
39};
40
41/* init a framebuffer (and switch to) vt number vt. If vt == 0 use current */
42/* vt */
43void fb_init(int vt, int device);
44/* call this afetr setting or getting the fb mode (whichever) to complete */
45/* the dsetup */
46int fb_postinit(FB_Mode *mode);
47/* console switching - if a switch was requested this with block if block */
48/* is 1, otherwise it will return 1 if current console is active or 0 if */
49/* the user has switched away in the meantime */
50int fb_await_switch(int block);
51/* list all current possible video modes listed in /etc/fb.modes */
52/* returns pointer to an aray of FB_Mode, and sets num_return to the number */
53/* of elements in the returned array */
54FB_Mode *fb_list_modes(unsigned int *num_return);
55/* sets the fb mode to the resolution width x height and the depth to depth. */
56/* and if refresh > 0 attempts to use a mode with a refresh rate (in Hz) of */
57/* that. If this fails it will return NULL - if it succeeds it will return */
58/* a pointer to the FB_Mode thatwas set. only modes in /etc/fb.modes will */
59/* be used. If refresh is 0 it uses the DEFAULT mode (the one with no */
60/* refresh rate at the end of its name (WIDTHxHEIGHT-REFRESH) */
61/* NB: in 8bpp you get a 332 palette. This is fixed so all modes are */
62/* "truecolor" - the only difference is how many bits bep red, green and */
63/* blue channel. This is for speed reasons */
64FB_Mode *fb_setmode(unsigned int width, unsigned int height, unsigned int depth, unsigned int refresh);
65/* returns the current fb mode being used in FB_Mode */
66FB_Mode *fb_getmode(void);
67/* changes the bit depth of the current fb mode to depth and returns a new */
68/* handle to a new fb mode with updated parameters. frees cur_mode for you. */
69FB_Mode *fb_changedepth(FB_Mode *cur_mode, unsigned int depth);
70/* changes resolution - retaining current depth of the current mode, */
71/* returning a handle to the new mode once done. frees cur_mode for you. */
72FB_Mode *fb_changeres(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int refresh);
73/* chnages both resolution and depth and returns a handle to the new mode */
74/* when done. frees cur_mode for you */
75FB_Mode *fb_changemode(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int depth, unsigned int refresh);
76
77/* ------------------------------------------------------------------------- */
78/* How to init: */
79/* (Example) */
80
81/* FB_Mode *mode; */
82/* int fb_fd = -1; */
83/* fb_init(0); */
84/* mode = fb_setmode(640, 480, 8, 0); */
85/* if (mode) */
86/* fb_fd = fb_postinit(mode); */
87/* if (fb_fd == -1) */
88/* { */
89/* fprintf(stderr, "Frambuffer init failed\n"); */
90/* exit(1); */
91/* } */
92/* .... code to play with the FB */
93#endif
diff --git a/libraries/evas/src/modules/engines/fb/evas_fb_main.c b/libraries/evas/src/modules/engines/fb/evas_fb_main.c
deleted file mode 100644
index 1d61f1a..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_fb_main.c
+++ /dev/null
@@ -1,600 +0,0 @@
1/* -------------------------------------------------------------------- */
2/* LINUX FBCON FRAMEBUFFER UTILITY CODE */
3/* makes setting up the framebuffer easy. Also makes it eays to port to */
4/* some other system if needed. */
5/* Copyright (c) 1999 - Carsten Haitzler (The Rasterman) */
6/* -------------------------------------------------------------------- */
7#include "evas_common.h"
8#include "evas_fb.h"
9
10#include <sys/ioctl.h>
11#include <sys/wait.h>
12#include <linux/kd.h>
13#include <linux/vt.h>
14#include <sys/user.h>
15
16#define FB_ACTIVE 0
17#define FB_REL_REQ 1
18#define FB_INACTIVE 2
19#define FB_ACQ_REQ 3
20
21/* -------------------------------------------------------------------- */
22/* internal variables */
23
24static struct fb_fix_screeninfo fb_fix;
25static int fb, tty;
26static int bpp, depth;
27//static int orig_vt_no = 0;
28static int kd_mode;
29static struct vt_mode vt_omode;
30static struct fb_var_screeninfo fb_ovar;
31static unsigned short ored[256], ogreen[256], oblue[256];
32static unsigned short red[256], green[256], blue[256];
33static struct fb_cmap ocmap = { 0, 256, ored, ogreen, oblue, NULL };
34static struct fb_cmap cmap = { 0, 256, red, green, blue, NULL };
35
36/* -------------------------------------------------------------------- */
37/* internal function prototypes */
38
39static void fb_cleanup(void);
40//static void fb_cleanup_fork(void);
41//static void fb_setvt(int vtno);
42static void fb_init_palette_332(FB_Mode *mode);
43static void fb_init_palette_linear(FB_Mode *mode);
44
45/* -------------------------------------------------------------------- */
46/* palette setting */
47
48static void
49fb_init_palette_332(FB_Mode *mode)
50{
51 int r, g, b, i;
52
53 if (mode->fb_var.bits_per_pixel != 8)
54 return;
55 i = 0;
56
57 if (ioctl(fb, FBIOGETCMAP, &cmap) == -1)
58 perror("ioctl FBIOGETCMAP");
59
60 /* generate the palette */
61 for (r = 0; r < 8; r++)
62 {
63 for (g = 0; g < 8; g++)
64 {
65 for (b = 0; b < 4; b++)
66 {
67 int val;
68
69 val = (r << 5) | (r << 2) | (r >> 1);
70 red[i] = (val << 8) | val;
71 val = (g << 5) | (g << 2) | (g >> 1);
72 green[i] = (val << 8) | val;
73 val = (b << 6) | (b << 4) | (b << 2) | (b);
74 blue[i] = (val << 8) | val;
75 i++;
76 }
77 }
78 }
79
80 /* set colormap */
81 if (ioctl(fb, FBIOPUTCMAP, &cmap) == -1)
82 perror("ioctl FBIOPUTCMAP");
83}
84
85static void
86fb_init_palette_linear(FB_Mode *mode)
87{
88 int i;
89
90 if (mode->fb_var.bits_per_pixel != 8)
91 return;
92
93 if (ioctl(fb, FBIOGETCMAP, &cmap) == -1)
94 perror("ioctl FBIOGETCMAP");
95
96 /* generate the palette */
97 for (i = 0; i < 256; i++)
98 red[i] = (i << 8) | i;
99 for (i = 0; i < 256; i++)
100 green[i] = (i << 8) | i;
101 for (i = 0; i < 256; i++)
102 blue[i] = (i << 8) | i;
103
104 /* set colormap */
105 if (ioctl(fb, FBIOPUTCMAP, &cmap) == -1)
106 perror("ioctl FBIOPUTCMAP");
107}
108
109/* -------------------------------------------------------------------- */
110/* initialisation & cleanup */
111
112FB_Mode *
113fb_list_modes(unsigned int *num_return)
114{
115 FILE *f;
116 char line[256], label[256], value[256];
117 FB_Mode *modes = NULL;
118 int num;
119
120 num = 0;
121 f = fopen("/etc/fb.modes","r");
122 if (!f)
123 {
124 *num_return = 0;
125 return NULL;
126 }
127 while (fgets(line, sizeof(line) - 1, f))
128 {
129 if (sscanf(line, "mode \"%250[^\"]\"", label) == 1)
130 {
131 char f1[32], f2[32], f3[32], f4[32];
132
133 f1[0] = 0; f2[0] = 0; f3[0] = 0; f4[0] = 0;
134 sscanf(label, "%30[^x]x%30[^-]-%30[^-]-%30s", f1, f2, f3, f4);
135 if ((f1[0]) && (f2[0]))
136 {
137 int geometry = 0;
138 int timings = 0;
139
140 num++;
141 modes = realloc(modes, num * sizeof(FB_Mode));
142 modes[num - 1].width = atoi(f1);
143 modes[num - 1].height = atoi(f2);
144 if (f3[0])
145 modes[num - 1].refresh = atoi(f3);
146 else
147 modes[num - 1].refresh = 0;
148 modes[num - 1].fb_var.sync = 0;
149 while ((fgets(line, sizeof(line) - 1, f)) &&
150 (!strstr(line, "endmode")))
151 {
152
153 if (sscanf(line," geometry %i %i %i %i %i",
154 &modes[num - 1].fb_var.xres,
155 &modes[num - 1].fb_var.yres,
156 &modes[num - 1].fb_var.xres_virtual,
157 &modes[num - 1].fb_var.yres_virtual,
158 &modes[num - 1].fb_var.bits_per_pixel) == 5)
159 geometry = 1;
160 if (sscanf(line," timings %i %i %i %i %i %i %i",
161 &modes[num - 1].fb_var.pixclock,
162 &modes[num - 1].fb_var.left_margin,
163 &modes[num - 1].fb_var.right_margin,
164 &modes[num - 1].fb_var.upper_margin,
165 &modes[num - 1].fb_var.lower_margin,
166 &modes[num - 1].fb_var.hsync_len,
167 &modes[num - 1].fb_var.vsync_len) == 7)
168 timings = 1;
169 if ((sscanf(line, " hsync %15s", value) == 1) &&
170 (!strcmp(value,"high")))
171 modes[num - 1].fb_var.sync |= FB_SYNC_HOR_HIGH_ACT;
172 if ((sscanf(line, " vsync %15s", value) == 1) &&
173 (!strcmp(value,"high")))
174 modes[num - 1].fb_var.sync |= FB_SYNC_VERT_HIGH_ACT;
175 if ((sscanf(line, " csync %15s", value) == 1) &&
176 (!strcmp(value,"high")))
177 modes[num - 1].fb_var.sync |= FB_SYNC_COMP_HIGH_ACT;
178 if ((sscanf(line, " extsync %15s", value) == 1) &&
179 (!strcmp(value,"true")))
180 modes[num - 1].fb_var.sync |= FB_SYNC_EXT;
181 if ((sscanf(line, " laced %15s", value) == 1) &&
182 (!strcmp(value,"true")))
183 modes[num - 1].fb_var.vmode |= FB_VMODE_INTERLACED;
184 if ((sscanf(line, " double %15s",value) == 1) &&
185 (!strcmp(value,"true")))
186 modes[num - 1].fb_var.vmode |= FB_VMODE_DOUBLE;
187 }
188 if ((!geometry) || (!timings))
189 {
190 num--;
191 if (num == 0)
192 {
193 free(modes);
194 modes = NULL;
195 }
196 }
197 else
198 {
199 modes[num - 1].fb_var.xoffset = 0;
200 modes[num - 1].fb_var.yoffset = 0;
201 }
202 }
203 }
204 }
205 fclose(f);
206 *num_return = num;
207 return modes;
208}
209
210FB_Mode *
211fb_setmode(unsigned int width, unsigned int height, unsigned int pdepth, unsigned int refresh)
212{
213 FB_Mode *modes, *mode = NULL;
214 unsigned int i, num_modes;
215
216 modes = fb_list_modes(&num_modes);
217 if (modes)
218 {
219 for (i = 0; i < num_modes; i++)
220 {
221 if ((modes[i].width == width) &&
222 (modes[i].height == height) &&
223 (!pdepth || modes[i].fb_var.bits_per_pixel == pdepth) &&
224 (modes[i].refresh == refresh))
225 {
226 if (pdepth) modes[i].fb_var.bits_per_pixel = pdepth;
227
228 if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1)
229 perror("ioctl FBIOPUT_VSCREENINFO");
230
231 free(modes);
232 return fb_getmode();
233 }
234 }
235 free(modes);
236 }
237 return mode;
238}
239
240FB_Mode *
241fb_changedepth(FB_Mode *cur_mode, unsigned int pdepth)
242{
243 cur_mode->fb_var.bits_per_pixel = pdepth;
244
245 if (ioctl(fb, FBIOPUT_VSCREENINFO, &cur_mode->fb_var) == -1)
246 perror("ioctl FBIOPUT_VSCREENINFO");
247
248 free(cur_mode);
249 return fb_getmode();
250}
251
252FB_Mode *
253fb_changeres(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int refresh)
254{
255 FB_Mode *modes;
256 unsigned int i, num_modes;
257
258 modes = fb_list_modes(&num_modes);
259 if (modes)
260 {
261 for (i = 0; i < num_modes; i++)
262 {
263 if ((modes[i].width == width) &&
264 (modes[i].height == height) &&
265 (modes[i].refresh == refresh))
266 {
267 modes[i].fb_var.bits_per_pixel = cur_mode->depth;
268
269 if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1)
270 perror("ioctl FBIOPUT_VSCREENINFO");
271
272 free(modes);
273 free(cur_mode);
274 return fb_getmode();
275 }
276 }
277 free(modes);
278 }
279 return cur_mode;
280}
281
282FB_Mode *
283fb_changemode(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int pdepth, unsigned int refresh)
284{
285 FB_Mode *modes;
286 unsigned int i, num_modes;
287
288 modes = fb_list_modes(&num_modes);
289 if (modes)
290 {
291 for (i = 0; i < num_modes; i++)
292 {
293 if ((modes[i].width == width) &&
294 (modes[i].height == height) &&
295 (!pdepth || modes[i].fb_var.bits_per_pixel == pdepth) &&
296 (modes[i].refresh == refresh))
297 {
298 if (pdepth) modes[i].fb_var.bits_per_pixel = pdepth;
299
300 if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1)
301 perror("ioctl FBIOPUT_VSCREENINFO");
302
303 free(modes);
304 free(cur_mode);
305 return fb_getmode();
306 }
307 }
308 free(modes);
309 }
310 return cur_mode;
311}
312
313FB_Mode *
314fb_getmode(void)
315{
316 FB_Mode *mode = NULL;
317 int hpix, lines, clockrate;
318
319 mode = malloc(sizeof(FB_Mode));
320 /* look what we have now ... */
321
322 if (ioctl(fb, FBIOGET_VSCREENINFO, &mode->fb_var) == -1)
323 {
324 perror("ioctl FBIOGET_VSCREENINFO");
325 return NULL;
326 }
327
328 mode->width = mode->fb_var.xres_virtual;
329 mode->height = mode->fb_var.yres_virtual;
330 hpix =
331 mode->fb_var.left_margin +
332 mode->fb_var.xres +
333 mode->fb_var.right_margin +
334 mode->fb_var.hsync_len;
335 lines =
336 mode->fb_var.upper_margin +
337 mode->fb_var.yres +
338 mode->fb_var.lower_margin +
339 mode->fb_var.vsync_len;
340 if (mode->fb_var.pixclock > 0)
341 clockrate = 1000000 / mode->fb_var.pixclock;
342 else
343 clockrate = 0;
344 if ((lines > 0) && (hpix > 0))
345 mode->refresh = clockrate * 1000000 / (lines * hpix);
346 switch (mode->fb_var.bits_per_pixel)
347 {
348 case 1:
349 bpp = 1;
350 depth = 1;
351 break;
352 case 4:
353 bpp = 1;
354 depth = 4;
355 break;
356 case 8:
357 bpp = 1;
358 depth = 8;
359 break;
360 case 15:
361 case 16:
362 if (mode->fb_var.green.length == 6)
363 depth = 16;
364 else
365 depth = 15;
366 bpp = 2;
367 break;
368 case 24:
369 depth = 24;
370 bpp = mode->fb_var.bits_per_pixel / 8;
371 break;
372 case 32:
373 depth = 32;
374 bpp = mode->fb_var.bits_per_pixel / 8;
375 break;
376 default:
377 ERR("Cannot handle framebuffer of depth %i",
378 mode->fb_var.bits_per_pixel);
379 fb_cleanup();
380 free(mode);
381 return NULL;
382 }
383 mode->depth = depth;
384 mode->bpp = bpp;
385 if (mode->depth == 8) fb_init_palette_332(mode);
386 else fb_init_palette_linear(mode);
387 return mode;
388}
389
390/* XXX: unused
391static void
392fb_setvt(int vtno)
393{
394 struct vt_stat vts;
395 char vtname[32];
396 int vtfd;
397
398 if (vtno < 0)
399 {
400 if ((ioctl(tty,VT_OPENQRY, &vtno) == -1))
401 {
402 perror("ioctl VT_OPENQRY");
403 return;
404 }
405 if (vtno <= 0 )
406 {
407 perror("ioctl VT_OPENQRY vtno <= 0");
408 return;
409 }
410 }
411 vtno &= 0xff;
412 sprintf(vtname, "/dev/tty%i", vtno);
413 if (chown(vtname, getuid(), getgid()) != 0)
414 {
415 vtfd = 0; // do nothing - don't worry about chown
416 }
417 if (access(vtname,R_OK | W_OK) == -1)
418 {
419 CRIT("Access %s: %s",vtname,strerror(errno));
420 return;
421 }
422 vtfd = open(vtname,O_RDWR);
423
424 if (ioctl(tty, VT_GETSTATE, &vts) == -1)
425 {
426 perror("ioctl VT_GETSTATE");
427 close(vtfd);
428 return;
429 }
430
431 orig_vt_no = vts.v_active;
432 close(vtfd);
433#if 0
434 if (ioctl(tty, VT_ACTIVATE, vtno) == -1)
435 {
436 perror("ioctl VT_ACTIVATE");
437 exit(1);
438 }
439 if (ioctl(tty, VT_WAITACTIVE, vtno) == -1)
440 {
441 perror("ioctl VT_WAITACTIVE");
442 exit(1);
443 }
444#endif
445}
446*/
447
448void
449fb_init(int vt __UNUSED__, int device)
450{
451 char dev[32];
452
453 tty = 0;
454#if 0
455 if (vt != 0) fb_setvt(vt);
456#endif
457
458 if ( getenv("EVAS_FB_DEV") )
459 {
460 fb = open(getenv("EVAS_FB_DEV"), O_RDWR);
461 }
462 else
463 {
464 sprintf(dev, "/dev/fb/%i", device);
465 fb = open(dev, O_RDWR);
466 if ( fb == -1 )
467 {
468 sprintf(dev, "/dev/fb%i", device);
469 fb = open(dev, O_RDWR);
470 }
471 }
472 if (fb == -1)
473 {
474 CRIT("open %s: %s", dev, strerror(errno));
475 fb_cleanup();
476 return;
477 }
478
479 if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_ovar) == -1)
480 {
481 perror("ioctl FBIOGET_VSCREENINFO");
482 return;
483 }
484 if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) == -1)
485 {
486 perror("ioctl FBIOGET_FSCREENINFO");
487 return;
488 }
489
490 if ((fb_ovar.bits_per_pixel == 8) ||
491 (fb_fix.visual == FB_VISUAL_DIRECTCOLOR))
492 {
493 if (ioctl(fb,FBIOGETCMAP , &ocmap) == -1)
494 {
495 perror("ioctl FBIOGETCMAP");
496 return;
497 }
498 }
499#if 0
500 if (isatty(0))
501 tty = 0;
502 else if ((tty = open("/dev/tty",O_RDWR)) == -1)
503 {
504 CITICAL("open %s: %s", "/dev/tty", strerror(errno));
505 return;
506 }
507 if (tty)
508 {
509 if (ioctl(tty, KDGETMODE, &kd_mode) == -1)
510 {
511 perror("ioctl KDGETMODE");
512 return;
513 }
514 if (ioctl(tty, VT_GETMODE, &vt_omode) == -1)
515 {
516 perror("ioctl VT_GETMODE");
517 return;
518 }
519 }
520#endif
521}
522
523int
524fb_postinit(FB_Mode *mode)
525{
526 if (ioctl(fb,FBIOGET_FSCREENINFO, &fb_fix) == -1)
527 {
528 perror("ioctl FBIOGET_FSCREENINFO");
529 fb_cleanup();
530 return 0;
531 }
532
533 if (fb_fix.type != FB_TYPE_PACKED_PIXELS)
534 {
535 CRIT("can handle only packed pixel frame buffers");
536 fb_cleanup();
537 return 0;
538 }
539 mode->mem_offset = (unsigned)(fb_fix.smem_start) & (getpagesize()-1);
540 mode->mem = (unsigned char *)mmap(NULL, fb_fix.smem_len + mode->mem_offset,
541 PROT_WRITE | PROT_READ, MAP_SHARED, fb, 0);
542 if (mode->mem == MAP_FAILED)
543 {
544 perror("mmap");
545 fb_cleanup();
546 }
547 /* move viewport to upper left corner */
548 if ((mode->fb_var.xoffset != 0) || (mode->fb_var.yoffset != 0))
549 {
550 mode->fb_var.xoffset = 0;
551 mode->fb_var.yoffset = 0;
552
553 if (ioctl(fb, FBIOPAN_DISPLAY, &(mode->fb_var)) == -1)
554 {
555 perror("ioctl FBIOPAN_DISPLAY");
556 fb_cleanup();
557 }
558 }
559#if 0
560 if (tty)
561 {
562 if (ioctl(tty,KDSETMODE, KD_GRAPHICS) == -1)
563 {
564 perror("ioctl KDSETMODE");
565 fb_cleanup();
566 }
567 }
568#endif
569 mode->fb_fd = fb;
570 return fb;
571}
572
573static void
574fb_cleanup(void)
575{
576 /* restore console */
577 if (ioctl(fb, FBIOPUT_VSCREENINFO, &fb_ovar) == -1)
578 perror("ioctl FBIOPUT_VSCREENINFO");
579 if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) == -1)
580 perror("ioctl FBIOGET_FSCREENINFO");
581 if ((fb_ovar.bits_per_pixel == 8) ||
582 (fb_fix.visual == FB_VISUAL_DIRECTCOLOR))
583 {
584 if (ioctl(fb, FBIOPUTCMAP, &ocmap) == -1)
585 perror("ioctl FBIOPUTCMAP");
586 }
587 close(fb);
588 if (tty)
589 {
590 if (ioctl(tty, KDSETMODE, kd_mode) == -1)
591 perror("ioctl KDSETMODE");
592 if (ioctl(tty, VT_SETMODE, &vt_omode) == -1)
593 perror("ioctl VT_SETMODE");
594#if 0
595 if ((ioctl(tty, VT_ACTIVATE, orig_vt_no) == -1) && (orig_vt_no))
596 perror("ioctl VT_ACTIVATE");
597#endif
598 }
599 close(tty);
600}
diff --git a/libraries/evas/src/modules/engines/fb/evas_outbuf.c b/libraries/evas/src/modules/engines/fb/evas_outbuf.c
deleted file mode 100644
index 7ae24c5..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_outbuf.c
+++ /dev/null
@@ -1,402 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3#include <sys/time.h>
4#include <sys/utsname.h>
5
6void
7evas_fb_outbuf_fb_init(void)
8{
9}
10
11void
12evas_fb_outbuf_fb_free(Outbuf *buf)
13{
14 /* FIXME: implement */
15 WRN("destroying fb info.. not implemented!!!! WARNING. LEAK!");
16 if (buf->priv.back_buf)
17 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
18 free(buf);
19}
20
21Outbuf *
22evas_fb_outbuf_fb_setup_fb(int w, int h, int rot, Outbuf_Depth depth, int vt_no, int dev_no, int refresh)
23{
24 /* create outbuf struct */
25 /* setup window and/or fb */
26 /* if (dithered) create backbuf */
27 Outbuf *buf;
28 int fb_fd;
29 int fb_depth;
30
31 fb_depth = -1;
32 if (depth == OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED) fb_depth = 16;
33 else if (depth == OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED) fb_depth = 15;
34 else if (depth == OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED) fb_depth = 16;
35 else if (depth == OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED) fb_depth = 12;
36 else if (depth == OUTBUF_DEPTH_RGB_32BPP_888_8888) fb_depth = 32;
37 else if (depth == OUTBUF_DEPTH_INHERIT) fb_depth = 0;
38 buf = calloc(1, sizeof(Outbuf));
39 if (!buf)
40 return NULL;
41
42 fb_init(vt_no, dev_no);
43 if (rot == 0 || rot == 180)
44 buf->priv.fb.fb = fb_setmode(w, h, fb_depth, refresh);
45 else if (rot == 90 || rot == 270)
46 buf->priv.fb.fb = fb_setmode(h, w, fb_depth, refresh);
47 if (!buf->priv.fb.fb) buf->priv.fb.fb = fb_getmode();
48 if (!buf->priv.fb.fb)
49 {
50 free(buf);
51 return NULL;
52 }
53 fb_fd = fb_postinit(buf->priv.fb.fb);
54 if (fb_fd < 1)
55 {
56 free(buf);
57 return NULL;
58 }
59
60 if (rot == 0 || rot == 180)
61 {
62 buf->w = buf->priv.fb.fb->width;
63 buf->h = buf->priv.fb.fb->height;
64 }
65 else if (rot == 90 || rot == 270)
66 {
67 buf->w = buf->priv.fb.fb->height;
68 buf->h = buf->priv.fb.fb->width;
69 }
70
71 buf->depth = depth;
72 buf->rot = rot;
73
74 {
75 Gfx_Func_Convert conv_func;
76 int i;
77
78 buf->priv.mask.r = 0;
79 for (i = 0; i < (int)buf->priv.fb.fb->fb_var.red.length; i++)
80 buf->priv.mask.r |= (1 << (buf->priv.fb.fb->fb_var.red.offset + i));
81 buf->priv.mask.g = 0;
82 for (i = 0; i < (int)buf->priv.fb.fb->fb_var.green.length; i++)
83 buf->priv.mask.g |= (1 << (buf->priv.fb.fb->fb_var.green.offset + i));
84 buf->priv.mask.b = 0;
85 for (i = 0; i < (int)buf->priv.fb.fb->fb_var.blue.length; i++)
86 buf->priv.mask.b |= (1 << (buf->priv.fb.fb->fb_var.blue.offset + i));
87
88 conv_func = NULL;
89 if (buf->rot == 0 || buf->rot == 180)
90 conv_func = evas_common_convert_func_get(0, buf->w, buf->h,
91 buf->priv.fb.fb->fb_var.bits_per_pixel,
92 buf->priv.mask.r,
93 buf->priv.mask.g,
94 buf->priv.mask.b,
95 PAL_MODE_NONE,
96 buf->rot);
97 else if (buf->rot == 90 || buf->rot == 270)
98 conv_func = evas_common_convert_func_get(0, buf->h, buf->w,
99 buf->priv.fb.fb->fb_var.bits_per_pixel,
100 buf->priv.mask.r,
101 buf->priv.mask.g,
102 buf->priv.mask.b,
103 PAL_MODE_NONE,
104 buf->rot);
105 if (!conv_func)
106 {
107 free(buf);
108 return NULL;
109 }
110 }
111// if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24)
112// buf->priv.back_buf = evas_common_image_create(buf->w, buf->h);
113
114 return buf;
115}
116
117void
118evas_fb_outbuf_fb_blit(Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y)
119{
120 if (buf->priv.back_buf)
121 {
122 evas_common_blit_rectangle(buf->priv.back_buf, buf->priv.back_buf,
123 src_x, src_y, w, h, dst_x, dst_y);
124 evas_fb_outbuf_fb_update(buf, dst_x, dst_y, w, h);
125 }
126 else
127 {
128 if (buf->priv.fb.fb)
129 {
130 /* FIXME: need to implement an fb call for "copy area" */
131 }
132 }
133}
134
135void
136evas_fb_outbuf_fb_update(Outbuf *buf, int x, int y, int w, int h)
137{
138 if (!(buf->priv.back_buf)) return;
139 if (buf->priv.fb.fb)
140 {
141 Gfx_Func_Convert conv_func;
142 DATA8 *data;
143
144 data = NULL;
145 conv_func = NULL;
146 if (buf->rot == 0)
147 {
148 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
149 buf->priv.fb.fb->bpp *
150 (x + (y * buf->priv.fb.fb->width));
151 conv_func = evas_common_convert_func_get(data, w, h, buf->priv.fb.fb->fb_var.bits_per_pixel,
152 buf->priv.mask.r, buf->priv.mask.g,
153 buf->priv.mask.b, PAL_MODE_NONE,
154 buf->rot);
155 }
156 else if (buf->rot == 180)
157 {
158 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
159 buf->priv.fb.fb->bpp *
160 (buf->w - x - w + ((buf->h - y - h) * buf->priv.fb.fb->width));
161 conv_func = evas_common_convert_func_get(data, w, h, buf->priv.fb.fb->fb_var.bits_per_pixel,
162 buf->priv.mask.r, buf->priv.mask.g,
163 buf->priv.mask.b, PAL_MODE_NONE,
164 buf->rot);
165 }
166 else if (buf->rot == 270)
167 {
168 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
169 buf->priv.fb.fb->bpp *
170 (buf->h - y - h + (x * buf->priv.fb.fb->width));
171 conv_func = evas_common_convert_func_get(data, h, w, buf->priv.fb.fb->fb_var.bits_per_pixel,
172 buf->priv.mask.r, buf->priv.mask.g,
173 buf->priv.mask.b, PAL_MODE_NONE,
174 buf->rot);
175 }
176 else if (buf->rot == 90)
177 {
178 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
179 buf->priv.fb.fb->bpp *
180 (y + ((buf->w - x - w) * buf->priv.fb.fb->width));
181 conv_func = evas_common_convert_func_get(data, h, w, buf->priv.fb.fb->fb_var.bits_per_pixel,
182 buf->priv.mask.r, buf->priv.mask.g,
183 buf->priv.mask.b, PAL_MODE_NONE,
184 buf->rot);
185 }
186 if (conv_func)
187 {
188 DATA32 *src_data;
189
190 src_data = buf->priv.back_buf->image.data + (y * buf->w) + x;
191 if (buf->rot == 0 || buf->rot == 180)
192 {
193 conv_func(src_data, data,
194 buf->w - w,
195 buf->priv.fb.fb->width - w,
196 w, h,
197 x, y, NULL);
198 }
199 else if (buf->rot == 90 || buf->rot == 270)
200 {
201 conv_func(src_data, data,
202 buf->w - w,
203 buf->priv.fb.fb->width - h,
204 h, w,
205 x, y, NULL);
206 }
207 }
208 }
209}
210
211RGBA_Image *
212evas_fb_outbuf_fb_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
213{
214 if (buf->priv.back_buf)
215 {
216 *cx = x; *cy = y; *cw = w; *ch = h;
217 return buf->priv.back_buf;
218 }
219 else
220 {
221 RGBA_Image *im;
222
223 *cx = 0; *cy = 0; *cw = w; *ch = h;
224 im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
225 im->cache_entry.flags.alpha = 1;
226 im = (RGBA_Image *) evas_cache_image_size_set(&im->cache_entry, w, h);
227
228 return im;
229 }
230 return NULL;
231}
232
233void
234evas_fb_outbuf_fb_free_region_for_update(Outbuf *buf, RGBA_Image *update)
235{
236 if (update != buf->priv.back_buf) evas_cache_image_drop(&update->cache_entry);
237}
238
239void
240evas_fb_outbuf_fb_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h)
241{
242 if (!buf->priv.fb.fb) return;
243 if (buf->priv.back_buf)
244 {
245 if (update != buf->priv.back_buf)
246 evas_common_blit_rectangle(update, buf->priv.back_buf,
247 0, 0, w, h, x, y);
248 evas_fb_outbuf_fb_update(buf, x, y, w, h);
249 }
250 else
251 {
252 Gfx_Func_Convert conv_func;
253 DATA8 *data;
254
255 data = NULL;
256 conv_func = NULL;
257 if (buf->rot == 0)
258 {
259 data = (DATA8 *)buf->priv.fb.fb->mem +
260 buf->priv.fb.fb->mem_offset +
261 buf->priv.fb.fb->bpp *
262 (x + (y * buf->priv.fb.fb->width));
263 conv_func = evas_common_convert_func_get(data, w, h,
264 buf->priv.fb.fb->fb_var.bits_per_pixel,
265 buf->priv.mask.r, buf->priv.mask.g,
266 buf->priv.mask.b, PAL_MODE_NONE,
267 buf->rot);
268 }
269 else if (buf->rot == 180)
270 {
271 data = (DATA8 *)buf->priv.fb.fb->mem +
272 buf->priv.fb.fb->mem_offset +
273 buf->priv.fb.fb->bpp *
274 (buf->w - x - w + ((buf->h - y - h) * buf->priv.fb.fb->width));
275 conv_func = evas_common_convert_func_get(data, w, h,
276 buf->priv.fb.fb->fb_var.bits_per_pixel,
277 buf->priv.mask.r, buf->priv.mask.g,
278 buf->priv.mask.b, PAL_MODE_NONE,
279 buf->rot);
280 }
281 else if (buf->rot == 270)
282 {
283 data = (DATA8 *)buf->priv.fb.fb->mem +
284 buf->priv.fb.fb->mem_offset +
285 buf->priv.fb.fb->bpp *
286 (buf->h - y - h + (x * buf->priv.fb.fb->width));
287 conv_func = evas_common_convert_func_get(data, h, w,
288 buf->priv.fb.fb->fb_var.bits_per_pixel,
289 buf->priv.mask.r, buf->priv.mask.g,
290 buf->priv.mask.b, PAL_MODE_NONE,
291 buf->rot);
292 }
293 else if (buf->rot == 90)
294 {
295 data = (DATA8 *)buf->priv.fb.fb->mem +
296 buf->priv.fb.fb->mem_offset +
297 buf->priv.fb.fb->bpp *
298 (y + ((buf->w - x - w) * buf->priv.fb.fb->width));
299 conv_func = evas_common_convert_func_get(data, h, w,
300 buf->priv.fb.fb->fb_var.bits_per_pixel,
301 buf->priv.mask.r, buf->priv.mask.g,
302 buf->priv.mask.b, PAL_MODE_NONE,
303 buf->rot);
304 }
305 if (conv_func)
306 {
307 DATA32 *src_data;
308
309 src_data = update->image.data;
310 if (buf->rot == 0 || buf->rot == 180)
311 {
312 conv_func(src_data, data,
313 0,
314 buf->priv.fb.fb->width - w,
315 w, h,
316 x, y, NULL);
317 }
318 else if (buf->rot == 90 || buf->rot == 270)
319 {
320 conv_func(src_data, data,
321 0,
322 buf->priv.fb.fb->width - h,
323 h, w,
324 x, y, NULL);
325 }
326 }
327 }
328}
329
330void
331evas_fb_outbuf_fb_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth)
332{
333 if ((w == buf->w) && (h == buf->h) &&
334 (rot == buf->rot) && (depth == buf->depth))
335 return;
336 if (buf->priv.back_buf)
337 {
338 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
339 buf->priv.back_buf = NULL;
340 }
341 if (buf->priv.fb.fb)
342 {
343 /* FIXME: implement this */
344 }
345 /* if backbuf delet it */
346 /* resize window or reset fb mode */
347 /* if (dithered) create new backbuf */
348}
349
350int
351evas_fb_outbuf_fb_get_width(Outbuf *buf)
352{
353 return buf->w;
354}
355
356int
357evas_fb_outbuf_fb_get_height(Outbuf *buf)
358{
359 return buf->h;
360}
361
362Outbuf_Depth
363evas_fb_outbuf_fb_get_depth(Outbuf *buf)
364{
365 return buf->depth;
366}
367
368int
369evas_fb_outbuf_fb_get_rot(Outbuf *buf)
370{
371 return buf->rot;
372}
373
374int
375evas_fb_outbuf_fb_get_have_backbuf(Outbuf *buf)
376{
377 if (buf->priv.back_buf) return 1;
378 return 0;
379}
380
381void
382evas_fb_outbuf_fb_set_have_backbuf(Outbuf *buf, int have_backbuf)
383{
384 if (buf->priv.back_buf)
385 {
386 if (have_backbuf) return;
387 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
388 buf->priv.back_buf = NULL;
389 }
390 else
391 {
392 if (!have_backbuf) return;
393 if (buf->priv.fb.fb)
394 {
395 if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24)
396 {
397 buf->priv.back_buf = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
398 buf->priv.back_buf = (RGBA_Image *) evas_cache_image_size_set(&buf->priv.back_buf->cache_entry, buf->w, buf->h);
399 }
400 }
401 }
402}
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/Evas_Engine_GL_Cocoa.h b/libraries/evas/src/modules/engines/gl_cocoa/Evas_Engine_GL_Cocoa.h
deleted file mode 100644
index eb04d28..0000000
--- a/libraries/evas/src/modules/engines/gl_cocoa/Evas_Engine_GL_Cocoa.h
+++ /dev/null
@@ -1,20 +0,0 @@
1#ifndef __EVAS_ENGINE_GL_COCOA_H__
2#define __EVAS_ENGINE_GL_COCOA_H__
3
4typedef struct _Evas_Engine_Info_GL_Cocoa Evas_Engine_Info_GL_Cocoa;
5
6struct _Evas_Engine_Info_GL_Cocoa
7{
8 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
9 /* at you and make nasty noises */
10 Evas_Engine_Info magic;
11
12 /* engine specific data & parameters it needs to set up */
13 void *window;
14 void *view;
15 int depth;
16
17};
18
19
20#endif /* __EVAS_ENGINE_GL_COCOA_H__ */
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.am b/libraries/evas/src/modules/engines/gl_cocoa/Makefile.am
deleted file mode 100644
index d502846..0000000
--- a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.am
+++ /dev/null
@@ -1,46 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines/gl_common \
9@EINA_CFLAGS@ \
10@GL_EET_CFLAGS@ \
11@FREETYPE_CFLAGS@ \
12@evas_engine_gl_cocoa_cflags@
13
14if BUILD_ENGINE_GL_COCOA
15
16GL_COCOA_SOURCES = evas_engine.c\
17evas_gl_cocoa_main.m
18
19
20GL_COCOA_LIBADD = @evas_engine_gl_cocoa_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
21
22
23includes_HEADERS = Evas_Engine_GL_Cocoa.h
24includesdir = $(includedir)/evas-@VMAJ@
25
26if !EVAS_STATIC_BUILD_GL_COCOA
27
28pkgdir = $(libdir)/evas/modules/engines/gl_cocoa/$(MODULE_ARCH)
29pkg_LTLIBRARIES = module.la
30
31module_la_SOURCES = $(GL_COCOA_SOURCES)
32module_la_LIBADD = @EINA_LIBS@ @GL_EET_LIBS@ $(GL_COCOA_LIBADD) $(top_builddir)/src/lib/libevas.la @dlopen_libs@
33module_la_LDFLAGS = -module -avoid-version
34module_la_LIBTOOLFLAGS = --tag=disable-static
35
36else
37
38noinst_LTLIBRARIES = libevas_engine_gl_cocoa.la
39
40libevas_engine_gl_cocoa_la_SOURCES = $(GL_COCOA_SOURCES)
41libevas_engine_gl_cocoa_la_LIBADD = $(GL_COCOA_LIBADD)
42
43endif
44endif
45
46EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in b/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
deleted file mode 100644
index 049acb2..0000000
--- a/libraries/evas/src/modules/engines/gl_cocoa/Makefile.in
+++ /dev/null
@@ -1,852 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/gl_cocoa
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84@BUILD_ENGINE_GL_COCOA_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
85@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_TRUE@libevas_engine_gl_cocoa_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_gl_cocoa_la_SOURCES_DIST = evas_engine.c \
87 evas_gl_cocoa_main.m
88@BUILD_ENGINE_GL_COCOA_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_GL_COCOA_TRUE@ evas_gl_cocoa_main.lo
90@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_TRUE@am_libevas_engine_gl_cocoa_la_OBJECTS = $(am__objects_1)
91libevas_engine_gl_cocoa_la_OBJECTS = \
92 $(am_libevas_engine_gl_cocoa_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_TRUE@am_libevas_engine_gl_cocoa_la_rpath =
97@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_gl_cocoa_main.m
100@BUILD_ENGINE_GL_COCOA_TRUE@am__objects_2 = module_la-evas_engine.lo \
101@BUILD_ENGINE_GL_COCOA_TRUE@ module_la-evas_gl_cocoa_main.lo
102@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@am_module_la_OBJECTS = $(am__objects_2)
103module_la_OBJECTS = $(am_module_la_OBJECTS)
104module_la_LINK = $(LIBTOOL) $(AM_V_lt) $(module_la_LIBTOOLFLAGS) \
105 $(LIBTOOLFLAGS) --mode=link $(OBJCLD) $(AM_OBJCFLAGS) \
106 $(OBJCFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
107@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@am_module_la_rpath = -rpath \
108@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@ $(pkgdir)
109DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
110depcomp = $(SHELL) $(top_srcdir)/depcomp
111am__depfiles_maybe = depfiles
112am__mv = mv -f
113COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
114 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
115LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
116 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
117 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
118 $(AM_CFLAGS) $(CFLAGS)
119AM_V_CC = $(am__v_CC_$(V))
120am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
121am__v_CC_0 = @echo " CC " $@;
122AM_V_at = $(am__v_at_$(V))
123am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
124am__v_at_0 = @
125CCLD = $(CC)
126LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
127 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
128 $(AM_LDFLAGS) $(LDFLAGS) -o $@
129AM_V_CCLD = $(am__v_CCLD_$(V))
130am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
131am__v_CCLD_0 = @echo " CCLD " $@;
132OBJCCOMPILE = $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
133 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS)
134LTOBJCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
135 $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) \
136 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
137 $(AM_OBJCFLAGS) $(OBJCFLAGS)
138AM_V_OBJC = $(am__v_OBJC_$(V))
139am__v_OBJC_ = $(am__v_OBJC_$(AM_DEFAULT_VERBOSITY))
140am__v_OBJC_0 = @echo " OBJC " $@;
141OBJCLD = $(OBJC)
142OBJCLINK = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
143 --mode=link $(OBJCLD) $(AM_OBJCFLAGS) $(OBJCFLAGS) \
144 $(AM_LDFLAGS) $(LDFLAGS) -o $@
145AM_V_OBJCLD = $(am__v_OBJCLD_$(V))
146am__v_OBJCLD_ = $(am__v_OBJCLD_$(AM_DEFAULT_VERBOSITY))
147am__v_OBJCLD_0 = @echo " OBJCLD" $@;
148AM_V_GEN = $(am__v_GEN_$(V))
149am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
150am__v_GEN_0 = @echo " GEN " $@;
151SOURCES = $(libevas_engine_gl_cocoa_la_SOURCES) $(module_la_SOURCES)
152DIST_SOURCES = $(am__libevas_engine_gl_cocoa_la_SOURCES_DIST) \
153 $(am__module_la_SOURCES_DIST)
154am__includes_HEADERS_DIST = Evas_Engine_GL_Cocoa.h
155HEADERS = $(includes_HEADERS)
156ETAGS = etags
157CTAGS = ctags
158DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
159ACLOCAL = @ACLOCAL@
160ALLOCA = @ALLOCA@
161AMTAR = @AMTAR@
162AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
163AR = @AR@
164AS = @AS@
165AUTOCONF = @AUTOCONF@
166AUTOHEADER = @AUTOHEADER@
167AUTOMAKE = @AUTOMAKE@
168AWK = @AWK@
169CC = @CC@
170CCDEPMODE = @CCDEPMODE@
171CFLAGS = @CFLAGS@
172CHECK_CFLAGS = @CHECK_CFLAGS@
173CHECK_LIBS = @CHECK_LIBS@
174CPP = @CPP@
175CPPFLAGS = @CPPFLAGS@
176CXX = @CXX@
177CXXCPP = @CXXCPP@
178CXXDEPMODE = @CXXDEPMODE@
179CXXFLAGS = @CXXFLAGS@
180CYGPATH_W = @CYGPATH_W@
181DEFS = @DEFS@
182DEPDIR = @DEPDIR@
183DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
184DIRECTFB_LIBS = @DIRECTFB_LIBS@
185DLLTOOL = @DLLTOOL@
186DSYMUTIL = @DSYMUTIL@
187DUMPBIN = @DUMPBIN@
188ECHO_C = @ECHO_C@
189ECHO_N = @ECHO_N@
190ECHO_T = @ECHO_T@
191ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
192ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
193EDB_CFLAGS = @EDB_CFLAGS@
194EDB_LIBS = @EDB_LIBS@
195EDJE_CFLAGS = @EDJE_CFLAGS@
196EDJE_LIBS = @EDJE_LIBS@
197EET_CFLAGS = @EET_CFLAGS@
198EET_LIBS = @EET_LIBS@
199EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
200EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
201EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
202EGREP = @EGREP@
203EINA_CFLAGS = @EINA_CFLAGS@
204EINA_LIBS = @EINA_LIBS@
205EVAS_CFLAGS = @EVAS_CFLAGS@
206EVAS_LIBS = @EVAS_LIBS@
207EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
208EVIL_CFLAGS = @EVIL_CFLAGS@
209EVIL_LIBS = @EVIL_LIBS@
210EXEEXT = @EXEEXT@
211EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
212EXOTIC_LIBS = @EXOTIC_LIBS@
213FGREP = @FGREP@
214FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
215FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
216FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
217FREETYPE_LIBS = @FREETYPE_LIBS@
218FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
219FRIBIDI_LIBS = @FRIBIDI_LIBS@
220GL_EET_CFLAGS = @GL_EET_CFLAGS@
221GL_EET_LIBS = @GL_EET_LIBS@
222GREP = @GREP@
223HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
224HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
225INSTALL = @INSTALL@
226INSTALL_DATA = @INSTALL_DATA@
227INSTALL_PROGRAM = @INSTALL_PROGRAM@
228INSTALL_SCRIPT = @INSTALL_SCRIPT@
229INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
230LD = @LD@
231LDFLAGS = @LDFLAGS@
232LIBOBJS = @LIBOBJS@
233LIBS = @LIBS@
234LIBTOOL = @LIBTOOL@
235LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
236LINEBREAK_LIBS = @LINEBREAK_LIBS@
237LIPO = @LIPO@
238LN_S = @LN_S@
239LTLIBOBJS = @LTLIBOBJS@
240MAKEINFO = @MAKEINFO@
241MKDIR_P = @MKDIR_P@
242MODULE_ARCH = @MODULE_ARCH@
243NM = @NM@
244NMEDIT = @NMEDIT@
245OBJC = @OBJC@
246OBJCDEPMODE = @OBJCDEPMODE@
247OBJCFLAGS = @OBJCFLAGS@
248OBJDUMP = @OBJDUMP@
249OBJEXT = @OBJEXT@
250OTOOL = @OTOOL@
251OTOOL64 = @OTOOL64@
252PACKAGE = @PACKAGE@
253PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
254PACKAGE_NAME = @PACKAGE_NAME@
255PACKAGE_STRING = @PACKAGE_STRING@
256PACKAGE_TARNAME = @PACKAGE_TARNAME@
257PACKAGE_URL = @PACKAGE_URL@
258PACKAGE_VERSION = @PACKAGE_VERSION@
259PATH_SEPARATOR = @PATH_SEPARATOR@
260PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
261PIXMAN_LIBS = @PIXMAN_LIBS@
262PKG_CONFIG = @PKG_CONFIG@
263PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
264PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
265PNG_CFLAGS = @PNG_CFLAGS@
266PNG_LIBS = @PNG_LIBS@
267RANLIB = @RANLIB@
268SDL_CFLAGS = @SDL_CFLAGS@
269SDL_LIBS = @SDL_LIBS@
270SED = @SED@
271SET_MAKE = @SET_MAKE@
272SHELL = @SHELL@
273SHM_OPEN_LINK = @SHM_OPEN_LINK@
274STRIP = @STRIP@
275SVG_CFLAGS = @SVG_CFLAGS@
276SVG_LIBS = @SVG_LIBS@
277VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
278VALGRIND_LIBS = @VALGRIND_LIBS@
279VERSION = @VERSION@
280VMAJ = @VMAJ@
281WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
282WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
283XCB_CFLAGS = @XCB_CFLAGS@
284XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
285XCB_GL_LIBS = @XCB_GL_LIBS@
286XCB_LIBS = @XCB_LIBS@
287XEXT_CFLAGS = @XEXT_CFLAGS@
288XEXT_LIBS = @XEXT_LIBS@
289XMKMF = @XMKMF@
290X_CFLAGS = @X_CFLAGS@
291X_EXTRA_LIBS = @X_EXTRA_LIBS@
292X_LIBS = @X_LIBS@
293X_PRE_LIBS = @X_PRE_LIBS@
294abs_builddir = @abs_builddir@
295abs_srcdir = @abs_srcdir@
296abs_top_builddir = @abs_top_builddir@
297abs_top_srcdir = @abs_top_srcdir@
298ac_ct_CC = @ac_ct_CC@
299ac_ct_CXX = @ac_ct_CXX@
300ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
301ac_ct_OBJC = @ac_ct_OBJC@
302altivec_cflags = @altivec_cflags@
303am__include = @am__include@
304am__leading_dot = @am__leading_dot@
305am__quote = @am__quote@
306am__tar = @am__tar@
307am__untar = @am__untar@
308bindir = @bindir@
309build = @build@
310build_alias = @build_alias@
311build_cpu = @build_cpu@
312build_os = @build_os@
313build_vendor = @build_vendor@
314builddir = @builddir@
315datadir = @datadir@
316datarootdir = @datarootdir@
317dlopen_libs = @dlopen_libs@
318docdir = @docdir@
319dvidir = @dvidir@
320edje_cc = @edje_cc@
321efl_doxygen = @efl_doxygen@
322efl_have_doxygen = @efl_have_doxygen@
323evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
324evas_engine_buffer_libs = @evas_engine_buffer_libs@
325evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
326evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
327evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
328evas_engine_directfb_libs = @evas_engine_directfb_libs@
329evas_engine_fb_cflags = @evas_engine_fb_cflags@
330evas_engine_fb_libs = @evas_engine_fb_libs@
331evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
332evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
333evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
334evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
335evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
336evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
337evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
338evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
339evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
340evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
341evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
342evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
343evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
344evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
345evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
346evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
347evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
348evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
349evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
350evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
351evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
352evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
353evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
354evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
355evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
356evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
357evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
358evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
359evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
360evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
361evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
362evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
363evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
364evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
365evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
366evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
367evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
368evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
369evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
370evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
371evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
372evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
373evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
374evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
375evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
376evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
377evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
378evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
379evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
380evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
381evas_image_loader_png_libs = @evas_image_loader_png_libs@
382evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
383evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
384evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
385evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
386evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
387evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
388evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
389evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
390evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
391evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
392evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
393evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
394exec_prefix = @exec_prefix@
395have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
396have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
397have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
398have_evas_engine_software_x11 = @have_evas_engine_software_x11@
399have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
400have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
401have_lcov = @have_lcov@
402host = @host@
403host_alias = @host_alias@
404host_cpu = @host_cpu@
405host_os = @host_os@
406host_vendor = @host_vendor@
407htmldir = @htmldir@
408includedir = @includedir@
409infodir = @infodir@
410install_sh = @install_sh@
411libdir = @libdir@
412libexecdir = @libexecdir@
413localedir = @localedir@
414localstatedir = @localstatedir@
415lt_ECHO = @lt_ECHO@
416lt_enable_auto_import = @lt_enable_auto_import@
417mandir = @mandir@
418mkdir_p = @mkdir_p@
419oldincludedir = @oldincludedir@
420pdfdir = @pdfdir@
421pkgconfig_requires_private = @pkgconfig_requires_private@
422prefix = @prefix@
423program_transform_name = @program_transform_name@
424psdir = @psdir@
425pthread_cflags = @pthread_cflags@
426pthread_libs = @pthread_libs@
427release_info = @release_info@
428requirement_evas = @requirement_evas@
429sbindir = @sbindir@
430sharedstatedir = @sharedstatedir@
431srcdir = @srcdir@
432sysconfdir = @sysconfdir@
433target_alias = @target_alias@
434top_build_prefix = @top_build_prefix@
435top_builddir = @top_builddir@
436top_srcdir = @top_srcdir@
437version_info = @version_info@
438MAINTAINERCLEANFILES = Makefile.in
439AM_CPPFLAGS = \
440-I. \
441-I$(top_srcdir)/src/lib \
442-I$(top_srcdir)/src/lib/include \
443-I$(top_srcdir)/src/modules/engines/gl_common \
444@EINA_CFLAGS@ \
445@GL_EET_CFLAGS@ \
446@FREETYPE_CFLAGS@ \
447@evas_engine_gl_cocoa_cflags@
448
449@BUILD_ENGINE_GL_COCOA_TRUE@GL_COCOA_SOURCES = evas_engine.c\
450@BUILD_ENGINE_GL_COCOA_TRUE@evas_gl_cocoa_main.m
451
452@BUILD_ENGINE_GL_COCOA_TRUE@GL_COCOA_LIBADD = @evas_engine_gl_cocoa_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
453@BUILD_ENGINE_GL_COCOA_TRUE@includes_HEADERS = Evas_Engine_GL_Cocoa.h
454@BUILD_ENGINE_GL_COCOA_TRUE@includesdir = $(includedir)/evas-@VMAJ@
455@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@pkgdir = $(libdir)/evas/modules/engines/gl_cocoa/$(MODULE_ARCH)
456@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@pkg_LTLIBRARIES = module.la
457@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@module_la_SOURCES = $(GL_COCOA_SOURCES)
458@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@module_la_LIBADD = @EINA_LIBS@ @GL_EET_LIBS@ $(GL_COCOA_LIBADD) $(top_builddir)/src/lib/libevas.la @dlopen_libs@
459@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@module_la_LDFLAGS = -module -avoid-version
460@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
461@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_TRUE@noinst_LTLIBRARIES = libevas_engine_gl_cocoa.la
462@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_TRUE@libevas_engine_gl_cocoa_la_SOURCES = $(GL_COCOA_SOURCES)
463@BUILD_ENGINE_GL_COCOA_TRUE@@EVAS_STATIC_BUILD_GL_COCOA_TRUE@libevas_engine_gl_cocoa_la_LIBADD = $(GL_COCOA_LIBADD)
464EXTRA_DIST = evas_engine.h
465all: all-am
466
467.SUFFIXES:
468.SUFFIXES: .c .lo .m .o .obj
469$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
470 @for dep in $?; do \
471 case '$(am__configure_deps)' in \
472 *$$dep*) \
473 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
474 && { if test -f $@; then exit 0; else break; fi; }; \
475 exit 1;; \
476 esac; \
477 done; \
478 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/gl_cocoa/Makefile'; \
479 $(am__cd) $(top_srcdir) && \
480 $(AUTOMAKE) --gnu src/modules/engines/gl_cocoa/Makefile
481.PRECIOUS: Makefile
482Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
483 @case '$?' in \
484 *config.status*) \
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
486 *) \
487 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
488 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
489 esac;
490
491$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
492 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
493
494$(top_srcdir)/configure: $(am__configure_deps)
495 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
496$(ACLOCAL_M4): $(am__aclocal_m4_deps)
497 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
498$(am__aclocal_m4_deps):
499
500clean-noinstLTLIBRARIES:
501 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
502 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
503 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
504 test "$$dir" != "$$p" || dir=.; \
505 echo "rm -f \"$${dir}/so_locations\""; \
506 rm -f "$${dir}/so_locations"; \
507 done
508install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
509 @$(NORMAL_INSTALL)
510 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
511 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
512 list2=; for p in $$list; do \
513 if test -f $$p; then \
514 list2="$$list2 $$p"; \
515 else :; fi; \
516 done; \
517 test -z "$$list2" || { \
518 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
519 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
520 }
521
522uninstall-pkgLTLIBRARIES:
523 @$(NORMAL_UNINSTALL)
524 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
525 for p in $$list; do \
526 $(am__strip_dir) \
527 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
528 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
529 done
530
531clean-pkgLTLIBRARIES:
532 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
533 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
534 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
535 test "$$dir" != "$$p" || dir=.; \
536 echo "rm -f \"$${dir}/so_locations\""; \
537 rm -f "$${dir}/so_locations"; \
538 done
539libevas_engine_gl_cocoa.la: $(libevas_engine_gl_cocoa_la_OBJECTS) $(libevas_engine_gl_cocoa_la_DEPENDENCIES)
540 $(AM_V_OBJCLD)$(OBJCLINK) $(am_libevas_engine_gl_cocoa_la_rpath) $(libevas_engine_gl_cocoa_la_OBJECTS) $(libevas_engine_gl_cocoa_la_LIBADD) $(LIBS)
541module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
542 $(AM_V_OBJCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
543
544mostlyclean-compile:
545 -rm -f *.$(OBJEXT)
546
547distclean-compile:
548 -rm -f *.tab.c
549
550@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
551@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_cocoa_main.Plo@am__quote@
552@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
553@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_gl_cocoa_main.Plo@am__quote@
554
555.c.o:
556@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
557@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
558@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
559@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
560@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
561@am__fastdepCC_FALSE@ $(COMPILE) -c $<
562
563.c.obj:
564@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
565@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
566@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
567@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
568@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
569@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
570
571.c.lo:
572@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
573@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
574@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
575@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
576@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
577@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
578
579module_la-evas_engine.lo: evas_engine.c
580@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
581@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
582@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
583@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
584@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
585@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
586
587.m.o:
588@am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
589@am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
590@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@
591@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
592@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
593@am__fastdepOBJC_FALSE@ $(OBJCCOMPILE) -c -o $@ $<
594
595.m.obj:
596@am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(OBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
597@am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
598@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@
599@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
600@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
601@am__fastdepOBJC_FALSE@ $(OBJCCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
602
603.m.lo:
604@am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LTOBJCCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
605@am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
606@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@
607@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
608@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
609@am__fastdepOBJC_FALSE@ $(LTOBJCCOMPILE) -c -o $@ $<
610
611module_la-evas_gl_cocoa_main.lo: evas_gl_cocoa_main.m
612@am__fastdepOBJC_TRUE@ $(AM_V_OBJC)$(LIBTOOL) $(AM_V_lt) $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -MT module_la-evas_gl_cocoa_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_gl_cocoa_main.Tpo -c -o module_la-evas_gl_cocoa_main.lo `test -f 'evas_gl_cocoa_main.m' || echo '$(srcdir)/'`evas_gl_cocoa_main.m
613@am__fastdepOBJC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_gl_cocoa_main.Tpo $(DEPDIR)/module_la-evas_gl_cocoa_main.Plo
614@am__fastdepOBJC_FALSE@ $(AM_V_OBJC) @AM_BACKSLASH@
615@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ source='evas_gl_cocoa_main.m' object='module_la-evas_gl_cocoa_main.lo' libtool=yes @AMDEPBACKSLASH@
616@AMDEP_TRUE@@am__fastdepOBJC_FALSE@ DEPDIR=$(DEPDIR) $(OBJCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
617@am__fastdepOBJC_FALSE@ $(LIBTOOL) $(AM_V_lt) $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(OBJC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCFLAGS) $(OBJCFLAGS) -c -o module_la-evas_gl_cocoa_main.lo `test -f 'evas_gl_cocoa_main.m' || echo '$(srcdir)/'`evas_gl_cocoa_main.m
618
619mostlyclean-libtool:
620 -rm -f *.lo
621
622clean-libtool:
623 -rm -rf .libs _libs
624install-includesHEADERS: $(includes_HEADERS)
625 @$(NORMAL_INSTALL)
626 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
627 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
628 for p in $$list; do \
629 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
630 echo "$$d$$p"; \
631 done | $(am__base_list) | \
632 while read files; do \
633 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
634 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
635 done
636
637uninstall-includesHEADERS:
638 @$(NORMAL_UNINSTALL)
639 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
640 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
641 test -n "$$files" || exit 0; \
642 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
643 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
644
645ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
646 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
647 unique=`for i in $$list; do \
648 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
649 done | \
650 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
651 END { if (nonempty) { for (i in files) print i; }; }'`; \
652 mkid -fID $$unique
653tags: TAGS
654
655TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
656 $(TAGS_FILES) $(LISP)
657 set x; \
658 here=`pwd`; \
659 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
660 unique=`for i in $$list; do \
661 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
662 done | \
663 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
664 END { if (nonempty) { for (i in files) print i; }; }'`; \
665 shift; \
666 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
667 test -n "$$unique" || unique=$$empty_fix; \
668 if test $$# -gt 0; then \
669 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
670 "$$@" $$unique; \
671 else \
672 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
673 $$unique; \
674 fi; \
675 fi
676ctags: CTAGS
677CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
678 $(TAGS_FILES) $(LISP)
679 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
680 unique=`for i in $$list; do \
681 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
682 done | \
683 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
684 END { if (nonempty) { for (i in files) print i; }; }'`; \
685 test -z "$(CTAGS_ARGS)$$unique" \
686 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
687 $$unique
688
689GTAGS:
690 here=`$(am__cd) $(top_builddir) && pwd` \
691 && $(am__cd) $(top_srcdir) \
692 && gtags -i $(GTAGS_ARGS) "$$here"
693
694distclean-tags:
695 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
696
697distdir: $(DISTFILES)
698 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
699 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
700 list='$(DISTFILES)'; \
701 dist_files=`for file in $$list; do echo $$file; done | \
702 sed -e "s|^$$srcdirstrip/||;t" \
703 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
704 case $$dist_files in \
705 */*) $(MKDIR_P) `echo "$$dist_files" | \
706 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
707 sort -u` ;; \
708 esac; \
709 for file in $$dist_files; do \
710 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
711 if test -d $$d/$$file; then \
712 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
713 if test -d "$(distdir)/$$file"; then \
714 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
715 fi; \
716 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
717 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
718 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
719 fi; \
720 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
721 else \
722 test -f "$(distdir)/$$file" \
723 || cp -p $$d/$$file "$(distdir)/$$file" \
724 || exit 1; \
725 fi; \
726 done
727check-am: all-am
728check: check-am
729all-am: Makefile $(LTLIBRARIES) $(HEADERS)
730installdirs:
731 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
732 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
733 done
734install: install-am
735install-exec: install-exec-am
736install-data: install-data-am
737uninstall: uninstall-am
738
739install-am: all-am
740 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
741
742installcheck: installcheck-am
743install-strip:
744 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
745 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
746 `test -z '$(STRIP)' || \
747 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
748mostlyclean-generic:
749
750clean-generic:
751
752distclean-generic:
753 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
754 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
755
756maintainer-clean-generic:
757 @echo "This command is intended for maintainers to use"
758 @echo "it deletes files that may require special tools to rebuild."
759 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
760clean: clean-am
761
762clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
763 clean-pkgLTLIBRARIES mostlyclean-am
764
765distclean: distclean-am
766 -rm -rf ./$(DEPDIR)
767 -rm -f Makefile
768distclean-am: clean-am distclean-compile distclean-generic \
769 distclean-tags
770
771dvi: dvi-am
772
773dvi-am:
774
775html: html-am
776
777html-am:
778
779info: info-am
780
781info-am:
782
783install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
784
785install-dvi: install-dvi-am
786
787install-dvi-am:
788
789install-exec-am:
790
791install-html: install-html-am
792
793install-html-am:
794
795install-info: install-info-am
796
797install-info-am:
798
799install-man:
800
801install-pdf: install-pdf-am
802
803install-pdf-am:
804
805install-ps: install-ps-am
806
807install-ps-am:
808
809installcheck-am:
810
811maintainer-clean: maintainer-clean-am
812 -rm -rf ./$(DEPDIR)
813 -rm -f Makefile
814maintainer-clean-am: distclean-am maintainer-clean-generic
815
816mostlyclean: mostlyclean-am
817
818mostlyclean-am: mostlyclean-compile mostlyclean-generic \
819 mostlyclean-libtool
820
821pdf: pdf-am
822
823pdf-am:
824
825ps: ps-am
826
827ps-am:
828
829uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
830
831.MAKE: install-am install-strip
832
833.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
834 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
835 ctags distclean distclean-compile distclean-generic \
836 distclean-libtool distclean-tags distdir dvi dvi-am html \
837 html-am info info-am install install-am install-data \
838 install-data-am install-dvi install-dvi-am install-exec \
839 install-exec-am install-html install-html-am \
840 install-includesHEADERS install-info install-info-am \
841 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
842 install-ps install-ps-am install-strip installcheck \
843 installcheck-am installdirs maintainer-clean \
844 maintainer-clean-generic mostlyclean mostlyclean-compile \
845 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
846 tags uninstall uninstall-am uninstall-includesHEADERS \
847 uninstall-pkgLTLIBRARIES
848
849
850# Tell versions [3.59,3.63) of GNU make to not export all variables.
851# Otherwise a system limit (for SysV at least) may be exceeded.
852.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/evas_engine.c b/libraries/evas/src/modules/engines/gl_cocoa/evas_engine.c
deleted file mode 100644
index fd95688..0000000
--- a/libraries/evas/src/modules/engines/gl_cocoa/evas_engine.c
+++ /dev/null
@@ -1,1462 +0,0 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_engine.h"
3
4#include "evas_private.h"
5
6#include <dlfcn.h> /* dlopen,dlclose,etc */
7#define EVAS_GL_NO_GL_H_CHECK 1
8#include "Evas_GL.h"
9
10
11
12typedef struct _Render_Engine Render_Engine;
13typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
14typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
15
16struct _Render_Engine
17{
18 Evas_GL_Cocoa_Window *win;
19 int end;
20};
21
22
23struct _Render_Engine_GL_Surface
24{
25 int initialized;
26 int fbo_attached;
27 int w, h;
28 int depth_bits;
29 int stencil_bits;
30
31 // Render target texture/buffers
32 GLuint rt_tex;
33 GLint rt_internal_fmt;
34 GLenum rt_fmt;
35 GLuint rb_depth;
36 GLenum rb_depth_fmt;
37 GLuint rb_stencil;
38 GLenum rb_stencil_fmt;
39
40 Render_Engine_GL_Context *current_ctx;
41};
42
43struct _Render_Engine_GL_Context
44{
45 int initialized;
46 // EGLContext context;
47
48 GLuint fbo;
49
50 Render_Engine_GL_Surface *current_sfc;
51};
52
53
54int _evas_engine_gl_cocoa_log_dom = -1;
55/* function tables - filled in later (func and parent func) */
56static Evas_Func func, pfunc;
57
58/* Function table for GL APIs */
59static Evas_GL_API gl_funcs;
60
61
62
63static void *
64eng_info(Evas *e __UNUSED__)
65{
66 Evas_Engine_Info_GL_Cocoa *info;
67 info = calloc(1, sizeof(Evas_Engine_Info_GL_Cocoa));
68 DBG("Info %p", info);
69 if (!info) return NULL;
70 info->magic.magic = rand();
71 return info;
72}
73
74static void
75eng_info_free(Evas *e __UNUSED__, void *info)
76{
77 Evas_Engine_Info_GL_Cocoa *in;
78
79 DBG("Info %p", info);
80 eina_log_domain_unregister(_evas_engine_gl_cocoa_log_dom);
81 in = (Evas_Engine_Info_GL_Cocoa *)info;
82 free(in);
83}
84
85static int
86eng_setup(Evas *e, void *in)
87{
88 Render_Engine *re;
89 Evas_Engine_Info_GL_Cocoa *info;
90
91 DBG("Engine Setup");
92
93 info = (Evas_Engine_Info_GL_Cocoa *)in;
94 if (!e->engine.data.output)
95 {
96 re = calloc(1, sizeof(Render_Engine));
97 if (!re) return 0;
98
99 e->engine.data.output = re;
100 re->win = eng_window_new(info->window,
101 e->output.w,
102 e->output.h);
103 info->view = re->win->view;
104 if (!re->win)
105 {
106 free(re);
107 e->engine.data.output = NULL;
108 return 0;
109 }
110
111 evas_common_cpu_init();
112
113 evas_common_blend_init();
114 evas_common_image_init();
115 evas_common_convert_init();
116 evas_common_scale_init();
117 evas_common_rectangle_init();
118 evas_common_polygon_init();
119 evas_common_line_init();
120 evas_common_font_init();
121 evas_common_draw_init();
122 evas_common_tilebuf_init();
123 }
124 else
125 {
126 re = e->engine.data.output;
127 eng_window_free(re->win);
128 re->win = eng_window_new(info->window,
129 e->output.w,
130 e->output.h);
131 info->view = re->win->view;
132 }
133 if (!e->engine.data.output) return 0;
134
135 if (!e->engine.data.context)
136 e->engine.data.context =
137 e->engine.func->context_new(e->engine.data.output);
138 eng_window_use(re->win);
139
140 return 1;
141}
142
143static void
144eng_output_free(void *data)
145{
146 Render_Engine *re;
147
148 DBG("Output free");
149 re = (Render_Engine *)data;
150 eng_window_free(re->win);
151 free(re);
152
153 evas_common_font_shutdown();
154 evas_common_image_shutdown();
155}
156
157static void
158eng_output_resize(void *data, int w, int h)
159{
160 Render_Engine *re;
161
162 DBG("Output Resize %d %d", w, h);
163
164 re = (Render_Engine *)data;
165 re->win->width = w;
166 re->win->height = h;
167
168 eng_window_resize(re->win, w, h);
169 evas_gl_common_context_resize(re->win->gl_context, w, h, 0);
170}
171
172static void
173eng_output_tile_size_set(void *data __UNUSED__, int w __UNUSED__, int h __UNUSED__)
174{
175 DBG("tile size set");
176}
177
178static void
179eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
180{
181 Render_Engine *re;
182
183 DBG("Redraw rect %d %d %d %d", x, y, w, h);
184 re = (Render_Engine *)data;
185 evas_gl_common_context_resize(re->win->gl_context, re->win->width, re->win->height, 0);
186 /* simple bounding box */
187 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->width, re->win->height);
188 if ((w <= 0) || (h <= 0)) return;
189 if (!re->win->draw.redraw)
190 {
191#if 0
192 re->win->draw.x1 = x;
193 re->win->draw.y1 = y;
194 re->win->draw.x2 = x + w - 1;
195 re->win->draw.y2 = y + h - 1;
196#else
197 re->win->draw.x1 = 0;
198 re->win->draw.y1 = 0;
199 re->win->draw.x2 = re->win->width - 1;
200 re->win->draw.y2 = re->win->height - 1;
201#endif
202 }
203 else
204 {
205 if (x < re->win->draw.x1) re->win->draw.x1 = x;
206 if (y < re->win->draw.y1) re->win->draw.y1 = y;
207 if ((x + w - 1) > re->win->draw.x2) re->win->draw.x2 = x + w - 1;
208 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1;
209 }
210 re->win->draw.redraw = 1;
211}
212
213static void
214eng_output_redraws_rect_del(void *data __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
215{
216}
217
218static void
219eng_output_redraws_clear(void *data)
220{
221 Render_Engine *re;
222
223 re = (Render_Engine *)data;
224 re->win->draw.redraw = 0;
225}
226
227//#define SLOW_GL_COPY_RECT 1
228/* vsync games - not for now though */
229#define VSYNC_TO_SCREEN 1
230
231static void *
232eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
233{
234 Render_Engine *re;
235
236 re = (Render_Engine *)data;
237 evas_gl_common_context_flush(re->win->gl_context);
238 /* get the upate rect surface - return engine data as dummy */
239 if (!re->win->draw.redraw)
240 {
241// printf("GL: NO updates!\n");
242 return NULL;
243 }
244// printf("GL: update....!\n");
245#ifdef SLOW_GL_COPY_RECT
246 /* if any update - just return the whole canvas - works with swap
247 * buffers then */
248 if (x) *x = 0;
249 if (y) *y = 0;
250 if (w) *w = re->win->width;
251 if (h) *h = re->win->height;
252 if (cx) *cx = 0;
253 if (cy) *cy = 0;
254 if (cw) *cw = re->win->width;
255 if (ch) *ch = re->win->height;
256#else
257 /* 1 update - INCREDIBLY SLOW if combined with swap_rect in flush. a gl
258 * problem where there just is no hardware path for somethnig that
259 * obviously SHOULD be there */
260 /* only 1 update to minimise gl context games and rendering multiple update
261 * regions as evas does with other engines
262 */
263 if (x) *x = re->win->draw.x1;
264 if (y) *y = re->win->draw.y1;
265 if (w) *w = re->win->draw.x2 - re->win->draw.x1 + 1;
266 if (h) *h = re->win->draw.y2 - re->win->draw.y1 + 1;
267 if (cx) *cx = re->win->draw.x1;
268 if (cy) *cy = re->win->draw.y1;
269 if (cw) *cw = re->win->draw.x2 - re->win->draw.x1 + 1;
270 if (ch) *ch = re->win->draw.y2 - re->win->draw.y1 + 1;
271#endif
272// clear buffer. only needed for dest alpha
273// glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
274// glClear(GL_COLOR_BUFFER_BIT);
275//x// printf("frame -> new\n");
276 return re->win->gl_context->def_surface;
277}
278
279static void
280eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
281{
282 Render_Engine *re;
283
284 re = (Render_Engine *)data;
285 /* put back update surface.. in this case just unflag redraw */
286 re->win->draw.redraw = 0;
287 re->win->draw.drew = 1;
288 evas_gl_common_context_flush(re->win->gl_context);
289}
290
291static void
292eng_output_flush(void *data)
293{
294 Render_Engine *re;
295
296 re = (Render_Engine *)data;
297 if (!re->win->draw.drew) return;
298
299 re->win->draw.drew = 0;
300 eng_window_use(re->win);
301
302#ifdef VSYNC_TO_SCREEN
303 eng_window_vsync_set(1);
304#endif
305
306 eng_window_swap_buffers(re->win);
307
308}
309
310static void
311eng_output_idle_flush(void *data __UNUSED__)
312{
313}
314
315static void
316eng_context_cutout_add(void *data __UNUSED__, void *context, int x, int y, int w, int h)
317{
318 evas_common_draw_context_add_cutout(context, x, y, w, h);
319}
320
321static void
322eng_context_cutout_clear(void *data __UNUSED__, void *context)
323{
324 evas_common_draw_context_clear_cutouts(context);
325}
326
327static void
328eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
329{
330 Render_Engine *re;
331
332 re = (Render_Engine *)data;
333 eng_window_use(re->win);
334 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
335 re->win->gl_context->dc = context;
336 evas_gl_common_rect_draw(re->win->gl_context, x, y, w, h);
337}
338
339static void
340eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
341{
342 Render_Engine *re;
343
344 re = (Render_Engine *)data;
345 eng_window_use(re->win);
346 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
347 re->win->gl_context->dc = context;
348 evas_gl_common_line_draw(re->win->gl_context, x1, y1, x2, y2);
349}
350
351static void *
352eng_polygon_point_add(void *data, void *context __UNUSED__, void *polygon, int x, int y)
353{
354 Render_Engine *re;
355
356 re = (Render_Engine *)data;
357 return evas_gl_common_poly_point_add(polygon, x, y);
358}
359
360static void *
361eng_polygon_points_clear(void *data, void *context __UNUSED__, void *polygon)
362{
363 Render_Engine *re;
364
365 re = (Render_Engine *)data;
366 return evas_gl_common_poly_points_clear(polygon);
367}
368
369static void
370eng_polygon_draw(void *data, void *context, void *surface __UNUSED__, void *polygon, int x, int y)
371{
372 Render_Engine *re;
373
374 re = (Render_Engine *)data;
375 eng_window_use(re->win);
376 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
377 re->win->gl_context->dc = context;
378 evas_gl_common_poly_draw(re->win->gl_context, polygon, x, y);
379}
380
381static int
382eng_image_alpha_get(void *data __UNUSED__, void *image)
383{
384// Render_Engine *re;
385 Evas_GL_Image *im;
386
387// re = (Render_Engine *)data;
388 if (!image) return 1;
389 im = image;
390 return im->alpha;
391}
392
393static int
394eng_image_colorspace_get(void *data __UNUSED__, void *image)
395{
396// Render_Engine *re;
397 Evas_GL_Image *im;
398
399// re = (Render_Engine *)data;
400 if (!image) return EVAS_COLORSPACE_ARGB8888;
401 im = image;
402 return im->cs.space;
403}
404
405static void
406eng_image_mask_create(void *data __UNUSED__, void *image)
407{
408 Evas_GL_Image *im;
409
410 if (!image) return;
411 im = image;
412 if (!im->im->image.data)
413 evas_cache_image_load_data(&im->im->cache_entry);
414 if (!im->tex)
415 im->tex = evas_gl_common_texture_new(im->gc, im->im);
416}
417
418
419static void *
420eng_image_alpha_set(void *data, void *image, int has_alpha)
421{
422 Render_Engine *re;
423 Evas_GL_Image *im;
424
425 re = (Render_Engine *)data;
426 if (!image) return NULL;
427 im = image;
428 if (im->alpha == has_alpha) return image;
429 if (im->native.data)
430 {
431 im->alpha = has_alpha;
432 return image;
433 }
434 eng_window_use(re->win);
435 if ((im->tex) && (im->tex->pt->dyn.img))
436 {
437 im->alpha = has_alpha;
438 im->tex->alpha = im->alpha;
439 return image;
440 }
441 /* FIXME: can move to gl_common */
442 if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return im;
443 if ((has_alpha) && (im->im->cache_entry.flags.alpha)) return image;
444 else if ((!has_alpha) && (!im->im->cache_entry.flags.alpha)) return image;
445 if (im->references > 1)
446 {
447 Evas_GL_Image *im_new;
448
449 im_new = evas_gl_common_image_new_from_copied_data
450 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
451 im->im->image.data,
452 eng_image_alpha_get(data, image),
453 eng_image_colorspace_get(data, image));
454 if (!im_new) return im;
455 evas_gl_common_image_free(im);
456 im = im_new;
457 }
458 else
459 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
460 return evas_gl_common_image_alpha_set(im, has_alpha ? 1 : 0);
461// im->im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
462// return image;
463}
464
465static void *
466eng_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
467{
468// Render_Engine *re;
469//
470// re = (Render_Engine *)data;
471 return image;
472}
473
474static void
475eng_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
476{
477// Render_Engine *re;
478//
479// re = (Render_Engine *)data;
480}
481
482static char *
483eng_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
484{
485// Render_Engine *re;
486 Evas_GL_Image *im;
487
488// re = (Render_Engine *)data;
489 if (!image) return NULL;
490 im = image;
491 if (!im->im) return NULL;
492 return im->im->info.comment;
493}
494
495static char *
496eng_image_format_get(void *data __UNUSED__, void *image)
497{
498// Render_Engine *re;
499 Evas_GL_Image *im;
500
501// re = (Render_Engine *)data;
502 im = image;
503 return NULL;
504}
505
506static void
507eng_image_colorspace_set(void *data, void *image, int cspace)
508{
509 Render_Engine *re;
510 Evas_GL_Image *im;
511
512 re = (Render_Engine *)data;
513 if (!image) return;
514 im = image;
515 if (im->native.data) return;
516 /* FIXME: can move to gl_common */
517 if (im->cs.space == cspace) return;
518 eng_window_use(re->win);
519 evas_cache_image_colorspace(&im->im->cache_entry, cspace);
520 switch (cspace)
521 {
522 case EVAS_COLORSPACE_ARGB8888:
523 if (im->cs.data)
524 {
525 if (!im->cs.no_free) free(im->cs.data);
526 im->cs.data = NULL;
527 im->cs.no_free = 0;
528 }
529 break;
530 case EVAS_COLORSPACE_YCBCR422P601_PL:
531 case EVAS_COLORSPACE_YCBCR422P709_PL:
532 if (im->tex) evas_gl_common_texture_free(im->tex);
533 im->tex = NULL;
534 if (im->cs.data)
535 {
536 if (!im->cs.no_free) free(im->cs.data);
537 }
538 if (im->im->cache_entry.h > 0)
539 im->cs.data =
540 calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
541 else
542 im->cs.data = NULL;
543 im->cs.no_free = 0;
544 break;
545 default:
546 abort();
547 break;
548 }
549 im->cs.space = cspace;
550}
551
552/////////////////////////////////////////////////////////////////////////
553//
554//
555
556// FIXME: this is enabled so updates happen - but its SLOOOOOOOOOOOOOOOW
557// (i am sure this is the reason) not to mention seemingly superfluous. but
558// i need to enable it for it to work on fglrx at least. havent tried nvidia.
559//
560// why is this the case? does anyone know? has anyone tried it on other gfx
561// drivers?
562//
563//#define GLX_TEX_PIXMAP_RECREATE 1
564#if 0
565static void
566eng_image_draw_filtered(void *data, void *context, void *surface,
567 void *image, Evas_Filter_Info *filter)
568{
569 Render_Engine *re = data;
570
571 if (!image) return;
572 eng_window_use(re->win);
573 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
574 re->win->gl_context->dc = context;
575
576 evas_gl_common_filter_draw(re->win->gl_context, image, filter);
577}
578
579static Filtered_Image *
580eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
581{
582 return evas_gl_common_image_filtered_get(im, key, keylen);
583}
584
585static Filtered_Image *
586eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
587{
588 return evas_gl_common_image_filtered_save(im, fim, key, keylen);
589}
590
591static void
592eng_image_filtered_free(void *im, Filtered_Image *fim)
593{
594 evas_gl_common_image_filtered_free(im, fim);
595}
596
597#endif
598
599//
600//
601/////////////////////////////////////////////////////////////////////////
602
603static void *
604eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
605{
606 Render_Engine *re;
607
608 re = (Render_Engine *)data;
609 *error = EVAS_LOAD_ERROR_NONE;
610 eng_window_use(re->win);
611 return evas_gl_common_image_load(re->win->gl_context, file, key, lo, error);
612}
613
614static void *
615eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
616{
617 Render_Engine *re;
618
619 re = (Render_Engine *)data;
620 eng_window_use(re->win);
621 return evas_gl_common_image_new_from_data(re->win->gl_context, w, h, image_data, alpha, cspace);
622}
623
624static void *
625eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
626{
627 Render_Engine *re;
628
629 re = (Render_Engine *)data;
630 eng_window_use(re->win);
631 return evas_gl_common_image_new_from_copied_data(re->win->gl_context, w, h, image_data, alpha, cspace);
632}
633
634static void
635eng_image_free(void *data, void *image)
636{
637 Render_Engine *re;
638
639 re = (Render_Engine *)data;
640 if (!image) return;
641 eng_window_use(re->win);
642 evas_gl_common_image_free(image);
643}
644
645static void
646eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
647{
648 if (!image)
649 {
650 *w = 0;
651 *h = 0;
652 return;
653 }
654 if (w) *w = ((Evas_GL_Image *)image)->w;
655 if (h) *h = ((Evas_GL_Image *)image)->h;
656}
657
658static void *
659eng_image_size_set(void *data, void *image, int w, int h)
660{
661 Render_Engine *re;
662 Evas_GL_Image *im = image;
663 Evas_GL_Image *im_old;
664
665 re = (Render_Engine *)data;
666 if (!im) return NULL;
667 if (im->native.data)
668 {
669 im->w = w;
670 im->h = h;
671 return image;
672 }
673 eng_window_use(re->win);
674 if ((im->tex) && (im->tex->pt->dyn.img))
675 {
676 evas_gl_common_texture_free(im->tex);
677 im->tex = NULL;
678 im->w = w;
679 im->h = h;
680 im->tex = evas_gl_common_texture_dynamic_new(im->gc, im);
681 return image;
682 }
683 im_old = image;
684 if ((eng_image_colorspace_get(data, image) == EVAS_COLORSPACE_YCBCR422P601_PL) ||
685 (eng_image_colorspace_get(data, image) == EVAS_COLORSPACE_YCBCR422P709_PL))
686 w &= ~0x1;
687 if ((im_old) &&
688 ((int)im_old->im->cache_entry.w == w) &&
689 ((int)im_old->im->cache_entry.h == h))
690 return image;
691 if (im_old)
692 {
693 im = evas_gl_common_image_new(re->win->gl_context, w, h,
694 eng_image_alpha_get(data, image),
695 eng_image_colorspace_get(data, image));
696/*
697 evas_common_load_image_data_from_file(im_old->im);
698 if (im_old->im->image->data)
699 {
700 evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0);
701 evas_common_cpu_end_opt();
702 }
703 */
704 evas_gl_common_image_free(im_old);
705 }
706 else
707 im = evas_gl_common_image_new(re->win->gl_context, w, h, 1, EVAS_COLORSPACE_ARGB8888);
708 return im;
709}
710
711static void *
712eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h)
713{
714 Render_Engine *re;
715 Evas_GL_Image *im = image;
716
717 re = (Render_Engine *)data;
718 if (!image) return NULL;
719 if (im->native.data) return image;
720 eng_window_use(re->win);
721 evas_gl_common_image_dirty(image, x, y, w, h);
722 return image;
723}
724
725static void *
726eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, int *err)
727{
728 Render_Engine *re;
729 Evas_GL_Image *im;
730 int error;
731
732 re = (Render_Engine *)data;
733 if (!image)
734 {
735 *image_data = NULL;
736 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
737 return NULL;
738 }
739 im = image;
740 if (im->native.data)
741 {
742 *image_data = NULL;
743 if (err) *err = EVAS_LOAD_ERROR_NONE;
744 return im;
745 }
746 if ((im->tex) && (im->tex->pt) && (im->tex->pt->dyn.data))
747 {
748 *image_data = im->tex->pt->dyn.data;
749 if (err) *err = EVAS_LOAD_ERROR_NONE;
750 return im;
751 }
752 eng_window_use(re->win);
753 error = evas_cache_image_load_data(&im->im->cache_entry);
754 switch (im->cs.space)
755 {
756 case EVAS_COLORSPACE_ARGB8888:
757 if (to_write)
758 {
759 if (im->references > 1)
760 {
761 Evas_GL_Image *im_new;
762
763 im_new = evas_gl_common_image_new_from_copied_data
764 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
765 im->im->image.data,
766 eng_image_alpha_get(data, image),
767 eng_image_colorspace_get(data, image));
768 if (!im_new)
769 {
770 *image_data = NULL;
771 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
772 return im;
773 }
774 evas_gl_common_image_free(im);
775 im = im_new;
776 }
777 else
778 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
779 }
780 *image_data = im->im->image.data;
781 break;
782 case EVAS_COLORSPACE_YCBCR422P601_PL:
783 case EVAS_COLORSPACE_YCBCR422P709_PL:
784 *image_data = im->cs.data;
785 break;
786 default:
787 abort();
788 break;
789 }
790 if (err) *err = error;
791 return im;
792}
793
794static void *
795eng_image_data_put(void *data, void *image, DATA32 *image_data)
796{
797 Render_Engine *re;
798 Evas_GL_Image *im, *im2;
799
800 re = (Render_Engine *)data;
801 if (!image) return NULL;
802 im = image;
803 if (im->native.data) return image;
804 eng_window_use(re->win);
805 if ((im->tex) && (im->tex->pt) && (im->tex->pt->dyn.data))
806 {
807 if (im->tex->pt->dyn.data == image_data)
808 {
809 return image;
810 }
811 else
812 {
813 int w, h;
814
815 w = im->im->cache_entry.w;
816 h = im->im->cache_entry.h;
817 im2 = eng_image_new_from_data(data, w, h, image_data,
818 eng_image_alpha_get(data, image),
819 eng_image_colorspace_get(data, image));
820 if (!im2) return im;
821 evas_gl_common_image_free(im);
822 im = im2;
823 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
824 return im;
825 }
826 }
827 switch (im->cs.space)
828 {
829 case EVAS_COLORSPACE_ARGB8888:
830 if (image_data != im->im->image.data)
831 {
832 int w, h;
833
834 w = im->im->cache_entry.w;
835 h = im->im->cache_entry.h;
836 im2 = eng_image_new_from_data(data, w, h, image_data,
837 eng_image_alpha_get(data, image),
838 eng_image_colorspace_get(data, image));
839 if (!im2) return im;
840 evas_gl_common_image_free(im);
841 im = im2;
842 }
843 break;
844 case EVAS_COLORSPACE_YCBCR422P601_PL:
845 case EVAS_COLORSPACE_YCBCR422P709_PL:
846 if (image_data != im->cs.data)
847 {
848 if (im->cs.data)
849 {
850 if (!im->cs.no_free) free(im->cs.data);
851 }
852 im->cs.data = image_data;
853 }
854 break;
855 default:
856 abort();
857 break;
858 }
859 /* hmmm - but if we wrote... why bother? */
860 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
861 return im;
862}
863
864static void
865eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
866{
867 Evas_GL_Image *gim = image;
868 RGBA_Image *im;
869
870 if (!gim) return;
871 if (gim->native.data) return;
872 im = (RGBA_Image *)gim->im;
873 if (!im) return;
874 evas_cache_image_preload_data(&im->cache_entry, target);
875}
876
877static void
878eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
879{
880 Evas_GL_Image *gim = image;
881 RGBA_Image *im;
882
883 if (!gim) return;
884 if (gim->native.data) return;
885 im = (RGBA_Image *)gim->im;
886 if (!im) return;
887 evas_cache_image_preload_cancel(&im->cache_entry, target);
888}
889
890static void
891eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
892{
893 Render_Engine *re;
894
895 re = (Render_Engine *)data;
896 if (!image) return;
897 eng_window_use(re->win);
898 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
899 re->win->gl_context->dc = context;
900 evas_gl_common_image_draw(re->win->gl_context, image,
901 src_x, src_y, src_w, src_h,
902 dst_x, dst_y, dst_w, dst_h,
903 smooth);
904}
905
906static void
907eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
908{
909 if (image) evas_gl_common_image_scale_hint_set(image, hint);
910}
911
912static int
913eng_image_scale_hint_get(void *data __UNUSED__, void *image)
914{
915 Evas_GL_Image *gim = image;
916 if (!gim) return EVAS_IMAGE_SCALE_HINT_NONE;
917 return gim->scale_hint;
918}
919
920static void
921eng_image_map_draw(void *data __UNUSED__, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
922{
923 Evas_GL_Image *gim = image;
924 Render_Engine *re;
925
926 re = (Render_Engine *)data;
927 if (!image) return;
928 eng_window_use(re->win);
929 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
930 re->win->gl_context->dc = context;
931 if (npoints != 4)
932 {
933 // FIXME: nash - you didnt fix this
934 abort();
935 }
936 if ((p[0].x == p[3].x) &&
937 (p[1].x == p[2].x) &&
938 (p[0].y == p[1].y) &&
939 (p[3].y == p[2].y) &&
940 (p[0].x <= p[1].x) &&
941 (p[0].y <= p[2].y) &&
942 (p[0].u == 0) &&
943 (p[0].v == 0) &&
944 (p[1].u == (gim->w << FP)) &&
945 (p[1].v == 0) &&
946 (p[2].u == (gim->w << FP)) &&
947 (p[2].v == (gim->h << FP)) &&
948 (p[3].u == 0) &&
949 (p[3].v == (gim->h << FP)) &&
950 (p[0].col == 0xffffffff) &&
951 (p[1].col == 0xffffffff) &&
952 (p[2].col == 0xffffffff) &&
953 (p[3].col == 0xffffffff))
954 {
955 int dx, dy, dw, dh;
956
957 dx = p[0].x >> FP;
958 dy = p[0].y >> FP;
959 dw = (p[2].x >> FP) - dx;
960 dh = (p[2].y >> FP) - dy;
961 eng_image_draw(data, context, surface, image,
962 0, 0, gim->w, gim->h, dx, dy, dw, dh, smooth);
963 }
964 else
965 {
966 evas_gl_common_image_map_draw(re->win->gl_context, image, npoints, p,
967 smooth, level);
968 }
969}
970
971static void *
972eng_image_map_surface_new(void *data __UNUSED__, int w, int h, int alpha)
973{
974 Render_Engine *re;
975
976 re = (Render_Engine *)data;
977 return evas_gl_common_image_surface_new(re->win->gl_context, w, h, alpha);
978}
979
980static void
981eng_image_map_surface_free(void *data __UNUSED__, void *surface)
982{
983 evas_gl_common_image_free(surface);
984}
985
986static void
987eng_image_content_hint_set(void *data __UNUSED__, void *image, int hint)
988{
989 if (image) evas_gl_common_image_content_hint_set(image, hint);
990}
991
992static int
993eng_image_content_hint_get(void *data __UNUSED__, void *image)
994{
995 Evas_GL_Image *gim = image;
996 if (!gim) return EVAS_IMAGE_CONTENT_HINT_NONE;
997 return gim->content_hint;
998}
999
1000static void
1001eng_image_cache_flush(void *data __UNUSED__)
1002{
1003 Render_Engine *re;
1004 int tmp_size;
1005
1006 re = (Render_Engine *)data;
1007
1008 tmp_size = evas_common_image_get_cache();
1009 evas_common_image_set_cache(0);
1010 evas_common_rgba_image_scalecache_flush();
1011 evas_gl_common_image_cache_flush(re->win->gl_context);
1012 evas_common_image_set_cache(tmp_size);
1013}
1014
1015static void
1016eng_image_cache_set(void *data __UNUSED__, int bytes)
1017{
1018 Render_Engine *re;
1019
1020 re = (Render_Engine *)data;
1021 evas_common_image_set_cache(bytes);
1022 evas_common_rgba_image_scalecache_size_set(bytes);
1023 evas_gl_common_image_cache_flush(re->win->gl_context);
1024}
1025
1026static int
1027eng_image_cache_get(void *data __UNUSED__)
1028{
1029 Render_Engine *re;
1030
1031 re = (Render_Engine *)data;
1032 return evas_common_image_get_cache();
1033}
1034
1035
1036static void
1037eng_image_stride_get(void *data __UNUSED__, void *image, int *stride)
1038{
1039 Evas_GL_Image *im = image;
1040 *stride = im->w * 4;
1041 if ((im->tex) && (im->tex->pt->dyn.img))
1042 {
1043 *stride = im->tex->pt->dyn.w * 4;
1044 // FIXME: for other image formats (yuv etc.) different stride needed
1045 }
1046}
1047
1048static void
1049eng_font_draw(void *data, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
1050{
1051 Render_Engine *re;
1052
1053 re = (Render_Engine *)data;
1054 eng_window_use(re->win);
1055 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1056 re->win->gl_context->dc = context;
1057 {
1058 // FIXME: put im into context so we can free it
1059 static RGBA_Image *im = NULL;
1060
1061 if (!im)
1062 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
1063 im->cache_entry.w = re->win->width;
1064 im->cache_entry.h = re->win->height;
1065 evas_common_draw_context_font_ext_set(context,
1066 re->win->gl_context,
1067 evas_gl_font_texture_new,
1068 evas_gl_font_texture_free,
1069 evas_gl_font_texture_draw);
1070 evas_common_font_draw(im, context, (RGBA_Font *) font, x, y,
1071 intl_props);
1072 evas_common_draw_context_font_ext_set(context,
1073 NULL,
1074 NULL,
1075 NULL,
1076 NULL);
1077 }
1078}
1079
1080
1081static Eina_Bool
1082eng_canvas_alpha_get(void *data __UNUSED__, void *info __UNUSED__)
1083{
1084 // FIXME: support ARGB gl targets!!!
1085 return EINA_FALSE;
1086}
1087
1088
1089#if 1
1090static void
1091evgl_glBindFramebuffer(GLenum target, GLuint framebuffer)
1092{
1093 // Add logic to take care when framebuffer=0
1094 glBindFramebuffer(target, framebuffer);
1095}
1096
1097static void
1098evgl_glBindRenderbuffer(GLenum target, GLuint renderbuffer)
1099{
1100 // Add logic to take care when renderbuffer=0
1101 glBindRenderbuffer(target, renderbuffer);
1102}
1103
1104static void
1105evgl_glClearDepthf(GLclampf depth)
1106{
1107#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1108 glClearDepthf(depth);
1109#else
1110 glClearDepth(depth);
1111#endif
1112}
1113
1114static void
1115evgl_glDepthRangef(GLclampf zNear, GLclampf zFar)
1116{
1117#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1118 glDepthRangef(zNear, zFar);
1119#else
1120 glDepthRange(zNear, zFar);
1121#endif
1122}
1123
1124static void
1125evgl_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
1126{
1127#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1128 glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
1129#else
1130 if (range)
1131 {
1132 range[0] = -126; // floor(log2(FLT_MIN))
1133 range[1] = 127; // floor(log2(FLT_MAX))
1134 }
1135 if (precision)
1136 {
1137 precision[0] = 24; // floor(-log2((1.0/16777218.0)));
1138 }
1139 return;
1140 shadertype = precisiontype = 0;
1141#endif
1142}
1143
1144static void
1145evgl_glReleaseShaderCompiler(void)
1146{
1147#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1148 glReleaseShaderCompiler();
1149#else
1150#endif
1151}
1152
1153static void
1154evgl_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length)
1155{
1156#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1157 glShaderBinary(n, shaders, binaryformat, binary, length);
1158#else
1159// FIXME: need to dlsym/getprocaddress for this
1160 return;
1161 n = binaryformat = length = 0;
1162 shaders = binary = 0;
1163#endif
1164}
1165
1166#endif
1167
1168static void *
1169eng_gl_api_get(void *data)
1170{
1171 Render_Engine *re;
1172
1173 re = (Render_Engine *)data;
1174
1175 gl_funcs.version = EVAS_GL_API_VERSION;
1176#if 1
1177#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, )
1178 ORD(glActiveTexture);
1179 ORD(glAttachShader);
1180 ORD(glBindAttribLocation);
1181 ORD(glBindBuffer);
1182 ORD(glBindTexture);
1183 ORD(glBlendColor);
1184 ORD(glBlendEquation);
1185 ORD(glBlendEquationSeparate);
1186 ORD(glBlendFunc);
1187 ORD(glBlendFuncSeparate);
1188 ORD(glBufferData);
1189 ORD(glBufferSubData);
1190 ORD(glCheckFramebufferStatus);
1191 ORD(glClear);
1192 ORD(glClearColor);
1193// ORD(glClearDepthf);
1194 ORD(glClearStencil);
1195 ORD(glColorMask);
1196 ORD(glCompileShader);
1197 ORD(glCompressedTexImage2D);
1198 ORD(glCompressedTexSubImage2D);
1199 ORD(glCopyTexImage2D);
1200 ORD(glCopyTexSubImage2D);
1201 ORD(glCreateProgram);
1202 ORD(glCreateShader);
1203 ORD(glCullFace);
1204 ORD(glDeleteBuffers);
1205 ORD(glDeleteFramebuffers);
1206 ORD(glDeleteProgram);
1207 ORD(glDeleteRenderbuffers);
1208 ORD(glDeleteShader);
1209 ORD(glDeleteTextures);
1210 ORD(glDepthFunc);
1211 ORD(glDepthMask);
1212// ORD(glDepthRangef);
1213 ORD(glDetachShader);
1214 ORD(glDisable);
1215 ORD(glDisableVertexAttribArray);
1216 ORD(glDrawArrays);
1217 ORD(glDrawElements);
1218 ORD(glEnable);
1219 ORD(glEnableVertexAttribArray);
1220 ORD(glFinish);
1221 ORD(glFlush);
1222 ORD(glFramebufferRenderbuffer);
1223 ORD(glFramebufferTexture2D);
1224 ORD(glFrontFace);
1225 ORD(glGenBuffers);
1226 ORD(glGenerateMipmap);
1227 ORD(glGenFramebuffers);
1228 ORD(glGenRenderbuffers);
1229 ORD(glGenTextures);
1230 ORD(glGetActiveAttrib);
1231 ORD(glGetActiveUniform);
1232 ORD(glGetAttachedShaders);
1233 ORD(glGetAttribLocation);
1234 ORD(glGetBooleanv);
1235 ORD(glGetBufferParameteriv);
1236 ORD(glGetError);
1237 ORD(glGetFloatv);
1238 ORD(glGetFramebufferAttachmentParameteriv);
1239 ORD(glGetIntegerv);
1240 ORD(glGetProgramiv);
1241 ORD(glGetProgramInfoLog);
1242 ORD(glGetRenderbufferParameteriv);
1243 ORD(glGetShaderiv);
1244 ORD(glGetShaderInfoLog);
1245// ORD(glGetShaderPrecisionFormat);
1246 ORD(glGetShaderSource);
1247 ORD(glGetString);
1248 ORD(glGetTexParameterfv);
1249 ORD(glGetTexParameteriv);
1250 ORD(glGetUniformfv);
1251 ORD(glGetUniformiv);
1252 ORD(glGetUniformLocation);
1253 ORD(glGetVertexAttribfv);
1254 ORD(glGetVertexAttribiv);
1255 ORD(glGetVertexAttribPointerv);
1256 ORD(glHint);
1257 ORD(glIsBuffer);
1258 ORD(glIsEnabled);
1259 ORD(glIsFramebuffer);
1260 ORD(glIsProgram);
1261 ORD(glIsRenderbuffer);
1262 ORD(glIsShader);
1263 ORD(glIsTexture);
1264 ORD(glLineWidth);
1265 ORD(glLinkProgram);
1266 ORD(glPixelStorei);
1267 ORD(glPolygonOffset);
1268 ORD(glReadPixels);
1269// ORD(glReleaseShaderCompiler);
1270 ORD(glRenderbufferStorage);
1271 ORD(glSampleCoverage);
1272 ORD(glScissor);
1273// ORD(glShaderBinary);
1274 ORD(glShaderSource);
1275 ORD(glStencilFunc);
1276 ORD(glStencilFuncSeparate);
1277 ORD(glStencilMask);
1278 ORD(glStencilMaskSeparate);
1279 ORD(glStencilOp);
1280 ORD(glStencilOpSeparate);
1281 ORD(glTexImage2D);
1282 ORD(glTexParameterf);
1283 ORD(glTexParameterfv);
1284 ORD(glTexParameteri);
1285 ORD(glTexParameteriv);
1286 ORD(glTexSubImage2D);
1287 ORD(glUniform1f);
1288 ORD(glUniform1fv);
1289 ORD(glUniform1i);
1290 ORD(glUniform1iv);
1291 ORD(glUniform2f);
1292 ORD(glUniform2fv);
1293 ORD(glUniform2i);
1294 ORD(glUniform2iv);
1295 ORD(glUniform3f);
1296 ORD(glUniform3fv);
1297 ORD(glUniform3i);
1298 ORD(glUniform3iv);
1299 ORD(glUniform4f);
1300 ORD(glUniform4fv);
1301 ORD(glUniform4i);
1302 ORD(glUniform4iv);
1303 ORD(glUniformMatrix2fv);
1304 ORD(glUniformMatrix3fv);
1305 ORD(glUniformMatrix4fv);
1306 ORD(glUseProgram);
1307 ORD(glValidateProgram);
1308 ORD(glVertexAttrib1f);
1309 ORD(glVertexAttrib1fv);
1310 ORD(glVertexAttrib2f);
1311 ORD(glVertexAttrib2fv);
1312 ORD(glVertexAttrib3f);
1313 ORD(glVertexAttrib3fv);
1314 ORD(glVertexAttrib4f);
1315 ORD(glVertexAttrib4fv);
1316 ORD(glVertexAttribPointer);
1317 ORD(glViewport);
1318#undef ORD
1319
1320// Override functions wrapped by Evas_GL
1321#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
1322 ORD(glBindFramebuffer);
1323 ORD(glBindRenderbuffer);
1324
1325// GLES2.0 API compat on top of desktop gl
1326 ORD(glClearDepthf);
1327 ORD(glDepthRangef);
1328 ORD(glGetShaderPrecisionFormat);
1329 ORD(glReleaseShaderCompiler);
1330 ORD(glShaderBinary);
1331#undef ORD
1332
1333#endif
1334
1335 return &gl_funcs;
1336}
1337
1338static int
1339eng_image_load_error_get(void *data __UNUSED__, void *image)
1340{
1341 Evas_GL_Image *im;
1342
1343 if (!image) return EVAS_LOAD_ERROR_NONE;
1344 im = image;
1345 return im->im->cache_entry.load_error;
1346}
1347
1348static int
1349module_open(Evas_Module *em)
1350{
1351 if (!em) return 0;
1352 /* get whatever engine module we inherit from */
1353 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
1354 _evas_engine_gl_cocoa_log_dom = eina_log_domain_register("EvasGLCocoa", EVAS_DEFAULT_LOG_COLOR);
1355 if(_evas_engine_gl_cocoa_log_dom < 0)
1356 {
1357 EINA_LOG_ERR("Impossible to create a log domain for GL (Cocoa) engine.");
1358 return 0;
1359 }
1360 /* store it for later use */
1361 func = pfunc;
1362 /* now to override methods */
1363 #define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
1364 ORD(info);
1365 ORD(info_free);
1366 ORD(setup);
1367 ORD(canvas_alpha_get);
1368 ORD(output_free);
1369 ORD(output_resize);
1370 ORD(output_tile_size_set);
1371 ORD(output_redraws_rect_add);
1372 ORD(output_redraws_rect_del);
1373 ORD(output_redraws_clear);
1374 ORD(output_redraws_next_update_get);
1375 ORD(output_redraws_next_update_push);
1376 ORD(context_cutout_add);
1377 ORD(context_cutout_clear);
1378 ORD(output_flush);
1379 ORD(output_idle_flush);
1380 // ORD(output_dump);
1381 ORD(rectangle_draw);
1382 ORD(line_draw);
1383 ORD(polygon_point_add);
1384 ORD(polygon_points_clear);
1385 ORD(polygon_draw);
1386
1387 ORD(image_load);
1388 ORD(image_new_from_data);
1389 ORD(image_new_from_copied_data);
1390 ORD(image_free);
1391 ORD(image_size_get);
1392 ORD(image_size_set);
1393 ORD(image_dirty_region);
1394 ORD(image_data_get);
1395 ORD(image_data_put);
1396 ORD(image_data_preload_request);
1397 ORD(image_data_preload_cancel);
1398 ORD(image_alpha_set);
1399 ORD(image_alpha_get);
1400 ORD(image_border_set);
1401 ORD(image_border_get);
1402 ORD(image_draw);
1403 ORD(image_comment_get);
1404 ORD(image_format_get);
1405 ORD(image_colorspace_set);
1406 ORD(image_colorspace_get);
1407 ORD(image_mask_create);
1408 // ORD(image_native_set);
1409 // ORD(image_native_get);
1410 // ORD(image_draw_filtered);
1411 // ORD(image_filtered_get);
1412 // ORD(image_filtered_save);
1413 // ORD(image_filtered_free);
1414
1415 ORD(font_draw);
1416
1417 ORD(image_scale_hint_set);
1418 ORD(image_scale_hint_get);
1419 ORD(image_stride_get);
1420
1421 ORD(image_map_draw);
1422 ORD(image_map_surface_new);
1423 ORD(image_map_surface_free);
1424
1425 ORD(image_content_hint_set);
1426 ORD(image_content_hint_get);
1427
1428 ORD(image_cache_flush);
1429 ORD(image_cache_set);
1430 ORD(image_cache_get);
1431
1432 ORD(gl_api_get);
1433
1434 ORD(image_load_error_get);
1435
1436 /* now advertise out own api */
1437 em->functions = (void *)(&func);
1438 return 1;
1439}
1440
1441static void
1442module_close(Evas_Module *em)
1443{
1444 eina_log_domain_unregister(_evas_engine_gl_cocoa_log_dom);
1445}
1446
1447static Evas_Module_Api evas_modapi =
1448{
1449 EVAS_MODULE_API_VERSION,
1450 "gl_cocoa",
1451 "none",
1452 {
1453 module_open,
1454 module_close
1455 }
1456};
1457
1458EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_cocoa);
1459
1460#ifndef EVAS_STATIC_BUILD_GL_COCOA
1461EVAS_EINA_MODULE_DEFINE(engine, gl_cocoa);
1462#endif
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/evas_engine.h b/libraries/evas/src/modules/engines/gl_cocoa/evas_engine.h
deleted file mode 100644
index a066d3e..0000000
--- a/libraries/evas/src/modules/engines/gl_cocoa/evas_engine.h
+++ /dev/null
@@ -1,69 +0,0 @@
1#ifndef __EVAS_ENGINE_H__
2#define __EVAS_ENGINE_H__
3
4#ifdef HAVE_CONFIG_H
5# include <config.h>
6#endif
7
8#include <OpenGL/gl.h>
9
10#include "evas_gl_common.h"
11#include "Evas_Engine_GL_Cocoa.h"
12
13extern int _evas_engine_gl_cocoa_log_dom;
14
15#ifdef ERR
16# undef ERR
17#endif
18#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_gl_cocoa_log_dom, __VA_ARGS__)
19
20#ifdef DBG
21# undef DBG
22#endif
23#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_gl_cocoa_log_dom, __VA_ARGS__)
24
25#ifdef INF
26# undef INF
27#endif
28#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_gl_cocoa_log_dom, __VA_ARGS__)
29
30#ifdef WRN
31# undef WRN
32#endif
33#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_gl_cocoa_log_dom, __VA_ARGS__)
34
35#ifdef CRIT
36# undef CRIT
37#endif
38#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_gl_cocoa_log_dom, __VA_ARGS__)
39
40typedef struct _Evas_GL_Cocoa_Window Evas_GL_Cocoa_Window;
41
42struct _Evas_GL_Cocoa_Window
43{
44 void* window;
45 void* view;
46 int width;
47 int height;
48 int depth;
49 Evas_Engine_GL_Context *gl_context;
50 struct {
51 int x1;
52 int y1;
53 int x2;
54 int y2;
55 int redraw : 1;
56 int drew : 1;
57 } draw;
58};
59
60Evas_GL_Cocoa_Window *eng_window_new(void *window,
61 int width,
62 int height);
63void eng_window_free(Evas_GL_Cocoa_Window *gw);
64void eng_window_use(Evas_GL_Cocoa_Window *gw);
65void eng_window_swap_buffers(Evas_GL_Cocoa_Window *gw);
66void eng_window_vsync_set(int on);
67void ng_window_resize(Evas_GL_Cocoa_Window *gw, int width, int height);
68
69#endif /* __EVAS_ENGINE_H__ */
diff --git a/libraries/evas/src/modules/engines/gl_cocoa/evas_gl_cocoa_main.m b/libraries/evas/src/modules/engines/gl_cocoa/evas_gl_cocoa_main.m
deleted file mode 100644
index aa6b895..0000000
--- a/libraries/evas/src/modules/engines/gl_cocoa/evas_gl_cocoa_main.m
+++ /dev/null
@@ -1,134 +0,0 @@
1
2#include <Cocoa/Cocoa.h>
3
4#include "evas_engine.h"
5
6static Evas_GL_Cocoa_Window *_evas_gl_cocoa_window = NULL;
7
8@interface EvasGLView : NSOpenGLView
9{
10}
11
12+ (NSOpenGLPixelFormat*) basicPixelFormat;
13- (id) initWithFrame: (NSRect) frameRect;
14
15@end
16
17
18@implementation EvasGLView
19
20- (id) init
21{
22 self = [super init];
23 return self;
24}
25
26+ (NSOpenGLPixelFormat*) basicPixelFormat
27{
28 NSOpenGLPixelFormatAttribute attributes [] = {
29 NSOpenGLPFAWindow,
30 NSOpenGLPFAAccelerated,
31 NSOpenGLPFADoubleBuffer,
32 /*NSOpenGLPFAColorSize, 24,
33 NSOpenGLPFAAlphaSize, 8,
34 NSOpenGLPFADepthSize, 24,*/
35 0
36 };
37 return [[[NSOpenGLPixelFormat alloc] initWithAttributes:attributes] autorelease];
38}
39
40// ---------------------------------
41
42-(id) initWithFrame: (NSRect) frameRect
43{
44 NSOpenGLPixelFormat * pf = [EvasGLView basicPixelFormat];
45 self = [super initWithFrame: frameRect pixelFormat: pf];
46 return self;
47}
48
49@end
50
51
52Evas_GL_Cocoa_Window *
53eng_window_new(void *window,
54 int w,
55 int h)
56{
57 Evas_GL_Cocoa_Window *gw;
58 int context_attrs[3];
59 int config_attrs[20];
60 int major_version, minor_version;
61 int num_config;
62
63 gw = calloc(1, sizeof(Evas_GL_Cocoa_Window));
64 if (!gw) return NULL;
65
66 _evas_gl_cocoa_window = gw;
67 gw->window = window;
68 gw->view = [[EvasGLView alloc] initWithFrame:NSMakeRect(0,0,w,h)];
69 NSOpenGLContext *ctx = [(NSOpenGLView*)gw->view openGLContext];
70 [ctx makeCurrentContext];
71 gw->gl_context = evas_gl_common_context_new();
72
73 if (!gw->gl_context)
74 {
75 free(gw);
76 return NULL;
77 }
78 evas_gl_common_context_use(gw->gl_context);
79 evas_gl_common_context_resize(gw->gl_context, w, h, 0);
80
81 return gw;
82}
83
84void
85eng_window_free(Evas_GL_Cocoa_Window *gw)
86{
87 if (gw == _evas_gl_cocoa_window) _evas_gl_cocoa_window = NULL;
88 evas_gl_common_context_free(gw->gl_context);
89 free(gw);
90}
91
92void
93eng_window_use(Evas_GL_Cocoa_Window *gw)
94{
95 if (_evas_gl_cocoa_window != gw)
96 {
97 [[(NSOpenGLView*)gw->view openGLContext] makeCurrentContext];
98 if (_evas_gl_cocoa_window)
99 evas_gl_common_context_flush(_evas_gl_cocoa_window->gl_context);
100 _evas_gl_cocoa_window = gw;
101
102 }
103 evas_gl_common_context_use(gw->gl_context);
104}
105
106void
107eng_window_swap_buffers(Evas_GL_Cocoa_Window *gw)
108{
109 [[(NSOpenGLView*)gw->view openGLContext] flushBuffer];
110}
111
112void
113eng_window_vsync_set(int on)
114{
115
116}
117
118
119void
120eng_window_resize(Evas_GL_Cocoa_Window *gw, int width, int height)
121{
122 NSRect view_frame;
123
124 INF("Resize %d %d\n", width, height);
125
126 view_frame = [(EvasGLView*)gw->view frame];
127 printf("view_frame : %3.3f %3.3f\n", view_frame.size.height, view_frame.size.width);
128 view_frame.size.height = height;
129 view_frame.size.width = width;
130 printf("view_frame : %3.3f %3.3f\n", view_frame.size.height, view_frame.size.width);
131 [(EvasGLView*)gw->view setFrame:view_frame];
132 [[(NSOpenGLView*)gw->view openGLContext] flushBuffer];
133}
134
diff --git a/libraries/evas/src/modules/engines/gl_common/Makefile.am b/libraries/evas/src/modules/engines/gl_common/Makefile.am
deleted file mode 100644
index 15acc02..0000000
--- a/libraries/evas/src/modules/engines/gl_common/Makefile.am
+++ /dev/null
@@ -1,164 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8@FREETYPE_CFLAGS@ \
9@PIXMAN_CFLAGS@ \
10@GL_EET_CFLAGS@ \
11@EINA_CFLAGS@
12
13if BUILD_ENGINE_GL_COMMON
14
15noinst_LTLIBRARIES = libevas_engine_gl_common.la
16libevas_engine_gl_common_la_SOURCES = \
17evas_gl_private.h \
18evas_gl_common.h \
19evas_gl_context.c \
20evas_gl_shader.c \
21evas_gl_rectangle.c \
22evas_gl_texture.c \
23evas_gl_image.c \
24evas_gl_font.c \
25evas_gl_polygon.c \
26evas_gl_line.c \
27evas_gl_filter.c \
28shader/rect_frag.h \
29shader/rect_frag_bin_s3c6410.h \
30shader/rect_vert.h \
31shader/rect_vert_bin_s3c6410.h \
32shader/font_frag.h \
33shader/font_frag_bin_s3c6410.h \
34shader/font_vert.h \
35shader/font_vert_bin_s3c6410.h \
36shader/img_frag.h \
37shader/img_frag_bin_s3c6410.h \
38shader/img_vert.h \
39shader/img_vert_bin_s3c6410.h \
40shader/img_nomul_frag.h \
41shader/img_nomul_frag_bin_s3c6410.h \
42shader/img_nomul_vert.h \
43shader/img_nomul_vert_bin_s3c6410.h \
44shader/img_bgra_frag.h \
45shader/img_bgra_frag_bin_s3c6410.h \
46shader/img_bgra_vert.h \
47shader/img_bgra_vert_bin_s3c6410.h \
48shader/img_bgra_nomul_frag.h \
49shader/img_bgra_nomul_frag_bin_s3c6410.h \
50shader/img_bgra_nomul_vert.h \
51shader/img_bgra_nomul_vert_bin_s3c6410.h \
52shader/img_mask_frag.h \
53shader/img_mask_vert.h \
54shader/nv12_nomul_vert.h \
55shader/nv12_vert.h \
56shader/nv12_nomul_frag.h \
57shader/nv12_frag.h \
58shader/yuv_frag.h \
59shader/yuv_frag_bin_s3c6410.h \
60shader/yuv_vert.h \
61shader/yuv_vert_bin_s3c6410.h \
62shader/yuv_nomul_frag.h \
63shader/yuv_nomul_frag_bin_s3c6410.h \
64shader/yuv_nomul_vert.h \
65shader/yuv_nomul_vert_bin_s3c6410.h \
66shader/tex_frag.h \
67shader/tex_frag_bin_s3c6410.h \
68shader/tex_vert.h \
69shader/tex_vert_bin_s3c6410.h \
70shader/tex_nomul_frag.h \
71shader/tex_nomul_frag_bin_s3c6410.h \
72shader/tex_nomul_vert.h \
73shader/tex_nomul_vert_bin_s3c6410.h \
74shader/filter_invert.h \
75shader/filter_invert_nomul.h \
76shader/filter_invert_bgra.h \
77shader/filter_invert_bgra_nomul.h \
78shader/filter_sepia.h \
79shader/filter_sepia_nomul.h \
80shader/filter_sepia_bgra.h \
81shader/filter_sepia_bgra_nomul.h \
82shader/filter_greyscale.h \
83shader/filter_greyscale_nomul.h \
84shader/filter_greyscale_bgra.h \
85shader/filter_greyscale_bgra_nomul.h \
86shader/filter_blur.h \
87shader/filter_blur_nomul.h \
88shader/filter_blur_bgra.h \
89shader/filter_blur_bgra_nomul.h \
90shader/yuy2_frag.h \
91shader/yuy2_vert.h \
92shader/yuy2_nomul_frag.h \
93shader/yuy2_nomul_vert.h
94
95libevas_engine_gl_common_la_LIBADD = @EINA_LIBS@ @GL_EET_LIBS@ @evas_engine_gl_common_libs@ @dlopen_libs@
96endif
97
98EXTRA_DIST = \
99shader/compile-s3c6410.sh \
100shader/compile-sgx.sh \
101shader/make-c-bin.sh \
102shader/make-c-str.sh \
103shader/rect_frag.shd \
104shader/rect_frag_s3c6410.asm \
105shader/rect_vert.shd \
106shader/font_frag.shd \
107shader/font_frag_s3c6410.asm \
108shader/font_vert.shd \
109shader/img_frag.shd \
110shader/img_frag_s3c6410.asm \
111shader/img_vert.shd \
112shader/img_nomul_frag.shd \
113shader/img_nomul_vert.shd \
114shader/img_bgra_vert.shd \
115shader/img_bgra_frag.shd \
116shader/img_bgra_vert.shd \
117shader/img_bgra_nomul_frag.shd \
118shader/img_bgra_nomul_vert.shd \
119shader/img_mask_frag.h \
120shader/img_mask_vert.h \
121shader/yuv_frag.shd \
122shader/yuv_frag_s3c6410.asm \
123shader/yuv_vert.shd \
124shader/yuv_nomul_frag.shd \
125shader/yuv_nomul_vert.shd \
126shader/tex_frag.shd \
127shader/tex_frag_s3c6410.asm \
128shader/tex_vert.shd \
129shader/tex_nomul_frag.shd \
130shader/tex_nomul_vert.shd \
131shader/filter_invert.shd \
132shader/filter_invert_nomul.shd \
133shader/filter_invert_bgra.shd \
134shader/filter_invert_bgra_nomul.shd \
135shader/filter_greyscale.shd \
136shader/filter_greyscale_nomul.shd \
137shader/filter_greyscale_bgra.shd \
138shader/filter_greyscale_bgra_nomul.shd \
139shader/filter_sepia.shd \
140shader/filter_sepia_nomul.shd \
141shader/filter_sepia_bgra.shd \
142shader/filter_sepia_bgra_nomul.shd \
143shader/filter_blur.shd \
144shader/filter_blur_nomul.shd \
145shader/filter_blur_bgra.shd \
146shader/filter_blur_bgra_nomul.shd \
147shader/nv12_frag.h \
148shader/nv12_frag.shd \
149shader/nv12_nomul_frag.h \
150shader/nv12_nomul_frag.shd \
151shader/nv12_nomul_vert.h \
152shader/nv12_nomul_vert.shd \
153shader/nv12_vert.h \
154shader/nv12_vert.shd \
155shader/yuy2_frag.h \
156shader/yuy2_frag.shd \
157shader/yuy2_nomul_frag.h \
158shader/yuy2_nomul_frag.shd \
159shader/yuy2_nomul_vert.h \
160shader/yuy2_nomul_vert.shd \
161shader/yuy2_vert.h \
162shader/yuy2_vert.shd
163
164
diff --git a/libraries/evas/src/modules/engines/gl_common/Makefile.in b/libraries/evas/src/modules/engines/gl_common/Makefile.in
deleted file mode 100644
index 5a9a1ef..0000000
--- a/libraries/evas/src/modules/engines/gl_common/Makefile.in
+++ /dev/null
@@ -1,875 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = src/modules/engines/gl_common
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
41 $(top_srcdir)/m4/efl_coverage.m4 \
42 $(top_srcdir)/m4/efl_doxygen.m4 \
43 $(top_srcdir)/m4/efl_fnmatch.m4 \
44 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
45 $(top_srcdir)/m4/evas_check_engine.m4 \
46 $(top_srcdir)/m4/evas_check_loader.m4 \
47 $(top_srcdir)/m4/evas_converter.m4 \
48 $(top_srcdir)/m4/evas_dither.m4 \
49 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
50 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
51 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
52 $(top_srcdir)/configure.ac
53am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
54 $(ACLOCAL_M4)
55mkinstalldirs = $(install_sh) -d
56CONFIG_HEADER = $(top_builddir)/config.h
57CONFIG_CLEAN_FILES =
58CONFIG_CLEAN_VPATH_FILES =
59LTLIBRARIES = $(noinst_LTLIBRARIES)
60libevas_engine_gl_common_la_DEPENDENCIES =
61am__libevas_engine_gl_common_la_SOURCES_DIST = evas_gl_private.h \
62 evas_gl_common.h evas_gl_context.c evas_gl_shader.c \
63 evas_gl_rectangle.c evas_gl_texture.c evas_gl_image.c \
64 evas_gl_font.c evas_gl_polygon.c evas_gl_line.c \
65 evas_gl_filter.c shader/rect_frag.h \
66 shader/rect_frag_bin_s3c6410.h shader/rect_vert.h \
67 shader/rect_vert_bin_s3c6410.h shader/font_frag.h \
68 shader/font_frag_bin_s3c6410.h shader/font_vert.h \
69 shader/font_vert_bin_s3c6410.h shader/img_frag.h \
70 shader/img_frag_bin_s3c6410.h shader/img_vert.h \
71 shader/img_vert_bin_s3c6410.h shader/img_nomul_frag.h \
72 shader/img_nomul_frag_bin_s3c6410.h shader/img_nomul_vert.h \
73 shader/img_nomul_vert_bin_s3c6410.h shader/img_bgra_frag.h \
74 shader/img_bgra_frag_bin_s3c6410.h shader/img_bgra_vert.h \
75 shader/img_bgra_vert_bin_s3c6410.h \
76 shader/img_bgra_nomul_frag.h \
77 shader/img_bgra_nomul_frag_bin_s3c6410.h \
78 shader/img_bgra_nomul_vert.h \
79 shader/img_bgra_nomul_vert_bin_s3c6410.h \
80 shader/img_mask_frag.h shader/img_mask_vert.h \
81 shader/nv12_nomul_vert.h shader/nv12_vert.h \
82 shader/nv12_nomul_frag.h shader/nv12_frag.h shader/yuv_frag.h \
83 shader/yuv_frag_bin_s3c6410.h shader/yuv_vert.h \
84 shader/yuv_vert_bin_s3c6410.h shader/yuv_nomul_frag.h \
85 shader/yuv_nomul_frag_bin_s3c6410.h shader/yuv_nomul_vert.h \
86 shader/yuv_nomul_vert_bin_s3c6410.h shader/tex_frag.h \
87 shader/tex_frag_bin_s3c6410.h shader/tex_vert.h \
88 shader/tex_vert_bin_s3c6410.h shader/tex_nomul_frag.h \
89 shader/tex_nomul_frag_bin_s3c6410.h shader/tex_nomul_vert.h \
90 shader/tex_nomul_vert_bin_s3c6410.h shader/filter_invert.h \
91 shader/filter_invert_nomul.h shader/filter_invert_bgra.h \
92 shader/filter_invert_bgra_nomul.h shader/filter_sepia.h \
93 shader/filter_sepia_nomul.h shader/filter_sepia_bgra.h \
94 shader/filter_sepia_bgra_nomul.h shader/filter_greyscale.h \
95 shader/filter_greyscale_nomul.h shader/filter_greyscale_bgra.h \
96 shader/filter_greyscale_bgra_nomul.h shader/filter_blur.h \
97 shader/filter_blur_nomul.h shader/filter_blur_bgra.h \
98 shader/filter_blur_bgra_nomul.h shader/yuy2_frag.h \
99 shader/yuy2_vert.h shader/yuy2_nomul_frag.h \
100 shader/yuy2_nomul_vert.h
101@BUILD_ENGINE_GL_COMMON_TRUE@am_libevas_engine_gl_common_la_OBJECTS = \
102@BUILD_ENGINE_GL_COMMON_TRUE@ evas_gl_context.lo \
103@BUILD_ENGINE_GL_COMMON_TRUE@ evas_gl_shader.lo \
104@BUILD_ENGINE_GL_COMMON_TRUE@ evas_gl_rectangle.lo \
105@BUILD_ENGINE_GL_COMMON_TRUE@ evas_gl_texture.lo \
106@BUILD_ENGINE_GL_COMMON_TRUE@ evas_gl_image.lo evas_gl_font.lo \
107@BUILD_ENGINE_GL_COMMON_TRUE@ evas_gl_polygon.lo \
108@BUILD_ENGINE_GL_COMMON_TRUE@ evas_gl_line.lo evas_gl_filter.lo
109libevas_engine_gl_common_la_OBJECTS = \
110 $(am_libevas_engine_gl_common_la_OBJECTS)
111AM_V_lt = $(am__v_lt_$(V))
112am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
113am__v_lt_0 = --silent
114@BUILD_ENGINE_GL_COMMON_TRUE@am_libevas_engine_gl_common_la_rpath =
115DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
116depcomp = $(SHELL) $(top_srcdir)/depcomp
117am__depfiles_maybe = depfiles
118am__mv = mv -f
119COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
120 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
121LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
122 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
123 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
124 $(AM_CFLAGS) $(CFLAGS)
125AM_V_CC = $(am__v_CC_$(V))
126am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
127am__v_CC_0 = @echo " CC " $@;
128AM_V_at = $(am__v_at_$(V))
129am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
130am__v_at_0 = @
131CCLD = $(CC)
132LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
133 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
134 $(AM_LDFLAGS) $(LDFLAGS) -o $@
135AM_V_CCLD = $(am__v_CCLD_$(V))
136am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
137am__v_CCLD_0 = @echo " CCLD " $@;
138AM_V_GEN = $(am__v_GEN_$(V))
139am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
140am__v_GEN_0 = @echo " GEN " $@;
141SOURCES = $(libevas_engine_gl_common_la_SOURCES)
142DIST_SOURCES = $(am__libevas_engine_gl_common_la_SOURCES_DIST)
143ETAGS = etags
144CTAGS = ctags
145DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
146ACLOCAL = @ACLOCAL@
147ALLOCA = @ALLOCA@
148AMTAR = @AMTAR@
149AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
150AR = @AR@
151AS = @AS@
152AUTOCONF = @AUTOCONF@
153AUTOHEADER = @AUTOHEADER@
154AUTOMAKE = @AUTOMAKE@
155AWK = @AWK@
156CC = @CC@
157CCDEPMODE = @CCDEPMODE@
158CFLAGS = @CFLAGS@
159CHECK_CFLAGS = @CHECK_CFLAGS@
160CHECK_LIBS = @CHECK_LIBS@
161CPP = @CPP@
162CPPFLAGS = @CPPFLAGS@
163CXX = @CXX@
164CXXCPP = @CXXCPP@
165CXXDEPMODE = @CXXDEPMODE@
166CXXFLAGS = @CXXFLAGS@
167CYGPATH_W = @CYGPATH_W@
168DEFS = @DEFS@
169DEPDIR = @DEPDIR@
170DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
171DIRECTFB_LIBS = @DIRECTFB_LIBS@
172DLLTOOL = @DLLTOOL@
173DSYMUTIL = @DSYMUTIL@
174DUMPBIN = @DUMPBIN@
175ECHO_C = @ECHO_C@
176ECHO_N = @ECHO_N@
177ECHO_T = @ECHO_T@
178ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
179ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
180EDB_CFLAGS = @EDB_CFLAGS@
181EDB_LIBS = @EDB_LIBS@
182EDJE_CFLAGS = @EDJE_CFLAGS@
183EDJE_LIBS = @EDJE_LIBS@
184EET_CFLAGS = @EET_CFLAGS@
185EET_LIBS = @EET_LIBS@
186EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
187EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
188EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
189EGREP = @EGREP@
190EINA_CFLAGS = @EINA_CFLAGS@
191EINA_LIBS = @EINA_LIBS@
192EVAS_CFLAGS = @EVAS_CFLAGS@
193EVAS_LIBS = @EVAS_LIBS@
194EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
195EVIL_CFLAGS = @EVIL_CFLAGS@
196EVIL_LIBS = @EVIL_LIBS@
197EXEEXT = @EXEEXT@
198EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
199EXOTIC_LIBS = @EXOTIC_LIBS@
200FGREP = @FGREP@
201FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
202FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
203FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
204FREETYPE_LIBS = @FREETYPE_LIBS@
205FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
206FRIBIDI_LIBS = @FRIBIDI_LIBS@
207GL_EET_CFLAGS = @GL_EET_CFLAGS@
208GL_EET_LIBS = @GL_EET_LIBS@
209GREP = @GREP@
210HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
211HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
212INSTALL = @INSTALL@
213INSTALL_DATA = @INSTALL_DATA@
214INSTALL_PROGRAM = @INSTALL_PROGRAM@
215INSTALL_SCRIPT = @INSTALL_SCRIPT@
216INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
217LD = @LD@
218LDFLAGS = @LDFLAGS@
219LIBOBJS = @LIBOBJS@
220LIBS = @LIBS@
221LIBTOOL = @LIBTOOL@
222LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
223LINEBREAK_LIBS = @LINEBREAK_LIBS@
224LIPO = @LIPO@
225LN_S = @LN_S@
226LTLIBOBJS = @LTLIBOBJS@
227MAKEINFO = @MAKEINFO@
228MKDIR_P = @MKDIR_P@
229MODULE_ARCH = @MODULE_ARCH@
230NM = @NM@
231NMEDIT = @NMEDIT@
232OBJC = @OBJC@
233OBJCDEPMODE = @OBJCDEPMODE@
234OBJCFLAGS = @OBJCFLAGS@
235OBJDUMP = @OBJDUMP@
236OBJEXT = @OBJEXT@
237OTOOL = @OTOOL@
238OTOOL64 = @OTOOL64@
239PACKAGE = @PACKAGE@
240PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
241PACKAGE_NAME = @PACKAGE_NAME@
242PACKAGE_STRING = @PACKAGE_STRING@
243PACKAGE_TARNAME = @PACKAGE_TARNAME@
244PACKAGE_URL = @PACKAGE_URL@
245PACKAGE_VERSION = @PACKAGE_VERSION@
246PATH_SEPARATOR = @PATH_SEPARATOR@
247PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
248PIXMAN_LIBS = @PIXMAN_LIBS@
249PKG_CONFIG = @PKG_CONFIG@
250PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
251PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
252PNG_CFLAGS = @PNG_CFLAGS@
253PNG_LIBS = @PNG_LIBS@
254RANLIB = @RANLIB@
255SDL_CFLAGS = @SDL_CFLAGS@
256SDL_LIBS = @SDL_LIBS@
257SED = @SED@
258SET_MAKE = @SET_MAKE@
259SHELL = @SHELL@
260SHM_OPEN_LINK = @SHM_OPEN_LINK@
261STRIP = @STRIP@
262SVG_CFLAGS = @SVG_CFLAGS@
263SVG_LIBS = @SVG_LIBS@
264VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
265VALGRIND_LIBS = @VALGRIND_LIBS@
266VERSION = @VERSION@
267VMAJ = @VMAJ@
268WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
269WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
270XCB_CFLAGS = @XCB_CFLAGS@
271XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
272XCB_GL_LIBS = @XCB_GL_LIBS@
273XCB_LIBS = @XCB_LIBS@
274XEXT_CFLAGS = @XEXT_CFLAGS@
275XEXT_LIBS = @XEXT_LIBS@
276XMKMF = @XMKMF@
277X_CFLAGS = @X_CFLAGS@
278X_EXTRA_LIBS = @X_EXTRA_LIBS@
279X_LIBS = @X_LIBS@
280X_PRE_LIBS = @X_PRE_LIBS@
281abs_builddir = @abs_builddir@
282abs_srcdir = @abs_srcdir@
283abs_top_builddir = @abs_top_builddir@
284abs_top_srcdir = @abs_top_srcdir@
285ac_ct_CC = @ac_ct_CC@
286ac_ct_CXX = @ac_ct_CXX@
287ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
288ac_ct_OBJC = @ac_ct_OBJC@
289altivec_cflags = @altivec_cflags@
290am__include = @am__include@
291am__leading_dot = @am__leading_dot@
292am__quote = @am__quote@
293am__tar = @am__tar@
294am__untar = @am__untar@
295bindir = @bindir@
296build = @build@
297build_alias = @build_alias@
298build_cpu = @build_cpu@
299build_os = @build_os@
300build_vendor = @build_vendor@
301builddir = @builddir@
302datadir = @datadir@
303datarootdir = @datarootdir@
304dlopen_libs = @dlopen_libs@
305docdir = @docdir@
306dvidir = @dvidir@
307edje_cc = @edje_cc@
308efl_doxygen = @efl_doxygen@
309efl_have_doxygen = @efl_have_doxygen@
310evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
311evas_engine_buffer_libs = @evas_engine_buffer_libs@
312evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
313evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
314evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
315evas_engine_directfb_libs = @evas_engine_directfb_libs@
316evas_engine_fb_cflags = @evas_engine_fb_cflags@
317evas_engine_fb_libs = @evas_engine_fb_libs@
318evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
319evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
320evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
321evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
322evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
323evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
324evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
325evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
326evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
327evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
328evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
329evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
330evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
331evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
332evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
333evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
334evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
335evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
336evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
337evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
338evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
339evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
340evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
341evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
342evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
343evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
344evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
345evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
346evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
347evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
348evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
349evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
350evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
351evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
352evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
353evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
354evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
355evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
356evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
357evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
358evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
359evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
360evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
361evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
362evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
363evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
364evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
365evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
366evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
367evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
368evas_image_loader_png_libs = @evas_image_loader_png_libs@
369evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
370evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
371evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
372evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
373evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
374evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
375evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
376evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
377evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
378evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
379evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
380evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
381exec_prefix = @exec_prefix@
382have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
383have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
384have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
385have_evas_engine_software_x11 = @have_evas_engine_software_x11@
386have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
387have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
388have_lcov = @have_lcov@
389host = @host@
390host_alias = @host_alias@
391host_cpu = @host_cpu@
392host_os = @host_os@
393host_vendor = @host_vendor@
394htmldir = @htmldir@
395includedir = @includedir@
396infodir = @infodir@
397install_sh = @install_sh@
398libdir = @libdir@
399libexecdir = @libexecdir@
400localedir = @localedir@
401localstatedir = @localstatedir@
402lt_ECHO = @lt_ECHO@
403lt_enable_auto_import = @lt_enable_auto_import@
404mandir = @mandir@
405mkdir_p = @mkdir_p@
406oldincludedir = @oldincludedir@
407pdfdir = @pdfdir@
408pkgconfig_requires_private = @pkgconfig_requires_private@
409prefix = @prefix@
410program_transform_name = @program_transform_name@
411psdir = @psdir@
412pthread_cflags = @pthread_cflags@
413pthread_libs = @pthread_libs@
414release_info = @release_info@
415requirement_evas = @requirement_evas@
416sbindir = @sbindir@
417sharedstatedir = @sharedstatedir@
418srcdir = @srcdir@
419sysconfdir = @sysconfdir@
420target_alias = @target_alias@
421top_build_prefix = @top_build_prefix@
422top_builddir = @top_builddir@
423top_srcdir = @top_srcdir@
424version_info = @version_info@
425MAINTAINERCLEANFILES = Makefile.in
426AM_CPPFLAGS = \
427-I. \
428-I$(top_srcdir)/src/lib \
429-I$(top_srcdir)/src/lib/include \
430@FREETYPE_CFLAGS@ \
431@PIXMAN_CFLAGS@ \
432@GL_EET_CFLAGS@ \
433@EINA_CFLAGS@
434
435@BUILD_ENGINE_GL_COMMON_TRUE@noinst_LTLIBRARIES = libevas_engine_gl_common.la
436@BUILD_ENGINE_GL_COMMON_TRUE@libevas_engine_gl_common_la_SOURCES = \
437@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_private.h \
438@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_common.h \
439@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_context.c \
440@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_shader.c \
441@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_rectangle.c \
442@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_texture.c \
443@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_image.c \
444@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_font.c \
445@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_polygon.c \
446@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_line.c \
447@BUILD_ENGINE_GL_COMMON_TRUE@evas_gl_filter.c \
448@BUILD_ENGINE_GL_COMMON_TRUE@shader/rect_frag.h \
449@BUILD_ENGINE_GL_COMMON_TRUE@shader/rect_frag_bin_s3c6410.h \
450@BUILD_ENGINE_GL_COMMON_TRUE@shader/rect_vert.h \
451@BUILD_ENGINE_GL_COMMON_TRUE@shader/rect_vert_bin_s3c6410.h \
452@BUILD_ENGINE_GL_COMMON_TRUE@shader/font_frag.h \
453@BUILD_ENGINE_GL_COMMON_TRUE@shader/font_frag_bin_s3c6410.h \
454@BUILD_ENGINE_GL_COMMON_TRUE@shader/font_vert.h \
455@BUILD_ENGINE_GL_COMMON_TRUE@shader/font_vert_bin_s3c6410.h \
456@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_frag.h \
457@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_frag_bin_s3c6410.h \
458@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_vert.h \
459@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_vert_bin_s3c6410.h \
460@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_nomul_frag.h \
461@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_nomul_frag_bin_s3c6410.h \
462@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_nomul_vert.h \
463@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_nomul_vert_bin_s3c6410.h \
464@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_frag.h \
465@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_frag_bin_s3c6410.h \
466@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_vert.h \
467@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_vert_bin_s3c6410.h \
468@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_nomul_frag.h \
469@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_nomul_frag_bin_s3c6410.h \
470@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_nomul_vert.h \
471@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_bgra_nomul_vert_bin_s3c6410.h \
472@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_mask_frag.h \
473@BUILD_ENGINE_GL_COMMON_TRUE@shader/img_mask_vert.h \
474@BUILD_ENGINE_GL_COMMON_TRUE@shader/nv12_nomul_vert.h \
475@BUILD_ENGINE_GL_COMMON_TRUE@shader/nv12_vert.h \
476@BUILD_ENGINE_GL_COMMON_TRUE@shader/nv12_nomul_frag.h \
477@BUILD_ENGINE_GL_COMMON_TRUE@shader/nv12_frag.h \
478@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_frag.h \
479@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_frag_bin_s3c6410.h \
480@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_vert.h \
481@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_vert_bin_s3c6410.h \
482@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_nomul_frag.h \
483@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_nomul_frag_bin_s3c6410.h \
484@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_nomul_vert.h \
485@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuv_nomul_vert_bin_s3c6410.h \
486@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_frag.h \
487@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_frag_bin_s3c6410.h \
488@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_vert.h \
489@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_vert_bin_s3c6410.h \
490@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_nomul_frag.h \
491@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_nomul_frag_bin_s3c6410.h \
492@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_nomul_vert.h \
493@BUILD_ENGINE_GL_COMMON_TRUE@shader/tex_nomul_vert_bin_s3c6410.h \
494@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_invert.h \
495@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_invert_nomul.h \
496@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_invert_bgra.h \
497@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_invert_bgra_nomul.h \
498@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_sepia.h \
499@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_sepia_nomul.h \
500@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_sepia_bgra.h \
501@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_sepia_bgra_nomul.h \
502@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_greyscale.h \
503@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_greyscale_nomul.h \
504@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_greyscale_bgra.h \
505@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_greyscale_bgra_nomul.h \
506@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_blur.h \
507@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_blur_nomul.h \
508@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_blur_bgra.h \
509@BUILD_ENGINE_GL_COMMON_TRUE@shader/filter_blur_bgra_nomul.h \
510@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuy2_frag.h \
511@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuy2_vert.h \
512@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuy2_nomul_frag.h \
513@BUILD_ENGINE_GL_COMMON_TRUE@shader/yuy2_nomul_vert.h
514
515@BUILD_ENGINE_GL_COMMON_TRUE@libevas_engine_gl_common_la_LIBADD = @EINA_LIBS@ @GL_EET_LIBS@ @evas_engine_gl_common_libs@ @dlopen_libs@
516EXTRA_DIST = \
517shader/compile-s3c6410.sh \
518shader/compile-sgx.sh \
519shader/make-c-bin.sh \
520shader/make-c-str.sh \
521shader/rect_frag.shd \
522shader/rect_frag_s3c6410.asm \
523shader/rect_vert.shd \
524shader/font_frag.shd \
525shader/font_frag_s3c6410.asm \
526shader/font_vert.shd \
527shader/img_frag.shd \
528shader/img_frag_s3c6410.asm \
529shader/img_vert.shd \
530shader/img_nomul_frag.shd \
531shader/img_nomul_vert.shd \
532shader/img_bgra_vert.shd \
533shader/img_bgra_frag.shd \
534shader/img_bgra_vert.shd \
535shader/img_bgra_nomul_frag.shd \
536shader/img_bgra_nomul_vert.shd \
537shader/img_mask_frag.h \
538shader/img_mask_vert.h \
539shader/yuv_frag.shd \
540shader/yuv_frag_s3c6410.asm \
541shader/yuv_vert.shd \
542shader/yuv_nomul_frag.shd \
543shader/yuv_nomul_vert.shd \
544shader/tex_frag.shd \
545shader/tex_frag_s3c6410.asm \
546shader/tex_vert.shd \
547shader/tex_nomul_frag.shd \
548shader/tex_nomul_vert.shd \
549shader/filter_invert.shd \
550shader/filter_invert_nomul.shd \
551shader/filter_invert_bgra.shd \
552shader/filter_invert_bgra_nomul.shd \
553shader/filter_greyscale.shd \
554shader/filter_greyscale_nomul.shd \
555shader/filter_greyscale_bgra.shd \
556shader/filter_greyscale_bgra_nomul.shd \
557shader/filter_sepia.shd \
558shader/filter_sepia_nomul.shd \
559shader/filter_sepia_bgra.shd \
560shader/filter_sepia_bgra_nomul.shd \
561shader/filter_blur.shd \
562shader/filter_blur_nomul.shd \
563shader/filter_blur_bgra.shd \
564shader/filter_blur_bgra_nomul.shd \
565shader/nv12_frag.h \
566shader/nv12_frag.shd \
567shader/nv12_nomul_frag.h \
568shader/nv12_nomul_frag.shd \
569shader/nv12_nomul_vert.h \
570shader/nv12_nomul_vert.shd \
571shader/nv12_vert.h \
572shader/nv12_vert.shd \
573shader/yuy2_frag.h \
574shader/yuy2_frag.shd \
575shader/yuy2_nomul_frag.h \
576shader/yuy2_nomul_frag.shd \
577shader/yuy2_nomul_vert.h \
578shader/yuy2_nomul_vert.shd \
579shader/yuy2_vert.h \
580shader/yuy2_vert.shd
581
582all: all-am
583
584.SUFFIXES:
585.SUFFIXES: .c .lo .o .obj
586$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
587 @for dep in $?; do \
588 case '$(am__configure_deps)' in \
589 *$$dep*) \
590 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
591 && { if test -f $@; then exit 0; else break; fi; }; \
592 exit 1;; \
593 esac; \
594 done; \
595 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/gl_common/Makefile'; \
596 $(am__cd) $(top_srcdir) && \
597 $(AUTOMAKE) --gnu src/modules/engines/gl_common/Makefile
598.PRECIOUS: Makefile
599Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
600 @case '$?' in \
601 *config.status*) \
602 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
603 *) \
604 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
605 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
606 esac;
607
608$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
609 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
610
611$(top_srcdir)/configure: $(am__configure_deps)
612 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
613$(ACLOCAL_M4): $(am__aclocal_m4_deps)
614 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
615$(am__aclocal_m4_deps):
616
617clean-noinstLTLIBRARIES:
618 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
619 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
620 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
621 test "$$dir" != "$$p" || dir=.; \
622 echo "rm -f \"$${dir}/so_locations\""; \
623 rm -f "$${dir}/so_locations"; \
624 done
625libevas_engine_gl_common.la: $(libevas_engine_gl_common_la_OBJECTS) $(libevas_engine_gl_common_la_DEPENDENCIES)
626 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_gl_common_la_rpath) $(libevas_engine_gl_common_la_OBJECTS) $(libevas_engine_gl_common_la_LIBADD) $(LIBS)
627
628mostlyclean-compile:
629 -rm -f *.$(OBJEXT)
630
631distclean-compile:
632 -rm -f *.tab.c
633
634@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_context.Plo@am__quote@
635@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_filter.Plo@am__quote@
636@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_font.Plo@am__quote@
637@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_image.Plo@am__quote@
638@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_line.Plo@am__quote@
639@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_polygon.Plo@am__quote@
640@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_rectangle.Plo@am__quote@
641@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_shader.Plo@am__quote@
642@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gl_texture.Plo@am__quote@
643
644.c.o:
645@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
646@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
647@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
648@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
649@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
650@am__fastdepCC_FALSE@ $(COMPILE) -c $<
651
652.c.obj:
653@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
654@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
655@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
656@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
657@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
658@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
659
660.c.lo:
661@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
662@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
663@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
664@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
665@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
666@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
667
668mostlyclean-libtool:
669 -rm -f *.lo
670
671clean-libtool:
672 -rm -rf .libs _libs
673
674ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
675 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
676 unique=`for i in $$list; do \
677 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
678 done | \
679 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
680 END { if (nonempty) { for (i in files) print i; }; }'`; \
681 mkid -fID $$unique
682tags: TAGS
683
684TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
685 $(TAGS_FILES) $(LISP)
686 set x; \
687 here=`pwd`; \
688 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
689 unique=`for i in $$list; do \
690 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
691 done | \
692 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
693 END { if (nonempty) { for (i in files) print i; }; }'`; \
694 shift; \
695 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
696 test -n "$$unique" || unique=$$empty_fix; \
697 if test $$# -gt 0; then \
698 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
699 "$$@" $$unique; \
700 else \
701 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
702 $$unique; \
703 fi; \
704 fi
705ctags: CTAGS
706CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
707 $(TAGS_FILES) $(LISP)
708 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
709 unique=`for i in $$list; do \
710 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
711 done | \
712 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
713 END { if (nonempty) { for (i in files) print i; }; }'`; \
714 test -z "$(CTAGS_ARGS)$$unique" \
715 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
716 $$unique
717
718GTAGS:
719 here=`$(am__cd) $(top_builddir) && pwd` \
720 && $(am__cd) $(top_srcdir) \
721 && gtags -i $(GTAGS_ARGS) "$$here"
722
723distclean-tags:
724 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
725
726distdir: $(DISTFILES)
727 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
728 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
729 list='$(DISTFILES)'; \
730 dist_files=`for file in $$list; do echo $$file; done | \
731 sed -e "s|^$$srcdirstrip/||;t" \
732 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
733 case $$dist_files in \
734 */*) $(MKDIR_P) `echo "$$dist_files" | \
735 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
736 sort -u` ;; \
737 esac; \
738 for file in $$dist_files; do \
739 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
740 if test -d $$d/$$file; then \
741 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
742 if test -d "$(distdir)/$$file"; then \
743 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
744 fi; \
745 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
746 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
747 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
748 fi; \
749 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
750 else \
751 test -f "$(distdir)/$$file" \
752 || cp -p $$d/$$file "$(distdir)/$$file" \
753 || exit 1; \
754 fi; \
755 done
756check-am: all-am
757check: check-am
758all-am: Makefile $(LTLIBRARIES)
759installdirs:
760install: install-am
761install-exec: install-exec-am
762install-data: install-data-am
763uninstall: uninstall-am
764
765install-am: all-am
766 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
767
768installcheck: installcheck-am
769install-strip:
770 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
771 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
772 `test -z '$(STRIP)' || \
773 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
774mostlyclean-generic:
775
776clean-generic:
777
778distclean-generic:
779 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
780 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
781
782maintainer-clean-generic:
783 @echo "This command is intended for maintainers to use"
784 @echo "it deletes files that may require special tools to rebuild."
785 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
786clean: clean-am
787
788clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
789 mostlyclean-am
790
791distclean: distclean-am
792 -rm -rf ./$(DEPDIR)
793 -rm -f Makefile
794distclean-am: clean-am distclean-compile distclean-generic \
795 distclean-tags
796
797dvi: dvi-am
798
799dvi-am:
800
801html: html-am
802
803html-am:
804
805info: info-am
806
807info-am:
808
809install-data-am:
810
811install-dvi: install-dvi-am
812
813install-dvi-am:
814
815install-exec-am:
816
817install-html: install-html-am
818
819install-html-am:
820
821install-info: install-info-am
822
823install-info-am:
824
825install-man:
826
827install-pdf: install-pdf-am
828
829install-pdf-am:
830
831install-ps: install-ps-am
832
833install-ps-am:
834
835installcheck-am:
836
837maintainer-clean: maintainer-clean-am
838 -rm -rf ./$(DEPDIR)
839 -rm -f Makefile
840maintainer-clean-am: distclean-am maintainer-clean-generic
841
842mostlyclean: mostlyclean-am
843
844mostlyclean-am: mostlyclean-compile mostlyclean-generic \
845 mostlyclean-libtool
846
847pdf: pdf-am
848
849pdf-am:
850
851ps: ps-am
852
853ps-am:
854
855uninstall-am:
856
857.MAKE: install-am install-strip
858
859.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
860 clean-libtool clean-noinstLTLIBRARIES ctags distclean \
861 distclean-compile distclean-generic distclean-libtool \
862 distclean-tags distdir dvi dvi-am html html-am info info-am \
863 install install-am install-data install-data-am install-dvi \
864 install-dvi-am install-exec install-exec-am install-html \
865 install-html-am install-info install-info-am install-man \
866 install-pdf install-pdf-am install-ps install-ps-am \
867 install-strip installcheck installcheck-am installdirs \
868 maintainer-clean maintainer-clean-generic mostlyclean \
869 mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
870 pdf pdf-am ps ps-am tags uninstall uninstall-am
871
872
873# Tell versions [3.59,3.63) of GNU make to not export all variables.
874# Otherwise a system limit (for SysV at least) may be exceeded.
875.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h b/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
deleted file mode 100644
index 051fb3b..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_common.h
+++ /dev/null
@@ -1,659 +0,0 @@
1#ifndef EVAS_GL_COMMON_H
2#define EVAS_GL_COMMON_H
3
4#include "evas_common.h"
5#include "evas_private.h"
6#include "config.h"
7
8#include <stdio.h>
9#include <stdlib.h>
10#include <string.h>
11#include <math.h>
12#include <sys/time.h>
13#include <unistd.h>
14#include <Eet.h>
15
16#define GL_GLEXT_PROTOTYPES
17
18#ifdef BUILD_ENGINE_GL_COCOA
19# include <OpenGL/gl.h>
20# include <OpenGL/glext.h>
21#else
22# ifdef _EVAS_ENGINE_SDL_H
23# if defined(GLES_VARIETY_S3C6410) || defined(GLES_VARIETY_SGX)
24# include <SDL/SDL_opengles.h>
25# else
26# include <SDL/SDL_opengl.h>
27# endif
28# else
29# if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
30# if defined(GLES_VARIETY_S3C6410)
31# include <GLES2/gl2.h>
32# elif defined(GLES_VARIETY_SGX)
33# include <GLES2/gl2.h>
34# include <GLES2/gl2ext.h>
35# endif
36# else
37# include <GL/gl.h>
38# include <GL/glext.h>
39# endif
40# endif
41#endif
42
43#ifndef GL_TEXTURE_RECTANGLE_NV
44# define GL_TEXTURE_RECTANGLE_NV 0x84F5
45#endif
46#ifndef GL_BGRA
47# define GL_BGRA 0x80E1
48#endif
49
50#ifndef EGL_NO_CONTEXT
51# define EGL_NO_CONTEXT 0
52#endif
53#ifndef EGL_NONE
54# define EGL_NONE 0x3038
55#endif
56#ifndef EGL_TRUE
57# define EGL_TRUE 1
58#endif
59#ifndef EGL_FALSE
60# define EGL_FALSE 0
61#endif
62
63#ifndef EGL_MAP_GL_TEXTURE_2D_SEC
64# define EGL_MAP_GL_TEXTURE_2D_SEC 0x3201
65#endif
66#ifndef EGL_MAP_GL_TEXTURE_HEIGHT_SEC
67# define EGL_MAP_GL_TEXTURE_HEIGHT_SEC 0x3202
68#endif
69#ifndef EGL_MAP_GL_TEXTURE_WIDTH_SEC
70# define EGL_MAP_GL_TEXTURE_WIDTH_SEC 0x3203
71#endif
72#ifndef EGL_MAP_GL_TEXTURE_FORMAT_SEC
73# define EGL_MAP_GL_TEXTURE_FORMAT_SEC 0x3204
74#endif
75#ifndef EGL_MAP_GL_TEXTURE_RGB_SEC
76# define EGL_MAP_GL_TEXTURE_RGB_SEC 0x3205
77#endif
78#ifndef EGL_MAP_GL_TEXTURE_RGBA_SEC
79# define EGL_MAP_GL_TEXTURE_RGBA_SEC 0x3206
80#endif
81#ifndef EGL_MAP_GL_TEXTURE_BGRA_SEC
82# define EGL_MAP_GL_TEXTURE_BGRA_SEC 0x3207
83#endif
84#ifndef EGL_MAP_GL_TEXTURE_LUMINANCE_SEC
85# define EGL_MAP_GL_TEXTURE_LUMINANCE_SEC 0x3208
86#endif
87#ifndef EGL_MAP_GL_TEXTURE_LUMINANCE_ALPHA_SEC
88# define EGL_MAP_GL_TEXTURE_LUMINANCE_ALPHA_SEC 0x3209
89#endif
90#ifndef EGL_MAP_GL_TEXTURE_PIXEL_TYPE_SEC
91# define EGL_MAP_GL_TEXTURE_PIXEL_TYPE_SEC 0x320a
92#endif
93#ifndef EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC
94# define EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC 0x320b
95#endif
96#ifndef EGL_MAP_GL_TEXTURE_STRIDE_IN_BYTES_SEC
97# define EGL_MAP_GL_TEXTURE_STRIDE_IN_BYTES_SEC 0x320c
98#endif
99#ifndef GL_PROGRAM_BINARY_LENGTH
100# define GL_PROGRAM_BINARY_LENGTH 0x8741
101#endif
102#ifndef GL_NUM_PROGRAM_BINARY_FORMATS
103# define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
104#endif
105#ifndef GL_PROGRAM_BINARY_FORMATS
106# define GL_PROGRAM_BINARY_FORMATS 0x87FF
107#endif
108#ifndef GL_PROGRAM_BINARY_RETRIEVABLE_HINT
109# define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
110#endif
111
112#define SHAD_VERTEX 0
113#define SHAD_COLOR 1
114#define SHAD_TEXUV 2
115#define SHAD_TEXUV2 3
116#define SHAD_TEXUV3 4
117#define SHAD_TEXM 5
118
119typedef struct _Evas_GL_Program Evas_GL_Program;
120typedef struct _Evas_GL_Program_Source Evas_GL_Program_Source;
121typedef struct _Evas_GL_Shared Evas_GL_Shared;
122typedef struct _Evas_Engine_GL_Context Evas_Engine_GL_Context;
123typedef struct _Evas_GL_Texture_Pool Evas_GL_Texture_Pool;
124typedef struct _Evas_GL_Texture Evas_GL_Texture;
125typedef struct _Evas_GL_Image Evas_GL_Image;
126typedef struct _Evas_GL_Font_Texture Evas_GL_Font_Texture;
127typedef struct _Evas_GL_Polygon Evas_GL_Polygon;
128typedef struct _Evas_GL_Polygon_Point Evas_GL_Polygon_Point;
129
130typedef enum {
131 SHADER_RECT,
132 SHADER_FONT,
133 SHADER_IMG,
134 SHADER_IMG_NOMUL,
135 SHADER_IMG_BGRA,
136 SHADER_IMG_BGRA_NOMUL,
137 SHADER_IMG_MASK,
138 SHADER_YUV,
139 SHADER_YUV_NOMUL,
140 SHADER_YUY2,
141 SHADER_YUY2_NOMUL,
142 SHADER_NV12,
143 SHADER_NV12_NOMUL,
144 SHADER_TEX,
145 SHADER_TEX_NOMUL,
146 SHADER_FILTER_INVERT,
147 SHADER_FILTER_INVERT_NOMUL,
148 SHADER_FILTER_INVERT_BGRA,
149 SHADER_FILTER_INVERT_BGRA_NOMUL,
150 SHADER_FILTER_GREYSCALE,
151 SHADER_FILTER_GREYSCALE_NOMUL,
152 SHADER_FILTER_GREYSCALE_BGRA,
153 SHADER_FILTER_GREYSCALE_BGRA_NOMUL,
154 SHADER_FILTER_SEPIA,
155 SHADER_FILTER_SEPIA_NOMUL,
156 SHADER_FILTER_SEPIA_BGRA,
157 SHADER_FILTER_SEPIA_BGRA_NOMUL,
158 /* SHADER_FILTER_BLUR, */
159 /* SHADER_FILTER_BLUR_NOMUL, */
160 /* SHADER_FILTER_BLUR_BGRA, */
161 /* SHADER_FILTER_BLUR_BGRA_NOMUL, */
162 SHADER_LAST
163} Evas_GL_Shader;
164
165struct _Evas_GL_Program
166{
167 GLuint vert, frag, prog;
168
169 int tex_count;
170};
171
172struct _Evas_GL_Program_Source
173{
174 const char *src;
175 const unsigned int *bin;
176 int bin_size;
177};
178
179struct _Evas_GL_Shared
180{
181 Eina_List *images;
182
183 int images_size;
184
185 struct {
186 GLint max_texture_units;
187 GLint max_texture_size;
188 GLint max_vertex_elements;
189 GLfloat anisotropic;
190 Eina_Bool rgb : 1;
191 Eina_Bool bgra : 1;
192 Eina_Bool tex_npo2 : 1;
193 Eina_Bool tex_rect : 1;
194 Eina_Bool sec_image_map : 1;
195 Eina_Bool bin_program : 1;
196 // tuning params - per gpu/cpu combo?
197#define MAX_CUTOUT 512
198#define DEF_CUTOUT 512
199
200// FIXME bug with pipes > 1 right now, should default to 32
201#define MAX_PIPES 128
202#define DEF_PIPES 32
203#define DEF_PIPES_SGX_540 32
204#define DEF_PIPES_TEGRA_2 1
205
206#define MIN_ATLAS_ALLOC 16
207#define MAX_ATLAS_ALLOC 1024
208#define DEF_ATLAS_ALLOC 1024
209
210#define MIN_ATLAS_ALLOC_ALPHA 16
211#define MAX_ATLAS_ALLOC_ALPHA 4096
212#define DEF_ATLAS_ALLOC_ALPHA 4096
213
214#define MAX_ATLAS_W 512
215#define DEF_ATLAS_W 512
216
217#define MAX_ATLAS_H 512
218#define DEF_ATLAS_H 512
219
220#define MIN_ATLAS_SLOT 16
221#define MAX_ATLAS_SLOT 512
222#define DEF_ATLAS_SLOT 16
223
224 struct {
225 struct {
226 int max;
227 } cutout;
228 struct {
229 int max;
230 } pipes;
231 struct {
232 int max_alloc_size;
233 int max_alloc_alpha_size;
234 int max_w;
235 int max_h;
236 int slot_size;
237 } atlas;
238 } tune;
239 } info;
240
241 struct {
242 Eina_List *whole;
243 Eina_List *atlas[33][3];
244 } tex;
245
246 Eina_Hash *native_pm_hash;
247 Eina_Hash *native_tex_hash;
248
249 Evas_GL_Program shader[SHADER_LAST];
250
251 int references;
252 int w, h;
253 int rot;
254 int mflip;
255 // persp map
256 int foc, z0, px, py;
257 int ax, ay;
258};
259
260#define RTYPE_RECT 1
261#define RTYPE_IMAGE 2
262#define RTYPE_FONT 3
263#define RTYPE_YUV 4
264#define RTYPE_MAP 5 /* need to merge with image */
265#define RTYPE_IMASK 6
266#define RTYPE_YUY2 7
267#define RTYPE_NV12 8
268
269struct _Evas_Engine_GL_Context
270{
271 int references;
272 int w, h;
273 int rot;
274 int foc, z0, px, py;
275 RGBA_Draw_Context *dc;
276
277 Evas_GL_Shared *shared;
278
279 int flushnum;
280 struct {
281 int top_pipe;
282 struct {
283 GLuint cur_prog;
284 GLuint cur_tex, cur_texu, cur_texv;
285 GLuint cur_texm, cur_texmu, cur_texmv;
286 int render_op;
287 int cx, cy, cw, ch;
288 int smooth;
289 int blend;
290 int clip;
291 } current;
292 } state;
293
294 struct {
295 struct {
296 int x, y, w, h;
297 int type;
298 } region;
299 struct {
300 int x, y, w, h;
301 Eina_Bool active : 1;
302 } clip;
303 struct {
304 Evas_GL_Image *surface;
305 GLuint cur_prog;
306 GLuint cur_tex, cur_texu, cur_texv, cur_texm;
307 void *cur_tex_dyn, *cur_texu_dyn, *cur_texv_dyn;
308 int render_op;
309 int cx, cy, cw, ch;
310 int smooth;
311 int blend;
312 int clip;
313 } shader;
314 struct {
315 int num, alloc;
316 GLshort *vertex;
317 GLubyte *color;
318 GLfloat *texuv;
319 GLfloat *texuv2;
320 GLfloat *texuv3;
321 GLfloat *texm;
322 Eina_Bool line: 1;
323 Eina_Bool use_vertex : 1;
324 Eina_Bool use_color : 1;
325 Eina_Bool use_texuv : 1;
326 Eina_Bool use_texuv2 : 1;
327 Eina_Bool use_texuv3 : 1;
328 Eina_Bool use_texm : 1;
329 Evas_GL_Image *im;
330 } array;
331 } pipe[MAX_PIPES];
332
333 struct {
334 Eina_Bool size : 1;
335 } change;
336
337 Eina_Bool havestuff : 1;
338
339 Evas_GL_Image *def_surface;
340
341 /* If this is set: Force drawing with a particular filter */
342 GLuint filter_prog;
343
344#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
345// FIXME: hack. expose egl display to gl core for egl image sec extn.
346 void *egldisp;
347#endif
348};
349
350struct _Evas_GL_Texture_Pool
351{
352 Evas_Engine_GL_Context *gc;
353 GLuint texture, fb;
354 GLuint intformat, format, dataformat;
355 int w, h;
356 int references;
357 int slot, fslot;
358 struct {
359 void *img;
360 unsigned int *data;
361 int w, h;
362 int stride;
363 int checked_out;
364 } dyn;
365 Eina_List *allocations;
366 Eina_Bool whole : 1;
367 Eina_Bool render : 1;
368 Eina_Bool native : 1;
369 Eina_Bool dynamic : 1;
370};
371
372struct _Evas_GL_Texture
373{
374 Evas_Engine_GL_Context *gc;
375 Evas_GL_Image *im;
376 Evas_GL_Texture_Pool *pt, *ptu, *ptv, *ptuv;
377 int x, y, w, h;
378 double sx1, sy1, sx2, sy2;
379 int references;
380
381 struct
382 {
383 Evas_GL_Texture_Pool *pt[2], *ptuv[2];
384 int source;
385 } double_buffer;
386
387 Eina_Bool alpha : 1;
388 Eina_Bool dyn : 1;
389};
390
391struct _Evas_GL_Image
392{
393 Evas_Engine_GL_Context *gc;
394 RGBA_Image *im;
395 Evas_GL_Texture *tex;
396 RGBA_Image_Loadopts load_opts;
397 int references;
398 // if im->im == NULL, it's a render-surface so these here are used
399 int w, h;
400 struct {
401 int space;
402 void *data;
403 unsigned char no_free : 1;
404 } cs;
405
406 struct {
407 void *data;
408 struct {
409 void (*bind) (void *data, void *image);
410 void (*unbind) (void *data, void *image);
411 void (*free) (void *data, void *image);
412 void *data;
413 } func;
414 int yinvert;
415 int target;
416 int mipmap;
417 unsigned char loose : 1;
418 } native;
419
420 int scale_hint, content_hint;
421 int csize;
422
423 Eina_List *filtered;
424
425 unsigned char dirty : 1;
426 unsigned char cached : 1;
427 unsigned char alpha : 1;
428 unsigned char tex_only : 1;
429};
430
431struct _Evas_GL_Font_Texture
432{
433 Evas_GL_Texture *tex;
434};
435
436struct _Evas_GL_Polygon
437{
438 Eina_List *points;
439 Eina_Bool changed : 1;
440};
441
442struct _Evas_GL_Polygon_Point
443{
444 int x, y;
445};
446
447#if 0
448extern Evas_GL_Program_Source shader_rect_frag_src;
449extern Evas_GL_Program_Source shader_rect_vert_src;
450extern Evas_GL_Program_Source shader_font_frag_src;
451extern Evas_GL_Program_Source shader_font_vert_src;
452
453extern Evas_GL_Program_Source shader_img_frag_src;
454extern Evas_GL_Program_Source shader_img_vert_src;
455extern Evas_GL_Program_Source shader_img_nomul_frag_src;
456extern Evas_GL_Program_Source shader_img_nomul_vert_src;
457extern Evas_GL_Program_Source shader_img_bgra_frag_src;
458extern Evas_GL_Program_Source shader_img_bgra_vert_src;
459extern Evas_GL_Program_Source shader_img_bgra_nomul_frag_src;
460extern Evas_GL_Program_Source shader_img_bgra_nomul_vert_src;
461extern Evas_GL_Program_Source shader_img_mask_frag_src;
462extern Evas_GL_Program_Source shader_img_mask_vert_src;
463
464extern Evas_GL_Program_Source shader_yuv_frag_src;
465extern Evas_GL_Program_Source shader_yuv_vert_src;
466extern Evas_GL_Program_Source shader_yuv_nomul_frag_src;
467extern Evas_GL_Program_Source shader_yuv_nomul_vert_src;
468
469extern Evas_GL_Program_Source shader_yuy2_frag_src;
470extern Evas_GL_Program_Source shader_yuy2_vert_src;
471extern Evas_GL_Program_Source shader_yuy2_nomul_frag_src;
472extern Evas_GL_Program_Source shader_yuy2_nomul_vert_src;
473
474extern Evas_GL_Program_Source shader_tex_frag_src;
475extern Evas_GL_Program_Source shader_tex_vert_src;
476extern Evas_GL_Program_Source shader_tex_nomul_frag_src;
477extern Evas_GL_Program_Source shader_tex_nomul_vert_src;
478
479extern Evas_GL_Program_Source shader_filter_invert_frag_src;
480extern Evas_GL_Program_Source shader_filter_invert_nomul_frag_src;
481extern Evas_GL_Program_Source shader_filter_invert_bgra_frag_src;
482extern Evas_GL_Program_Source shader_filter_invert_bgra_nomul_frag_src;
483extern Evas_GL_Program_Source shader_filter_sepia_frag_src;
484extern Evas_GL_Program_Source shader_filter_sepia_nomul_frag_src;
485extern Evas_GL_Program_Source shader_filter_sepia_bgra_frag_src;
486extern Evas_GL_Program_Source shader_filter_sepia_bgra_nomul_frag_src;
487extern Evas_GL_Program_Source shader_filter_greyscale_frag_src;
488extern Evas_GL_Program_Source shader_filter_greyscale_nomul_frag_src;
489extern Evas_GL_Program_Source shader_filter_greyscale_bgra_frag_src;
490extern Evas_GL_Program_Source shader_filter_greyscale_bgra_nomul_frag_src;
491/* blur (annoyingly) needs (aka is faster with) a vertex shader */
492extern Evas_GL_Program_Source shader_filter_blur_vert_src;
493extern Evas_GL_Program_Source shader_filter_blur_frag_src;
494extern Evas_GL_Program_Source shader_filter_blur_nomul_frag_src;
495extern Evas_GL_Program_Source shader_filter_blur_bgra_frag_src;
496extern Evas_GL_Program_Source shader_filter_blur_bgra_nomul_frag_src;
497#endif
498
499void glerr(int err, const char *file, const char *func, int line, const char *op);
500
501Evas_Engine_GL_Context *evas_gl_common_context_new(void);
502void evas_gl_common_context_free(Evas_Engine_GL_Context *gc);
503void evas_gl_common_context_use(Evas_Engine_GL_Context *gc);
504void evas_gl_common_context_newframe(Evas_Engine_GL_Context *gc);
505void evas_gl_common_context_resize(Evas_Engine_GL_Context *gc, int w, int h, int rot);
506void evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc, Evas_GL_Image *surface);
507
508void evas_gl_common_context_line_push(Evas_Engine_GL_Context *gc,
509 int x1, int y1, int x2, int y2,
510 int clip, int cx, int cy, int cw, int ch,
511 int r, int g, int b, int a);
512void evas_gl_common_context_rectangle_push(Evas_Engine_GL_Context *gc,
513 int x, int y, int w, int h,
514 int r, int g, int b, int a);
515void evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc,
516 Evas_GL_Texture *tex,
517 double sx, double sy, double sw, double sh,
518 int x, int y, int w, int h,
519 int r, int g, int b, int a,
520 Eina_Bool smooth, Eina_Bool tex_only);
521void evas_gl_common_context_image_mask_push(Evas_Engine_GL_Context *gc,
522 Evas_GL_Texture *tex,
523 Evas_GL_Texture *texm,
524 double sx, double sy, double sw, double sh,
525 double sxm, double sym, double swm, double shm,
526 int x, int y, int w, int h,
527 int r, int g, int b, int a,
528 Eina_Bool smooth);
529
530
531void evas_gl_common_context_font_push(Evas_Engine_GL_Context *gc,
532 Evas_GL_Texture *tex,
533 double sx, double sy, double sw, double sh,
534 int x, int y, int w, int h,
535 int r, int g, int b, int a);
536void evas_gl_common_context_yuv_push(Evas_Engine_GL_Context *gc,
537 Evas_GL_Texture *tex,
538 double sx, double sy, double sw, double sh,
539 int x, int y, int w, int h,
540 int r, int g, int b, int a,
541 Eina_Bool smooth);
542void evas_gl_common_context_yuy2_push(Evas_Engine_GL_Context *gc,
543 Evas_GL_Texture *tex,
544 double sx, double sy, double sw, double sh,
545 int x, int y, int w, int h,
546 int r, int g, int b, int a,
547 Eina_Bool smooth);
548void evas_gl_common_context_nv12_push(Evas_Engine_GL_Context *gc,
549 Evas_GL_Texture *tex,
550 double sx, double sy, double sw, double sh,
551 int x, int y, int w, int h,
552 int r, int g, int b, int a,
553 Eina_Bool smooth);
554void evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc,
555 Evas_GL_Texture *tex,
556 int npoints,
557 RGBA_Map_Point *p,
558 int clip, int cx, int cy, int cw, int ch,
559 int r, int g, int b, int a,
560 Eina_Bool smooth,
561 Eina_Bool tex_only,
562 Evas_Colorspace cspace);
563void evas_gl_common_context_flush(Evas_Engine_GL_Context *gc);
564
565int evas_gl_common_shader_program_init(Evas_GL_Shared *shared);
566void evas_gl_common_shader_program_init_done(void);
567void evas_gl_common_shader_program_shutdown(Evas_GL_Program *p);
568
569void evas_gl_common_rect_draw(Evas_Engine_GL_Context *gc, int x, int y, int w, int h);
570
571void evas_gl_texture_pool_empty(Evas_GL_Texture_Pool *pt);
572Evas_GL_Texture *evas_gl_common_texture_new(Evas_Engine_GL_Context *gc, RGBA_Image *im);
573Evas_GL_Texture *evas_gl_common_texture_native_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha, Evas_GL_Image *im);
574Evas_GL_Texture *evas_gl_common_texture_render_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha);
575Evas_GL_Texture *evas_gl_common_texture_dynamic_new(Evas_Engine_GL_Context *gc, Evas_GL_Image *im);
576void evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im);
577void evas_gl_common_texture_free(Evas_GL_Texture *tex);
578Evas_GL_Texture *evas_gl_common_texture_alpha_new(Evas_Engine_GL_Context *gc, DATA8 *pixels, unsigned int w, unsigned int h, int fh);
579void evas_gl_common_texture_alpha_update(Evas_GL_Texture *tex, DATA8 *pixels, unsigned int w, unsigned int h, int fh);
580Evas_GL_Texture *evas_gl_common_texture_yuv_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h);
581void evas_gl_common_texture_yuv_update(Evas_GL_Texture *tex, DATA8 **rows, unsigned int w, unsigned int h);
582Evas_GL_Texture *evas_gl_common_texture_yuy2_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h);
583void evas_gl_common_texture_yuy2_update(Evas_GL_Texture *tex, DATA8 **rows, unsigned int w, unsigned int h);
584Evas_GL_Texture *evas_gl_common_texture_nv12_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h);
585void evas_gl_common_texture_nv12_update(Evas_GL_Texture *tex, DATA8 **row, unsigned int w, unsigned int h);
586Evas_GL_Texture *evas_gl_common_texture_nv12tiled_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h);
587void evas_gl_common_texture_nv12tiled_update(Evas_GL_Texture *tex, DATA8 **row, unsigned int w, unsigned int h);
588
589void evas_gl_common_image_all_unload(Evas_Engine_GL_Context *gc);
590
591void evas_gl_common_image_ref(Evas_GL_Image *im);
592void evas_gl_common_image_unref(Evas_GL_Image *im);
593Evas_GL_Image *evas_gl_common_image_load(Evas_Engine_GL_Context *gc, const char *file, const char *key, Evas_Image_Load_Opts *lo, int *error);
594Evas_GL_Image *evas_gl_common_image_new_from_data(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, DATA32 *data, int alpha, int cspace);
595Evas_GL_Image *evas_gl_common_image_new_from_copied_data(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, DATA32 *data, int alpha, int cspace);
596Evas_GL_Image *evas_gl_common_image_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha, int cspace);
597Evas_GL_Image *evas_gl_common_image_alpha_set(Evas_GL_Image *im, int alpha);
598void evas_gl_common_image_native_enable(Evas_GL_Image *im);
599void evas_gl_common_image_native_disable(Evas_GL_Image *im);
600void evas_gl_common_image_scale_hint_set(Evas_GL_Image *im, int hint);
601void evas_gl_common_image_content_hint_set(Evas_GL_Image *im, int hint);
602void evas_gl_common_image_cache_flush(Evas_Engine_GL_Context *gc);
603void evas_gl_common_image_free(Evas_GL_Image *im);
604Evas_GL_Image *evas_gl_common_image_surface_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha);
605void evas_gl_common_image_dirty(Evas_GL_Image *im, unsigned int x, unsigned int y, unsigned int w, unsigned int h);
606void evas_gl_common_image_update(Evas_Engine_GL_Context *gc, Evas_GL_Image *im);
607void evas_gl_common_image_map_draw(Evas_Engine_GL_Context *gc, Evas_GL_Image *im, int npoints, RGBA_Map_Point *p, int smooth, int level);
608void evas_gl_common_image_draw(Evas_Engine_GL_Context *gc, Evas_GL_Image *im, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int smooth);
609
610void *evas_gl_font_texture_new(void *gc, RGBA_Font_Glyph *fg);
611void evas_gl_font_texture_free(void *);
612void evas_gl_font_texture_draw(void *gc, void *surface, void *dc, RGBA_Font_Glyph *fg, int x, int y);
613
614Evas_GL_Polygon *evas_gl_common_poly_point_add(Evas_GL_Polygon *poly, int x, int y);
615Evas_GL_Polygon *evas_gl_common_poly_points_clear(Evas_GL_Polygon *poly);
616void evas_gl_common_poly_draw(Evas_Engine_GL_Context *gc, Evas_GL_Polygon *poly, int x, int y);
617
618void evas_gl_common_line_draw(Evas_Engine_GL_Context *gc, int x1, int y1, int x2, int y2);
619
620#if 0 // filtering disabled
621void evas_gl_common_filter_draw(Evas_Engine_GL_Context *context, Evas_GL_Image *im, Evas_Filter_Info *filter);
622Filtered_Image *evas_gl_common_image_filtered_get(Evas_GL_Image *im, uint8_t *key, size_t keylen);
623Filtered_Image *evas_gl_common_image_filtered_save(Evas_GL_Image *im, Evas_GL_Image *fimage, uint8_t *key, size_t keylen);
624void evas_gl_common_image_filtered_free(Evas_GL_Image *im, Filtered_Image *);
625#endif
626
627extern void (*glsym_glGenFramebuffers) (GLsizei a, GLuint *b);
628extern void (*glsym_glBindFramebuffer) (GLenum a, GLuint b);
629extern void (*glsym_glFramebufferTexture2D) (GLenum a, GLenum b, GLenum c, GLuint d, GLint e);
630extern void (*glsym_glDeleteFramebuffers) (GLsizei a, const GLuint *b);
631extern void (*glsym_glGetProgramBinary) (GLuint a, GLsizei b, GLsizei *c, GLenum *d, void *e);
632extern void (*glsym_glProgramBinary) (GLuint a, GLenum b, const void *c, GLint d);
633extern void (*glsym_glProgramParameteri) (GLuint a, GLuint b, GLint d);
634
635#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
636extern void *(*secsym_eglCreateImage) (void *a, void *b, GLenum c, void *d, const int *e);
637extern unsigned int (*secsym_eglDestroyImage) (void *a, void *b);
638extern void (*secsym_glEGLImageTargetTexture2DOES) (int a, void *b);
639extern void *(*secsym_eglMapImageSEC) (void *a, void *b);
640extern unsigned int (*secsym_eglUnmapImageSEC) (void *a, void *b);
641extern unsigned int (*secsym_eglGetImageAttribSEC) (void *a, void *b, int c, int *d);
642#endif
643
644//#define GL_ERRORS 1
645
646#ifdef GL_ERRORS
647# define GLERR(fn, fl, ln, op) \
648 { \
649 int __gl_err = glGetError(); \
650 if (__gl_err != GL_NO_ERROR) glerr(__gl_err, fl, fn, ln, op); \
651 }
652#else
653# define GLERR(fn, fl, ln, op)
654#endif
655
656Eina_Bool evas_gl_common_module_open(void);
657void evas_gl_common_module_close(void);
658
659#endif
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_context.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_context.c
deleted file mode 100644
index 62e72bd..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_context.c
+++ /dev/null
@@ -1,2723 +0,0 @@
1#include "evas_gl_private.h"
2
3#ifdef HAVE_DLSYM
4# include <dlfcn.h> /* dlopen,dlclose,etc */
5#else
6# error gl_common should not get compiled if dlsym is not found on the system!
7#endif
8
9#define PRG_INVALID 0xffffffff
10#define GLPIPES 1
11
12static int sym_done = 0;
13int _evas_engine_GL_common_log_dom = -1;
14
15typedef void (*glsym_func_void) ();
16
17void (*glsym_glGenFramebuffers) (GLsizei a, GLuint *b) = NULL;
18void (*glsym_glBindFramebuffer) (GLenum a, GLuint b) = NULL;
19void (*glsym_glFramebufferTexture2D) (GLenum a, GLenum b, GLenum c, GLuint d, GLint e) = NULL;
20void (*glsym_glDeleteFramebuffers) (GLsizei a, const GLuint *b) = NULL;
21void (*glsym_glGetProgramBinary) (GLuint a, GLsizei b, GLsizei *c, GLenum *d, void *e) = NULL;
22void (*glsym_glProgramBinary) (GLuint a, GLenum b, const void *c, GLint d) = NULL;
23void (*glsym_glProgramParameteri) (GLuint a, GLuint b, GLint d) = NULL;
24
25#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
26// just used for finding symbols :)
27typedef void (*_eng_fn) (void);
28
29typedef _eng_fn (*secsym_func_eng_fn) ();
30typedef unsigned int (*secsym_func_uint) ();
31typedef void *(*secsym_func_void_ptr) ();
32
33static _eng_fn (*secsym_eglGetProcAddress) (const char *a) = NULL;
34
35void *(*secsym_eglCreateImage) (void *a, void *b, GLenum c, void *d, const int *e) = NULL;
36unsigned int (*secsym_eglDestroyImage) (void *a, void *b) = NULL;
37void (*secsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
38void *(*secsym_eglMapImageSEC) (void *a, void *b) = NULL;
39unsigned int (*secsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
40unsigned int (*secsym_eglGetImageAttribSEC) (void *a, void *b, int c, int *d) = NULL;
41#endif
42
43static int dbgflushnum = -1;
44
45static void
46sym_missing(void)
47{
48 ERR("GL symbols missing!");
49}
50
51static void
52gl_symbols(void)
53{
54 if (sym_done) return;
55 sym_done = 1;
56
57 /* FIXME: If using the SDL engine, we should use SDL_GL_GetProcAddress
58 * instead of dlsym
59 * if (!dst) dst = (typ)SDL_GL_GetProcAddress(sym)
60 */
61#define FINDSYM(dst, sym, typ) if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym)
62#define FALLBAK(dst, typ) if (!dst) dst = (typ)sym_missing;
63
64 FINDSYM(glsym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void);
65 FINDSYM(glsym_glGenFramebuffers, "glGenFramebuffersEXT", glsym_func_void);
66 FINDSYM(glsym_glGenFramebuffers, "glGenFramebuffersARB", glsym_func_void);
67 FALLBAK(glsym_glGenFramebuffers, glsym_func_void);
68
69 FINDSYM(glsym_glBindFramebuffer, "glBindFramebuffer", glsym_func_void);
70 FINDSYM(glsym_glBindFramebuffer, "glBindFramebufferEXT", glsym_func_void);
71 FINDSYM(glsym_glBindFramebuffer, "glBindFramebufferARB", glsym_func_void);
72 FALLBAK(glsym_glBindFramebuffer, glsym_func_void);
73
74 FINDSYM(glsym_glFramebufferTexture2D, "glFramebufferTexture2D", glsym_func_void);
75 FINDSYM(glsym_glFramebufferTexture2D, "glFramebufferTexture2DEXT", glsym_func_void);
76 FINDSYM(glsym_glFramebufferTexture2D, "glFramebufferTexture2DARB", glsym_func_void);
77 FALLBAK(glsym_glFramebufferTexture2D, glsym_func_void);
78
79 FINDSYM(glsym_glDeleteFramebuffers, "glDeleteFramebuffers", glsym_func_void);
80 FINDSYM(glsym_glDeleteFramebuffers, "glDeleteFramebuffersEXT", glsym_func_void);
81 FINDSYM(glsym_glDeleteFramebuffers, "glDeleteFramebuffersARB", glsym_func_void);
82 FALLBAK(glsym_glDeleteFramebuffers, glsym_func_void);
83
84 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinary", glsym_func_void);
85 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryEXT", glsym_func_void);
86 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryARB", glsym_func_void);
87 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryOES", glsym_func_void);
88
89 FINDSYM(glsym_glProgramBinary, "glProgramBinary", glsym_func_void);
90 FINDSYM(glsym_glProgramBinary, "glProgramBinaryEXT", glsym_func_void);
91 FINDSYM(glsym_glProgramBinary, "glProgramBinaryARB", glsym_func_void);
92
93 FINDSYM(glsym_glProgramParameteri, "glProgramParameteri", glsym_func_void);
94 FINDSYM(glsym_glProgramParameteri, "glProgramParameteriEXT", glsym_func_void);
95 FINDSYM(glsym_glProgramParameteri, "glProgramParameteriARB", glsym_func_void);
96
97#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
98#undef FINDSYM
99#define FINDSYM(dst, sym, typ) \
100 if ((!dst) && (secsym_eglGetProcAddress)) dst = (typ)secsym_eglGetProcAddress(sym); \
101 if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym)
102// yes - gl core looking for egl stuff. i know it's odd. a reverse-layer thing
103// but it will work as the egl/glx layer calls gl core common stuff and thus
104// these symbols will work. making the glx/egl + x11 layer do this kind-of is
105// wrong as this is not x11 (output) layer specific like the native surface
106// stuff. this is generic zero-copy textures for gl
107
108 FINDSYM(secsym_eglGetProcAddress, "eglGetProcAddress", secsym_func_eng_fn);
109 FINDSYM(secsym_eglGetProcAddress, "eglGetProcAddressEXT", secsym_func_eng_fn);
110 FINDSYM(secsym_eglGetProcAddress, "eglGetProcAddressARB", secsym_func_eng_fn);
111 FINDSYM(secsym_eglGetProcAddress, "eglGetProcAddressKHR", secsym_func_eng_fn);
112
113 FINDSYM(secsym_eglCreateImage, "eglCreateImage", secsym_func_void_ptr);
114 FINDSYM(secsym_eglCreateImage, "eglCreateImageEXT", secsym_func_void_ptr);
115 FINDSYM(secsym_eglCreateImage, "eglCreateImageARB", secsym_func_void_ptr);
116 FINDSYM(secsym_eglCreateImage, "eglCreateImageKHR", secsym_func_void_ptr);
117
118 FINDSYM(secsym_eglDestroyImage, "eglDestroyImage", secsym_func_uint);
119 FINDSYM(secsym_eglDestroyImage, "eglDestroyImageEXT", secsym_func_uint);
120 FINDSYM(secsym_eglDestroyImage, "eglDestroyImageARB", secsym_func_uint);
121 FINDSYM(secsym_eglDestroyImage, "eglDestroyImageKHR", secsym_func_uint);
122
123 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinary", glsym_func_void);
124 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryEXT", glsym_func_void);
125 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryARB", glsym_func_void);
126 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryOES", glsym_func_void);
127 FINDSYM(glsym_glGetProgramBinary, "glGetProgramBinaryKHR", glsym_func_void);
128
129 FINDSYM(glsym_glProgramBinary, "glProgramBinary", glsym_func_void);
130 FINDSYM(glsym_glProgramBinary, "glProgramBinaryEXT", glsym_func_void);
131 FINDSYM(glsym_glProgramBinary, "glProgramBinaryARB", glsym_func_void);
132 FINDSYM(glsym_glProgramBinary, "glProgramBinaryOES", glsym_func_void);
133 FINDSYM(glsym_glProgramBinary, "glProgramBinaryKHR", glsym_func_void);
134
135 FINDSYM(glsym_glProgramParameteri, "glProgramParameteri", glsym_func_void);
136 FINDSYM(glsym_glProgramParameteri, "glProgramParameteriEXT", glsym_func_void);
137 FINDSYM(glsym_glProgramParameteri, "glProgramParameteriARB", glsym_func_void);
138 FINDSYM(glsym_glProgramParameteri, "glProgramParameteriOES", glsym_func_void);
139 FINDSYM(glsym_glProgramParameteri, "glProgramParameteriKHR", glsym_func_void);
140
141 FINDSYM(secsym_glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES", glsym_func_void);
142
143 FINDSYM(secsym_eglMapImageSEC, "eglMapImageSEC", secsym_func_void_ptr);
144
145 FINDSYM(secsym_eglUnmapImageSEC, "eglUnmapImageSEC", secsym_func_uint);
146
147 FINDSYM(secsym_eglGetImageAttribSEC, "eglGetImageAttribSEC", secsym_func_uint);
148#endif
149}
150
151static void shader_array_flush(Evas_Engine_GL_Context *gc);
152
153static Evas_Engine_GL_Context *_evas_gl_common_context = NULL;
154static Evas_GL_Shared *shared = NULL;
155
156void
157glerr(int err, const char *file, const char *func, int line, const char *op)
158{
159 const char *errmsg;
160 char buf[32];
161
162 switch (err)
163 {
164 case GL_INVALID_ENUM:
165 errmsg = "GL_INVALID_ENUM";
166 break;
167 case GL_INVALID_VALUE:
168 errmsg = "GL_INVALID_VALUE";
169 break;
170 case GL_INVALID_OPERATION:
171 errmsg = "GL_INVALID_OPERATION";
172 break;
173 case GL_OUT_OF_MEMORY:
174 errmsg = "GL_OUT_OF_MEMORY";
175 break;
176 default:
177 snprintf(buf, sizeof(buf), "%#x", err);
178 errmsg = buf;
179 }
180
181 eina_log_print(_evas_engine_GL_common_log_dom, EINA_LOG_LEVEL_ERR,
182 file, func, line, "%s: %s", op, errmsg);
183}
184
185static void
186matrix_ortho(GLfloat *m,
187 GLfloat l, GLfloat r,
188 GLfloat t, GLfloat b,
189 GLfloat near, GLfloat far,
190 int rot, int vw, int vh,
191 int foc, GLfloat orth)
192{
193 GLfloat rotf;
194 GLfloat cosv, sinv;
195 GLfloat tx, ty;
196
197 rotf = (((rot / 90) & 0x3) * M_PI) / 2.0;
198
199 tx = -0.5 * (1.0 - orth);
200 ty = -0.5 * (1.0 - orth);
201
202 if (rot == 90)
203 {
204 tx += -(vw * 1.0);
205 ty += -(vh * 0.0);
206 }
207 if (rot == 180)
208 {
209 tx += -(vw * 1.0);
210 ty += -(vh * 1.0);
211 }
212 if (rot == 270)
213 {
214 tx += -(vw * 0.0);
215 ty += -(vh * 1.0);
216 }
217
218 cosv = cos(rotf);
219 sinv = sin(rotf);
220
221 m[0] = (2.0 / (r - l)) * ( cosv);
222 m[1] = (2.0 / (r - l)) * ( sinv);
223 m[2] = 0.0;
224 m[3] = 0.0;
225
226 m[4] = (2.0 / (t - b)) * (-sinv);
227 m[5] = (2.0 / (t - b)) * ( cosv);
228 m[6] = 0.0;
229 m[7] = 0.0;
230
231 m[8] = 0.0;
232 m[9] = 0.0;
233 m[10] = -(2.0 / (far - near));
234 m[11] = 1.0 / (GLfloat)foc;
235
236 m[12] = (m[0] * tx) + (m[4] * ty) - ((r + l) / (r - l));
237 m[13] = (m[1] * tx) + (m[5] * ty) - ((t + b) / (t - b));
238 m[14] = (m[2] * tx) + (m[6] * ty) - ((near + far) / (far - near));
239 m[15] = (m[3] * tx) + (m[7] * ty) + orth;
240}
241
242static int
243_evas_gl_common_version_check()
244{
245 char *version;
246 char *tmp;
247 char *tmp2;
248 int major;
249 int minor;
250
251 /*
252 * glGetString returns a string describing the current GL connection.
253 * GL_VERSION is used to get the version of the connection
254 */
255
256 version = (char *)glGetString(GL_VERSION);
257
258 /*
259 * OpengL ES
260 *
261 * 1.* : The form is:
262 *
263 * OpenGL ES-<profile> <major>.<minor>
264 *
265 * where <profile> is either "CM" or "CL". The minor can be followed by the vendor
266 * specific information
267 *
268 * 2.0 : The form is:
269 *
270 * OpenGL<space>ES<space><version number><space><vendor-specific information>
271 */
272
273 /* OpenGL ES 1.* ? */
274
275 if ((tmp = strstr(version, "OpenGL ES-CM ")) || (tmp = strstr(version, "OpenGL ES-CL ")))
276 {
277 /* Not supported */
278 return 0;
279 }
280
281 /* OpenGL ES 2.* ? */
282
283 if ((tmp = strstr(version, "OpenGL ES ")))
284 {
285 /* Supported */
286 return 1;
287 }
288
289 /*
290 * OpenGL
291 *
292 * The GL_VERSION and GL_SHADING_LANGUAGE_VERSION strings begin with a
293 * version number. The version number uses one of these forms:
294 *
295 * major_number.minor_number
296 * major_number.minor_number.release_number
297 *
298 * Vendor-specific information may follow the version number. Its format
299 * depends on the implementation, but a space always separates the
300 * version number and the vendor-specific information.
301 */
302
303 /* glGetString() returns a static string, and we are going to */
304 /* modify it, so we get a copy first */
305 version = strdup(version);
306 if (!version)
307 return 0;
308
309 tmp = strchr(version, '.');
310 /* the first '.' always exists */
311 *tmp = '\0';
312 major = atoi(version);
313 /* FIXME: maybe we can assume that minor in only a cipher */
314 tmp2 = ++tmp;
315 while ((*tmp != '.') && (*tmp != ' ') && (*tmp != '\0'))
316 tmp++;
317 /* *tmp is '\0' : version is major_number.minor_number */
318 /* *tmp is '.' : version is major_number.minor_number.release_number */
319 /* *tmp is ' ' : version is major_number.minor_number followed by vendor */
320 *tmp = '\0';
321 minor = atoi(tmp2);
322 free(version);
323
324 if (((major == 1) && (minor >= 4)) || (major >= 2))
325 return 1;
326
327 return 0;
328}
329
330static void
331_evas_gl_common_viewport_set(Evas_Engine_GL_Context *gc)
332{
333 GLfloat proj[16];
334 unsigned int i;
335 int w = 1, h = 1, m = 1, rot = 1, foc = 0;
336
337 EINA_SAFETY_ON_NULL_RETURN(gc);
338 foc = gc->foc;
339 // surface in pipe 0 will be the same as all pipes
340 if ((gc->pipe[0].shader.surface == gc->def_surface) ||
341 (!gc->pipe[0].shader.surface))
342 {
343 w = gc->w;
344 h = gc->h;
345 rot = gc->rot;
346 }
347 else
348 {
349 w = gc->pipe[0].shader.surface->w;
350 h = gc->pipe[0].shader.surface->h;
351 rot = 0;
352 m = -1;
353 }
354
355 if ((!gc->change.size) ||
356 ((gc->shared->w == w) && (gc->shared->h == h) &&
357 (gc->shared->rot == rot) && (gc->shared->foc == gc->foc) &&
358 (gc->shared->mflip == m)))
359 return;
360
361 gc->shared->w = w;
362 gc->shared->h = h;
363 gc->shared->rot = rot;
364 gc->shared->mflip = m;
365 gc->shared->foc = foc;
366 gc->shared->z0 = gc->z0;
367 gc->shared->px = gc->px;
368 gc->shared->py = gc->py;
369 gc->change.size = 0;
370
371 if (foc == 0)
372 {
373 if ((rot == 0) || (rot == 180))
374 glViewport(0, 0, w, h);
375 else
376 glViewport(0, 0, h, w);
377 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
378 // std matrix
379 if (m == 1)
380 matrix_ortho(proj,
381 0, w, 0, h,
382 -1000000.0, 1000000.0,
383 rot, w, h,
384 1, 1.0);
385 // v flipped matrix for render-to-texture
386 else
387 matrix_ortho(proj,
388 0, w, h, 0,
389 -1000000.0, 1000000.0,
390 rot, w, h,
391 1, 1.0);
392 }
393 else
394 {
395 int px, py, vx, vy, vw = 0, vh = 0, ax = 0, ay = 0, ppx = 0, ppy = 0;
396
397 px = gc->shared->px;
398 py = gc->shared->py;
399
400 if ((rot == 0 ) || (rot == 90 )) ppx = px;
401 else if ((rot == 180) || (rot == 270)) ppx = w - px;
402 if ((rot == 0 ) || (rot == 270)) ppy = py;
403 else if ((rot == 90 ) || (rot == 180)) ppy = h - py;
404
405 vx = ((w / 2) - ppx);
406 if (vx >= 0)
407 {
408 vw = w + (2 * vx);
409 if ((rot == 0 ) || (rot == 90 )) ax = 2 * vx;
410 else if ((rot == 180) || (rot == 270)) ax = 0;
411 }
412 else
413 {
414 vw = w - (2 * vx);
415 if ((rot == 0 ) || (rot == 90 )) ax = 0;
416 else if ((rot == 180) || (rot == 270)) ax = ppx - px;
417 vx = 0;
418 }
419
420 vy = ((h / 2) - ppy);
421 if (vy < 0)
422 {
423 vh = h - (2 * vy);
424 if ((rot == 0 )) ay = 0;
425 else if ((rot == 90 ) || (rot == 180) || (rot == 270)) ay = ppy - py;
426 vy = -vy;
427 }
428 else
429 {
430 vh = h + (2 * vy);
431 if ((rot == 0 ) || (rot == 270)) ay = 2 * vy;
432 else if ((rot == 90 ) || (rot == 180)) ay = 0;
433 vy = 0;
434 }
435
436 if (m == -1) ay = vy * 2;
437
438 if ((rot == 0) || (rot == 180))
439 glViewport(-2 * vx, -2 * vy, vw, vh);
440 else
441 glViewport(-2 * vy, -2 * vx, vh, vw);
442 if (m == 1)
443 matrix_ortho(proj, 0, vw, 0, vh,
444 -1000000.0, 1000000.0,
445 rot, vw, vh,
446 foc, 0.0);
447 else
448 matrix_ortho(proj, 0, vw, vh, 0,
449 -1000000.0, 1000000.0,
450 rot, vw, vh,
451 foc, 0.0);
452 gc->shared->ax = ax;
453 gc->shared->ay = ay;
454 }
455
456 for (i = 0; i < SHADER_LAST; ++i)
457 {
458 glUseProgram(gc->shared->shader[i].prog);
459 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
460 glUniformMatrix4fv(glGetUniformLocation(gc->shared->shader[i].prog, "mvp"), 1, GL_FALSE, proj);
461 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
462 }
463
464 if (gc->state.current.cur_prog == PRG_INVALID)
465 glUseProgram(gc->shared->shader[0].prog);
466 else glUseProgram(gc->state.current.cur_prog);
467 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
468}
469
470Evas_Engine_GL_Context *
471evas_gl_common_context_new(void)
472{
473 Evas_Engine_GL_Context *gc;
474 const char *s;
475 int i;
476
477#if 1
478 if (_evas_gl_common_context)
479 {
480 _evas_gl_common_context->references++;
481 return _evas_gl_common_context;
482 }
483#endif
484 if (!_evas_gl_common_version_check())
485 return NULL;
486 gc = calloc(1, sizeof(Evas_Engine_GL_Context));
487 if (!gc) return NULL;
488
489 gl_symbols();
490
491 gc->references = 1;
492
493 _evas_gl_common_context = gc;
494
495 for (i = 0; i < MAX_PIPES; i++)
496 gc->pipe[i].shader.render_op = EVAS_RENDER_BLEND;
497
498 if (!shared)
499 {
500 const GLubyte *ext;
501
502 shared = calloc(1, sizeof(Evas_GL_Shared));
503 ext = glGetString(GL_EXTENSIONS);
504 if (ext)
505 {
506 if (getenv("EVAS_GL_INFO"))
507 fprintf(stderr, "EXT:\n%s\n", ext);
508 if ((strstr((char *)ext, "GL_ARB_texture_non_power_of_two")) ||
509 (strstr((char *)ext, "OES_texture_npot")) ||
510 (strstr((char *)ext, "GL_IMG_texture_npot")))
511 shared->info.tex_npo2 = 1;
512 if ((strstr((char *)ext, "GL_NV_texture_rectangle")) ||
513 (strstr((char *)ext, "GL_EXT_texture_rectangle")) ||
514 (strstr((char *)ext, "GL_ARB_texture_rectangle")))
515 shared->info.tex_rect = 1;
516 if ((strstr((char *)ext, "GL_ARB_get_program_binary")) ||
517 (strstr((char *)ext, "GL_OES_get_program_binary")))
518 shared->info.bin_program = 1;
519#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
520 if ((strstr((char *)ext, "GL_EXT_texture_filter_anisotropic")))
521 glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT,
522 &(shared->info.anisotropic));
523#endif
524#ifdef GL_BGRA
525 if ((strstr((char *)ext, "GL_EXT_bgra")) ||
526 (strstr((char *)ext, "GL_EXT_texture_format_BGRA8888")))
527 shared->info.bgra = 1;
528#endif
529#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
530 // FIXME: there should be an extension name/string to check for
531 // not just symbols in the lib
532 i = 0;
533 s = getenv("EVAS_GL_NO_MAP_IMAGE_SEC");
534 if (s) i = atoi(s);
535 if (!i)
536 {
537 // test for all needed symbols - be "conservative" and
538 // need all of it
539 if ((secsym_eglCreateImage) &&
540 (secsym_eglDestroyImage) &&
541 (secsym_glEGLImageTargetTexture2DOES) &&
542 (secsym_eglMapImageSEC) &&
543 (secsym_eglUnmapImageSEC) &&
544 (secsym_eglGetImageAttribSEC))
545 shared->info.sec_image_map = 1;
546 }
547#endif
548 }
549 glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS,
550 &(shared->info.max_texture_units));
551 glGetIntegerv(GL_MAX_TEXTURE_SIZE,
552 &(shared->info.max_texture_size));
553 shared->info.max_vertex_elements = 6 * 100000;
554#ifdef GL_MAX_ELEMENTS_VERTICES
555/* only applies to glDrawRangeElements. don't really need to get it.
556 glGetIntegerv(GL_MAX_ELEMENTS_VERTICES,
557 &(shared->info.max_vertex_elements));
558 */
559#endif
560 s = getenv("EVAS_GL_VERTEX_MAX");
561 if (s) shared->info.max_vertex_elements = atoi(s);
562 if (shared->info.max_vertex_elements < 6)
563 shared->info.max_vertex_elements = 6;
564
565 // magic numbers that are a result of imperical testing and getting
566 // "best case" performance across a range of systems
567 shared->info.tune.cutout.max = DEF_CUTOUT;
568 shared->info.tune.pipes.max = DEF_PIPES;
569 shared->info.tune.atlas.max_alloc_size = DEF_ATLAS_ALLOC;
570 shared->info.tune.atlas.max_alloc_alpha_size = DEF_ATLAS_ALLOC_ALPHA;
571 shared->info.tune.atlas.max_w = DEF_ATLAS_W;
572 shared->info.tune.atlas.max_h = DEF_ATLAS_H;
573 shared->info.tune.atlas.slot_size = DEF_ATLAS_SLOT;
574
575 // per gpu hacks. based on impirical measurement of some known gpu's
576 s = (const char *)glGetString(GL_RENDERER);
577 if (s)
578 {
579 if (strstr(s, "PowerVR SGX 540"))
580 shared->info.tune.pipes.max = DEF_PIPES_SGX_540;
581 else if (strstr(s, "NVIDIA Tegra"))
582 shared->info.tune.pipes.max = DEF_PIPES_TEGRA_2;
583 }
584
585#define GETENVOPT(name, tune_param, min, max) \
586 do { \
587 const char *__v = getenv(name); \
588 if (__v) { \
589 shared->info.tune.tune_param = atoi(__v); \
590 if (shared->info.tune.tune_param > max) \
591 shared->info.tune.tune_param = max; \
592 else if (shared->info.tune.tune_param < min) \
593 shared->info.tune.tune_param = min; \
594 } \
595 } while (0)
596
597 GETENVOPT("EVAS_GL_CUTOUT_MAX", cutout.max, -1, 0x7fffffff);
598 GETENVOPT("EVAS_GL_PIPES_MAX", pipes.max, 1, MAX_PIPES);
599 GETENVOPT("EVAS_GL_ATLAS_ALLOC_SIZE", atlas.max_alloc_size, MIN_ATLAS_ALLOC, MAX_ATLAS_ALLOC);
600 GETENVOPT("EVAS_GL_ATLAS_ALLOC_ALPHA_SIZE", atlas.max_alloc_alpha_size, MIN_ATLAS_ALLOC_ALPHA, MAX_ATLAS_ALLOC_ALPHA);
601 GETENVOPT("EVAS_GL_ATLAS_MAX_W", atlas.max_w, 0, MAX_ATLAS_W);
602 GETENVOPT("EVAS_GL_ATLAS_MAX_H", atlas.max_h, 0, MAX_ATLAS_H);
603 GETENVOPT("EVAS_GL_ATLAS_SLOT_SIZE", atlas.slot_size, MIN_ATLAS_SLOT, MAX_ATLAS_SLOT);
604 s = (const char *)getenv("EVAS_GL_GET_PROGRAM_BINARY");
605 if (s)
606 {
607 if (atoi(s) == 0) shared->info.bin_program = 0;
608 }
609
610 if (getenv("EVAS_GL_INFO"))
611 fprintf(stderr,
612 "max tex size %ix%i\n"
613 "max units %i\n"
614 "non-power-2 tex %i\n"
615 "rect tex %i\n"
616 "bgra : %i\n"
617 "max ansiotropic filtering: %3.3f\n"
618 "egl sec map image: %i\n"
619 "max vertex count: %i\n"
620 "\n"
621 "(can set EVAS_GL_VERTEX_MAX EVAS_GL_NO_MAP_IMAGE_SEC EVAS_GL_INFO EVAS_GL_MEMINFO )\n"
622 "\n"
623 "EVAS_GL_GET_PROGRAM_BINARY: %i\n"
624 "EVAS_GL_CUTOUT_MAX: %i\n"
625 "EVAS_GL_PIPES_MAX: %i\n"
626 "EVAS_GL_ATLAS_ALLOC_SIZE: %i\n"
627 "EVAS_GL_ATLAS_ALLOC_ALPHA_SIZE: %i\n"
628 "EVAS_GL_ATLAS_MAX_W x EVAS_GL_ATLAS_MAX_H: %i x %i\n"
629 "EVAS_GL_ATLAS_SLOT_SIZE: %i\n"
630 ,
631 (int)shared->info.max_texture_size, (int)shared->info.max_texture_size,
632 (int)shared->info.max_texture_units,
633 (int)shared->info.tex_npo2,
634 (int)shared->info.tex_rect,
635 (int)shared->info.bgra,
636 (double)shared->info.anisotropic,
637 (int)shared->info.sec_image_map,
638 (int)shared->info.max_vertex_elements,
639
640 (int)shared->info.bin_program,
641 (int)shared->info.tune.cutout.max,
642 (int)shared->info.tune.pipes.max,
643 (int)shared->info.tune.atlas.max_alloc_size,
644 (int)shared->info.tune.atlas.max_alloc_alpha_size,
645 (int)shared->info.tune.atlas.max_w, (int)shared->info.tune.atlas.max_h,
646 (int)shared->info.tune.atlas.slot_size
647 );
648
649 glDisable(GL_DEPTH_TEST);
650 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
651 glEnable(GL_DITHER);
652 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
653 glDisable(GL_BLEND);
654 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
655 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
656 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
657 // no dest alpha
658// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // dest alpha
659// glBlendFunc(GL_SRC_ALPHA, GL_ONE); // ???
660 glDepthMask(GL_FALSE);
661 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
662
663 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
664 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
665 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
666 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
667 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
668 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
669 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
670 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
671#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
672 if (shared->info.anisotropic > 0.0)
673 {
674 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0);
675 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
676 }
677#endif
678
679 glEnableVertexAttribArray(SHAD_VERTEX);
680 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
681 glEnableVertexAttribArray(SHAD_COLOR);
682 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
683
684 if (!evas_gl_common_shader_program_init(shared)) goto error;
685
686#define SHADER_TEXTURE_ADD(Shared, Shader, Name) \
687 glUseProgram(Shared->shader[SHADER_##Shader].prog); \
688 GLERR(__FUNCTION__, __FILE__, __LINE__, ""); \
689 glUniform1i(glGetUniformLocation(Shared->shader[SHADER_##Shader].prog, #Name), Shared->shader[SHADER_##Shader].tex_count++); \
690 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
691
692 SHADER_TEXTURE_ADD(shared, YUV, tex);
693 SHADER_TEXTURE_ADD(shared, YUV, texu);
694 SHADER_TEXTURE_ADD(shared, YUV, texv);
695
696 SHADER_TEXTURE_ADD(shared, YUY2, tex);
697 SHADER_TEXTURE_ADD(shared, YUY2, texuv);
698
699 SHADER_TEXTURE_ADD(shared, NV12, tex);
700 SHADER_TEXTURE_ADD(shared, NV12, texuv);
701
702 SHADER_TEXTURE_ADD(shared, YUV_NOMUL, tex);
703 SHADER_TEXTURE_ADD(shared, YUV_NOMUL, texu);
704 SHADER_TEXTURE_ADD(shared, YUV_NOMUL, texv);
705
706 SHADER_TEXTURE_ADD(shared, YUY2_NOMUL, tex);
707 SHADER_TEXTURE_ADD(shared, YUY2_NOMUL, texuv);
708
709 SHADER_TEXTURE_ADD(shared, NV12_NOMUL, tex);
710 SHADER_TEXTURE_ADD(shared, NV12_NOMUL, texuv);
711
712 SHADER_TEXTURE_ADD(shared, IMG_MASK, tex);
713 SHADER_TEXTURE_ADD(shared, IMG_MASK, texm);
714
715 if (gc->state.current.cur_prog == PRG_INVALID)
716 glUseProgram(gc->shared->shader[0].prog);
717 else glUseProgram(gc->state.current.cur_prog);
718 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
719
720 evas_gl_common_shader_program_init_done();
721 // in shader:
722 // uniform sampler2D tex[8];
723 //
724 // in code:
725 // GLuint texes[8];
726 // GLint loc = glGetUniformLocation(prog, "tex");
727 // glUniform1iv(loc, 8, texes);
728
729 shared->native_pm_hash = eina_hash_int32_new(NULL);
730 shared->native_tex_hash = eina_hash_int32_new(NULL);
731 }
732 gc->shared = shared;
733 gc->shared->references++;
734 _evas_gl_common_viewport_set(gc);
735
736 gc->def_surface = evas_gl_common_image_surface_new(gc, 1, 1, 1);
737
738 return gc;
739 error:
740 evas_gl_common_context_free(gc);
741 return NULL;
742}
743
744void
745evas_gl_common_context_free(Evas_Engine_GL_Context *gc)
746{
747 int i, j;
748 Eina_List *l;
749
750 gc->references--;
751 if (gc->references > 0) return;
752 if (gc->shared) gc->shared->references--;
753
754 if (gc->def_surface) evas_gl_common_image_free(gc->def_surface);
755
756 if (gc->shared)
757 {
758 for (i = 0; i < gc->shared->info.tune.pipes.max; i++)
759 {
760 if (gc->pipe[i].array.vertex) free(gc->pipe[i].array.vertex);
761 if (gc->pipe[i].array.color) free(gc->pipe[i].array.color);
762 if (gc->pipe[i].array.texuv) free(gc->pipe[i].array.texuv);
763 if (gc->pipe[i].array.texm) free(gc->pipe[i].array.texm);
764 if (gc->pipe[i].array.texuv2) free(gc->pipe[i].array.texuv2);
765 if (gc->pipe[i].array.texuv3) free(gc->pipe[i].array.texuv3);
766 }
767 }
768
769 if ((gc->shared) && (gc->shared->references == 0))
770 {
771 Evas_GL_Texture_Pool *pt;
772
773 for (i = 0; i < SHADER_LAST; ++i)
774 evas_gl_common_shader_program_shutdown(&(gc->shared->shader[i]));
775
776 while (gc->shared->images)
777 {
778 evas_gl_common_image_free(gc->shared->images->data);
779 }
780
781 EINA_LIST_FOREACH(gc->shared->tex.whole, l, pt)
782 evas_gl_texture_pool_empty(pt);
783 for (i = 0; i < 33; i++)
784 {
785 for (j = 0; j < 3; j++)
786 {
787 EINA_LIST_FOREACH(gc->shared->tex.atlas[i][j], l, pt)
788 evas_gl_texture_pool_empty(pt);
789 }
790 }
791 eina_hash_free(gc->shared->native_pm_hash);
792 eina_hash_free(gc->shared->native_tex_hash);
793 free(gc->shared);
794 shared = NULL;
795 }
796 if (gc == _evas_gl_common_context) _evas_gl_common_context = NULL;
797 free(gc);
798}
799
800void
801evas_gl_common_context_use(Evas_Engine_GL_Context *gc)
802{
803 if (_evas_gl_common_context == gc) return;
804 _evas_gl_common_context = gc;
805 if (gc) _evas_gl_common_viewport_set(gc);
806}
807
808void
809evas_gl_common_context_newframe(Evas_Engine_GL_Context *gc)
810{
811 int i;
812
813 if (dbgflushnum < 0)
814 {
815 dbgflushnum = 0;
816 if (getenv("EVAS_GL_DBG")) dbgflushnum = 1;
817 }
818 if (dbgflushnum) printf("----prev-flushnum: %i -----------------------------------\n", gc->flushnum);
819
820 gc->flushnum = 0;
821 gc->state.current.cur_prog = 0;
822 gc->state.current.cur_tex = 0;
823 gc->state.current.cur_texu = 0;
824 gc->state.current.cur_texv = 0;
825 gc->state.current.cur_texm = 0;
826 gc->state.current.cur_texmu = 0;
827 gc->state.current.cur_texmv = 0;
828 gc->state.current.render_op = 0;
829 gc->state.current.smooth = 0;
830 gc->state.current.blend = 0;
831 gc->state.current.clip = 0;
832 gc->state.current.cx = 0;
833 gc->state.current.cy = 0;
834 gc->state.current.cw = 0;
835 gc->state.current.ch = 0;
836
837 for (i = 0; i < gc->shared->info.tune.pipes.max; i++)
838 {
839 gc->pipe[i].region.x = 0;
840 gc->pipe[i].region.y = 0;
841 gc->pipe[i].region.w = 0;
842 gc->pipe[i].region.h = 0;
843 gc->pipe[i].region.type = 0;
844 gc->pipe[i].clip.active = 0;
845 gc->pipe[i].clip.x = 0;
846 gc->pipe[i].clip.y = 0;
847 gc->pipe[i].clip.w = 0;
848 gc->pipe[i].clip.h = 0;
849 gc->pipe[i].shader.surface = NULL;
850 gc->pipe[i].shader.cur_prog = 0;
851 gc->pipe[i].shader.cur_tex = 0;
852 gc->pipe[i].shader.cur_texu = 0;
853 gc->pipe[i].shader.cur_texv = 0;
854 gc->pipe[i].shader.cur_texm = 0;
855 gc->pipe[i].shader.render_op = EVAS_RENDER_BLEND;
856 gc->pipe[i].shader.smooth = 0;
857 gc->pipe[i].shader.blend = 0;
858 gc->pipe[i].shader.clip = 0;
859 gc->pipe[i].shader.cx = 0;
860 gc->pipe[i].shader.cy = 0;
861 gc->pipe[i].shader.cw = 0;
862 gc->pipe[i].shader.ch = 0;
863 }
864 gc->change.size = 1;
865
866 glDisable(GL_SCISSOR_TEST);
867 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
868 glScissor(0, 0, 0, 0);
869 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
870
871 glDisable(GL_DEPTH_TEST);
872 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
873 glEnable(GL_DITHER);
874 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
875 glDisable(GL_BLEND);
876 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
877 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
878 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
879 // no dest alpha
880// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // dest alpha
881// glBlendFunc(GL_SRC_ALPHA, GL_ONE); // ???
882 glDepthMask(GL_FALSE);
883 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
884
885 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
886 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
887 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
888 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
889 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
890 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
891 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
892 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
893#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
894 if (shared->info.anisotropic > 0.0)
895 {
896 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0);
897 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
898 }
899#endif
900
901 glEnableVertexAttribArray(SHAD_VERTEX);
902 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
903 glEnableVertexAttribArray(SHAD_COLOR);
904 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
905 if (gc->state.current.cur_prog == PRG_INVALID)
906 glUseProgram(gc->shared->shader[0].prog);
907 else glUseProgram(gc->state.current.cur_prog);
908 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
909
910 glActiveTexture(GL_TEXTURE0);
911 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
912 glBindTexture(GL_TEXTURE_2D, gc->pipe[0].shader.cur_tex);
913 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
914
915 _evas_gl_common_viewport_set(gc);
916}
917
918void
919evas_gl_common_context_resize(Evas_Engine_GL_Context *gc, int w, int h, int rot)
920{
921 if ((gc->w == w) && (gc->h == h) && (gc->rot == rot)) return;
922 evas_gl_common_context_flush(gc);
923 gc->change.size = 1;
924 gc->rot = rot;
925 gc->w = w;
926 gc->h = h;
927 if (_evas_gl_common_context == gc) _evas_gl_common_viewport_set(gc);
928}
929
930void
931evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc,
932 Evas_GL_Image *surface)
933{
934 if (surface == gc->pipe[0].shader.surface) return;
935
936 evas_gl_common_context_flush(gc);
937
938 gc->state.current.cur_prog = PRG_INVALID;
939 gc->state.current.cur_tex = -1;
940 gc->state.current.cur_texu = -1;
941 gc->state.current.cur_texv = -1;
942 gc->state.current.render_op = -1;
943 gc->state.current.smooth = -1;
944 gc->state.current.blend = -1;
945 gc->state.current.clip = -1;
946 gc->state.current.cx = -1;
947 gc->state.current.cy = -1;
948 gc->state.current.cw = -1;
949 gc->state.current.ch = -1;
950
951 gc->pipe[0].shader.surface = surface;
952 gc->change.size = 1;
953#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
954# ifndef GL_FRAMEBUFFER
955# define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
956# endif
957#else
958# ifndef GL_FRAMEBUFFER
959# define GL_FRAMEBUFFER GL_FRAMEBUFFER_EXT
960# endif
961#endif
962 if (gc->pipe[0].shader.surface == gc->def_surface)
963 {
964 glsym_glBindFramebuffer(GL_FRAMEBUFFER, 0);
965 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
966 }
967 else
968 {
969 glsym_glBindFramebuffer(GL_FRAMEBUFFER, surface->tex->pt->fb);
970 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
971 }
972 _evas_gl_common_viewport_set(gc);
973}
974
975#define PUSH_VERTEX(n, x, y, z) \
976 gc->pipe[n].array.vertex[nv++] = x; \
977 gc->pipe[n].array.vertex[nv++] = y; \
978 gc->pipe[n].array.vertex[nv++] = z
979#define PUSH_COLOR(n, r, g, b, a) \
980 gc->pipe[n].array.color[nc++] = r; \
981 gc->pipe[n].array.color[nc++] = g; \
982 gc->pipe[n].array.color[nc++] = b; \
983 gc->pipe[n].array.color[nc++] = a
984#define PUSH_TEXUV(n, u, v) \
985 gc->pipe[n].array.texuv[nu++] = u; \
986 gc->pipe[n].array.texuv[nu++] = v
987#define PUSH_TEXUV2(n, u, v) \
988 gc->pipe[n].array.texuv2[nu2++] = u; \
989 gc->pipe[n].array.texuv2[nu2++] = v
990#define PUSH_TEXUV3(n, u, v) \
991 gc->pipe[n].array.texuv3[nu3++] = u; \
992 gc->pipe[n].array.texuv3[nu3++] = v
993#define PUSH_TEXM(n, u, v) \
994 gc->pipe[n].array.texm[nm++] = u; \
995 gc->pipe[n].array.texm[nm++] = v
996
997
998static inline void
999array_alloc(Evas_Engine_GL_Context *gc, int n)
1000{
1001 gc->havestuff = EINA_TRUE;
1002 if (gc->pipe[n].array.num <= gc->pipe[n].array.alloc) return;
1003 gc->pipe[n].array.alloc += 6 * 1024;
1004 if (gc->pipe[n].array.use_vertex)
1005 gc->pipe[n].array.vertex = realloc(gc->pipe[n].array.vertex,
1006 gc->pipe[n].array.alloc * sizeof(GLshort) * 3);
1007 if (gc->pipe[n].array.use_color)
1008 gc->pipe[n].array.color = realloc(gc->pipe[n].array.color,
1009 gc->pipe[n].array.alloc * sizeof(GLubyte) * 4);
1010 if (gc->pipe[n].array.use_texuv)
1011 gc->pipe[n].array.texuv = realloc(gc->pipe[n].array.texuv,
1012 gc->pipe[n].array.alloc * sizeof(GLfloat) * 2);
1013 if (gc->pipe[n].array.use_texm)
1014 gc->pipe[n].array.texm = realloc(gc->pipe[n].array.texm,
1015 gc->pipe[n].array.alloc * sizeof(GLfloat) * 2);
1016 if (gc->pipe[n].array.use_texuv2)
1017 gc->pipe[n].array.texuv2 = realloc(gc->pipe[n].array.texuv2,
1018 gc->pipe[n].array.alloc * sizeof(GLfloat) * 2);
1019 if (gc->pipe[n].array.use_texuv3)
1020 gc->pipe[n].array.texuv3 = realloc(gc->pipe[n].array.texuv3,
1021 gc->pipe[n].array.alloc * sizeof(GLfloat) * 2);
1022}
1023
1024#ifdef GLPIPES
1025static int
1026pipe_region_intersects(Evas_Engine_GL_Context *gc, int n,
1027 int x, int y, int w, int h)
1028{
1029 int i, rx, ry, rw, rh, ii;
1030
1031 rx = gc->pipe[n].region.x;
1032 ry = gc->pipe[n].region.y;
1033 rw = gc->pipe[n].region.w;
1034 rh = gc->pipe[n].region.h;
1035 if (!RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh))
1036 return 0;
1037
1038 // a hack for now. map pipes use their whole bounding box for intersects
1039 // which at worst case reduces to old pipeline flushes, but cheaper than
1040 // full quad region or triangle intersects right now
1041 if (gc->pipe[n].region.type == RTYPE_MAP) return 1;
1042
1043 for (i = 0,
1044 ii = 0;
1045
1046 i < gc->pipe[n].array.num;
1047
1048 i += (3 * 2),
1049 ii += (3 * 3 * 2))
1050 { // tri 1...
1051 // 0, 1, 2 < top left
1052 // 3, 4, 5 < top right
1053 // 6. 7, 8 < bottom left
1054 rx = gc->pipe[n].array.vertex[ii + 0];
1055 ry = gc->pipe[n].array.vertex[ii + 1];
1056 rw = gc->pipe[n].array.vertex[ii + 3] - rx;
1057 rh = gc->pipe[n].array.vertex[ii + 7] - ry;
1058 if (RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh))
1059 return 1;
1060 }
1061 return 0;
1062}
1063#endif
1064
1065static void
1066pipe_region_expand(Evas_Engine_GL_Context *gc, int n,
1067 int x, int y, int w, int h)
1068{
1069 int x1, y1, x2, y2;
1070
1071 if (gc->pipe[n].region.w <= 0)
1072 {
1073 gc->pipe[n].region.x = x;
1074 gc->pipe[n].region.y = y;
1075 gc->pipe[n].region.w = w;
1076 gc->pipe[n].region.h = h;
1077 return;
1078 }
1079 x1 = gc->pipe[n].region.x;
1080 y1 = gc->pipe[n].region.y;
1081 x2 = gc->pipe[n].region.x + gc->pipe[n].region.w;
1082 y2 = gc->pipe[n].region.y + gc->pipe[n].region.h;
1083 if (x < x1) x1 = x;
1084 if (y < y1) y1 = y;
1085 if ((x + w) > x2) x2 = x + w;
1086 if ((y + h) > y2) y2 = y + h;
1087 gc->pipe[n].region.x = x1;
1088 gc->pipe[n].region.y = y1;
1089 gc->pipe[n].region.w = x2 - x1;
1090 gc->pipe[n].region.h = y2 - y1;
1091}
1092
1093static Eina_Bool
1094vertex_array_size_check(Evas_Engine_GL_Context *gc, int pn, int n)
1095{
1096 return 1;
1097// this fixup breaks for expedite test 32. why?
1098 if ((gc->pipe[pn].array.num + n) > gc->shared->info.max_vertex_elements)
1099 {
1100 shader_array_flush(gc);
1101 return 0;
1102 }
1103 return 1;
1104}
1105
1106static inline Evas_GL_Shader
1107evas_gl_common_shader_choice(int npoints __UNUSED__,
1108 RGBA_Map_Point *p,
1109 int r, int g, int b, int a,
1110 Evas_GL_Shader nomul,
1111 Evas_GL_Shader mul)
1112{
1113 if ((a == 255) && (r == 255) && (g == 255) && (b == 255))
1114 {
1115 if (!p) return nomul;
1116
1117 if ((p[0].col == 0xffffffff) && (p[1].col == 0xffffffff) &&
1118 (p[2].col == 0xffffffff) && (p[3].col == 0xffffffff))
1119 return nomul;
1120 }
1121 return mul;
1122}
1123
1124static int
1125_evas_gl_common_context_push(int rtype,
1126 Evas_Engine_GL_Context *gc,
1127 Evas_GL_Texture *tex,
1128 Evas_GL_Texture *texm,
1129 GLuint prog,
1130 int x, int y, int w, int h,
1131 Eina_Bool blend,
1132 Eina_Bool smooth,
1133 Eina_Bool clip,
1134 int cx, int cy, int cw, int ch)
1135{
1136 int pn = 0;
1137
1138#ifdef GLPIPES
1139 again:
1140#endif
1141 vertex_array_size_check(gc, gc->state.top_pipe, 6);
1142 pn = gc->state.top_pipe;
1143#ifdef GLPIPES
1144 if (!((pn == 0) && (gc->pipe[pn].array.num == 0)))
1145 {
1146 int found = 0;
1147 int i;
1148
1149 for (i = pn; i >= 0; i--)
1150 {
1151 if ((gc->pipe[i].region.type == rtype)
1152 && (!tex || gc->pipe[i].shader.cur_tex == tex->pt->texture)
1153 && (!texm || gc->pipe[i].shader.cur_texm == texm->pt->texture)
1154 && (gc->pipe[i].shader.cur_prog == prog)
1155 && (gc->pipe[i].shader.smooth == smooth)
1156 && (gc->pipe[i].shader.blend == blend)
1157 && (gc->pipe[i].shader.render_op == gc->dc->render_op)
1158 && (gc->pipe[i].shader.clip == clip)
1159 && (!clip || ((gc->pipe[i].shader.cx == cx)
1160 && (gc->pipe[i].shader.cy == cy)
1161 && (gc->pipe[i].shader.cw == cw)
1162 && (gc->pipe[i].shader.ch == ch))))
1163 {
1164 found = 1;
1165 pn = i;
1166 break;
1167 }
1168 if (pipe_region_intersects(gc, i, x, y, w, h)) break;
1169 }
1170 if (!found)
1171 {
1172 pn = gc->state.top_pipe + 1;
1173 if (pn >= gc->shared->info.tune.pipes.max)
1174 {
1175 shader_array_flush(gc);
1176 goto again;
1177 }
1178 gc->state.top_pipe = pn;
1179 }
1180 }
1181 if ((tex) && (((tex->im) && (tex->im->native.data)) || tex->pt->dyn.img))
1182 {
1183 if (gc->pipe[pn].array.im != tex->im)
1184 {
1185 shader_array_flush(gc);
1186 pn = gc->state.top_pipe;
1187 gc->pipe[pn].array.im = tex->im;
1188 goto again;
1189 }
1190 }
1191#else
1192 if (!((gc->pipe[pn].region.type == rtype)
1193 && (!tex || gc->pipe[pn].shader.cur_tex == tex->pt->texture)
1194 && (!texm || gc->pipe[pn].shader.cur_texm == texm->pt->texture)
1195 && (gc->pipe[pn].shader.cur_prog == prog)
1196 && (gc->pipe[pn].shader.smooth == smooth)
1197 && (gc->pipe[pn].shader.blend == blend)
1198 && (gc->pipe[pn].shader.render_op == gc->dc->render_op)
1199 && (gc->pipe[pn].shader.clip == clip)
1200 && (!clip || ((gc->pipe[pn].shader.cx == cx)
1201 && (gc->pipe[pn].shader.cy == cy)
1202 && (gc->pipe[pn].shader.cw == cw)
1203 && (gc->pipe[pn].shader.ch == ch)))))
1204 {
1205 shader_array_flush(gc);
1206 }
1207 if ((tex) && (((tex->im) && (tex->im->native.data)) || tex->pt->dyn.img))
1208 {
1209 if (gc->pipe[pn].array.im != tex->im)
1210 {
1211 shader_array_flush(gc);
1212 gc->pipe[pn].array.im = tex->im;
1213 }
1214 }
1215#endif
1216
1217 return pn;
1218}
1219
1220void
1221evas_gl_common_context_line_push(Evas_Engine_GL_Context *gc,
1222 int x1, int y1, int x2, int y2,
1223 int clip, int cx, int cy, int cw, int ch,
1224 int r, int g, int b, int a)
1225{
1226 int pnum, nv, nc, nu, nt, i;
1227 Eina_Bool blend = 0;
1228 GLuint prog = gc->shared->shader[SHADER_RECT].prog;
1229 int pn = 0;
1230
1231 if (a < 255) blend = 1;
1232 if (gc->dc->render_op == EVAS_RENDER_COPY) blend = 0;
1233
1234 shader_array_flush(gc);
1235 vertex_array_size_check(gc, gc->state.top_pipe, 2);
1236 pn = gc->state.top_pipe;
1237 gc->pipe[pn].shader.cur_tex = 0;
1238 gc->pipe[pn].shader.cur_prog = prog;
1239 gc->pipe[pn].shader.blend = blend;
1240 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1241 gc->pipe[pn].shader.clip = clip;
1242 gc->pipe[pn].shader.cx = cx;
1243 gc->pipe[pn].shader.cy = cy;
1244 gc->pipe[pn].shader.cw = cw;
1245 gc->pipe[pn].shader.ch = ch;
1246
1247 gc->pipe[pn].array.line = 1;
1248 gc->pipe[pn].array.use_vertex = 1;
1249 gc->pipe[pn].array.use_color = 1;
1250 gc->pipe[pn].array.use_texuv = 0;
1251 gc->pipe[pn].array.use_texuv2 = 0;
1252 gc->pipe[pn].array.use_texuv3 = 0;
1253
1254 pnum = gc->pipe[pn].array.num;
1255 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2; nt = pnum * 4;
1256 gc->pipe[pn].array.num += 2;
1257 array_alloc(gc, pn);
1258
1259 PUSH_VERTEX(pn, x1, y1, 0);
1260 PUSH_VERTEX(pn, x2, y2, 0);
1261
1262 for (i = 0; i < 2; i++)
1263 {
1264 PUSH_COLOR(pn, r, g, b, a);
1265 }
1266
1267 shader_array_flush(gc);
1268 gc->pipe[pn].array.line = 0;
1269 gc->pipe[pn].array.use_vertex = 0;
1270 gc->pipe[pn].array.use_color = 0;
1271 gc->pipe[pn].array.use_texuv = 0;
1272 gc->pipe[pn].array.use_texuv2 = 0;
1273 gc->pipe[pn].array.use_texuv3 = 0;
1274}
1275
1276void
1277evas_gl_common_context_rectangle_push(Evas_Engine_GL_Context *gc,
1278 int x, int y, int w, int h,
1279 int r, int g, int b, int a)
1280{
1281 int pnum, nv, nc, nu, nt, i;
1282 Eina_Bool blend = 0;
1283 GLuint prog = gc->shared->shader[SHADER_RECT].prog;
1284 int pn = 0;
1285
1286 if (gc->dc->mask.mask)
1287 {
1288 RGBA_Draw_Context *dc;
1289 dc = gc->dc;
1290 Evas_GL_Image *im;
1291 im = (void *)dc->mask.mask;
1292 evas_gl_common_context_font_push(gc, im->tex,
1293 x - dc->mask.x,y - dc->mask.y,
1294 dc->mask.w,dc->mask.h,
1295 x,y,w,h,r,g,b,a);
1296 return;
1297 }
1298
1299 if (a < 255) blend = 1;
1300 if (gc->dc->render_op == EVAS_RENDER_COPY) blend = 0;
1301
1302again:
1303 vertex_array_size_check(gc, gc->state.top_pipe, 6);
1304 pn = gc->state.top_pipe;
1305#ifdef GLPIPES
1306 if ((pn == 0) && (gc->pipe[pn].array.num == 0))
1307 {
1308 gc->pipe[pn].region.type = RTYPE_RECT;
1309 gc->pipe[pn].shader.cur_tex = 0;
1310 gc->pipe[pn].shader.cur_prog = prog;
1311 gc->pipe[pn].shader.blend = blend;
1312 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1313 gc->pipe[pn].shader.clip = 0;
1314 gc->pipe[pn].shader.cx = 0;
1315 gc->pipe[pn].shader.cy = 0;
1316 gc->pipe[pn].shader.cw = 0;
1317 gc->pipe[pn].shader.ch = 0;
1318 gc->pipe[pn].array.line = 0;
1319 gc->pipe[pn].array.use_vertex = 1;
1320 gc->pipe[pn].array.use_color = 1;
1321 gc->pipe[pn].array.use_texuv = 0;
1322 gc->pipe[pn].array.use_texuv2 = 0;
1323 gc->pipe[pn].array.use_texuv3 = 0;
1324 }
1325 else
1326 {
1327 int found = 0;
1328
1329 for (i = pn; i >= 0; i--)
1330 {
1331 if ((gc->pipe[i].region.type == RTYPE_RECT)
1332 && (gc->pipe[i].shader.cur_tex == 0)
1333 && (gc->pipe[i].shader.cur_prog == prog)
1334 && (gc->pipe[i].shader.blend == blend)
1335 && (gc->pipe[i].shader.render_op == gc->dc->render_op)
1336 && (gc->pipe[i].shader.clip == 0)
1337 )
1338 {
1339 found = 1;
1340 pn = i;
1341 break;
1342 }
1343 if (pipe_region_intersects(gc, i, x, y, w, h)) break;
1344 }
1345 if (!found)
1346 {
1347 pn = gc->state.top_pipe + 1;
1348 if (pn >= gc->shared->info.tune.pipes.max)
1349 {
1350 shader_array_flush(gc);
1351 goto again;
1352 }
1353 gc->state.top_pipe = pn;
1354 gc->pipe[pn].region.type = RTYPE_RECT;
1355 gc->pipe[pn].shader.cur_tex = 0;
1356 gc->pipe[pn].shader.cur_prog = prog;
1357 gc->pipe[pn].shader.blend = blend;
1358 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1359 gc->pipe[pn].shader.clip = 0;
1360 gc->pipe[pn].shader.cx = 0;
1361 gc->pipe[pn].shader.cy = 0;
1362 gc->pipe[pn].shader.cw = 0;
1363 gc->pipe[pn].shader.ch = 0;
1364 gc->pipe[pn].array.line = 0;
1365 gc->pipe[pn].array.use_vertex = 1;
1366 gc->pipe[pn].array.use_color = 1;
1367 gc->pipe[pn].array.use_texuv = 0;
1368 gc->pipe[pn].array.use_texuv2 = 0;
1369 gc->pipe[pn].array.use_texuv3 = 0;
1370 }
1371 }
1372#else
1373 if ((gc->pipe[pn].shader.cur_tex != 0)
1374 || (gc->pipe[pn].shader.cur_prog != prog)
1375 || (gc->pipe[pn].shader.blend != blend)
1376 || (gc->pipe[pn].shader.render_op != gc->dc->render_op)
1377 || (gc->pipe[pn].shader.clip != 0)
1378 )
1379 {
1380 shader_array_flush(gc);
1381 pn = gc->state.top_pipe;
1382 gc->pipe[pn].shader.cur_tex = 0;
1383 gc->pipe[pn].shader.cur_prog = prog;
1384 gc->pipe[pn].shader.blend = blend;
1385 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1386 gc->pipe[pn].shader.clip = 0;
1387 gc->pipe[pn].shader.cx = 0;
1388 gc->pipe[pn].shader.cy = 0;
1389 gc->pipe[pn].shader.cw = 0;
1390 gc->pipe[pn].shader.ch = 0;
1391 }
1392
1393 gc->pipe[pn].region.type = RTYPE_RECT;
1394 gc->pipe[pn].array.line = 0;
1395 gc->pipe[pn].array.use_vertex = 1;
1396 gc->pipe[pn].array.use_color = 1;
1397 gc->pipe[pn].array.use_texuv = 0;
1398 gc->pipe[pn].array.use_texuv2 = 0;
1399 gc->pipe[pn].array.use_texuv3 = 0;
1400#endif
1401
1402 pipe_region_expand(gc, pn, x, y, w, h);
1403
1404 pnum = gc->pipe[pn].array.num;
1405 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2; nt = pnum * 4;
1406 gc->pipe[pn].array.num += 6;
1407 array_alloc(gc, pn);
1408
1409 PUSH_VERTEX(pn, x , y , 0);
1410 PUSH_VERTEX(pn, x + w, y , 0);
1411 PUSH_VERTEX(pn, x , y + h, 0);
1412
1413 PUSH_VERTEX(pn, x + w, y , 0);
1414 PUSH_VERTEX(pn, x + w, y + h, 0);
1415 PUSH_VERTEX(pn, x , y + h, 0);
1416
1417 for (i = 0; i < 6; i++)
1418 {
1419 PUSH_COLOR(pn, r, g, b, a);
1420 }
1421}
1422
1423void
1424evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc,
1425 Evas_GL_Texture *tex,
1426 double sx, double sy, double sw, double sh,
1427 int x, int y, int w, int h,
1428 int r, int g, int b, int a,
1429 Eina_Bool smooth, Eina_Bool tex_only)
1430{
1431 int pnum, nv, nc, nu, nu2, nt, i;
1432 GLfloat tx1, tx2, ty1, ty2;
1433 Eina_Bool blend = 1;
1434 GLuint prog = gc->shared->shader[SHADER_IMG].prog;
1435 int pn = 0;
1436
1437 if (!tex->alpha) blend = 0;
1438 if (a < 255) blend = 1;
1439
1440 if (gc->filter_prog)
1441 {
1442 prog = gc->filter_prog;
1443 }
1444 else if (tex_only)
1445 {
1446 if (tex->pt->dyn.img)
1447 {
1448 prog = gc->shared->shader[evas_gl_common_shader_choice(0, NULL, r, g, b, a,
1449 SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA)].prog;
1450 }
1451 else
1452 {
1453 prog = gc->shared->shader[evas_gl_common_shader_choice(0, NULL, r, g, b, a,
1454 SHADER_TEX_NOMUL, SHADER_TEX)].prog;
1455 }
1456 }
1457 else
1458 {
1459 if (tex->gc->shared->info.bgra)
1460 {
1461 prog = gc->shared->shader[evas_gl_common_shader_choice(0, NULL, r, g, b, a,
1462 SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA)].prog;
1463 }
1464 else
1465 {
1466 prog = gc->shared->shader[evas_gl_common_shader_choice(0, NULL, r, g, b, a,
1467 SHADER_IMG_NOMUL, SHADER_IMG)].prog;
1468 }
1469 }
1470
1471 pn = _evas_gl_common_context_push(RTYPE_IMAGE,
1472 gc, tex, NULL,
1473 prog,
1474 x, y, w, h,
1475 blend,
1476 smooth,
1477 0, 0, 0, 0, 0);
1478
1479 gc->pipe[pn].region.type = RTYPE_IMAGE;
1480 gc->pipe[pn].shader.cur_tex = tex->pt->texture;
1481 gc->pipe[pn].shader.cur_prog = prog;
1482 gc->pipe[pn].shader.smooth = smooth;
1483 gc->pipe[pn].shader.blend = blend;
1484 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1485 gc->pipe[pn].shader.clip = 0;
1486 gc->pipe[pn].shader.cx = 0;
1487 gc->pipe[pn].shader.cy = 0;
1488 gc->pipe[pn].shader.cw = 0;
1489 gc->pipe[pn].shader.ch = 0;
1490 gc->pipe[pn].array.line = 0;
1491 gc->pipe[pn].array.use_vertex = 1;
1492 // if nomul... dont need this
1493 gc->pipe[pn].array.use_color = 1;
1494 gc->pipe[pn].array.use_texuv = 1;
1495 gc->pipe[pn].array.use_texuv2 = 0;
1496 gc->pipe[pn].array.use_texuv3 = 0;
1497
1498 pipe_region_expand(gc, pn, x, y, w, h);
1499
1500 pnum = gc->pipe[pn].array.num;
1501 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2; nu2 = pnum * 2;
1502 nt = pnum * 4;
1503 gc->pipe[pn].array.num += 6;
1504 array_alloc(gc, pn);
1505
1506 if ((tex->im) && (tex->im->native.data) && (!tex->im->native.yinvert))
1507 {
1508 tx1 = ((double)(tex->x) + sx) / (double)tex->pt->w;
1509 ty1 = 1.0 - ((double)(tex->y) + sy) / (double)tex->pt->h;
1510 tx2 = ((double)(tex->x) + sx + sw) / (double)tex->pt->w;
1511 ty2 = 1.0 - ((double)(tex->y) + sy + sh) / (double)tex->pt->h;
1512 }
1513 else
1514 {
1515 tx1 = ((double)(tex->x) + sx) / (double)tex->pt->w;
1516 ty1 = ((double)(tex->y) + sy) / (double)tex->pt->h;
1517 tx2 = ((double)(tex->x) + sx + sw) / (double)tex->pt->w;
1518 ty2 = ((double)(tex->y) + sy + sh) / (double)tex->pt->h;
1519 }
1520
1521 PUSH_VERTEX(pn, x , y , 0);
1522 PUSH_VERTEX(pn, x + w, y , 0);
1523 PUSH_VERTEX(pn, x , y + h, 0);
1524
1525 PUSH_TEXUV(pn, tx1, ty1);
1526 PUSH_TEXUV(pn, tx2, ty1);
1527 PUSH_TEXUV(pn, tx1, ty2);
1528
1529 PUSH_VERTEX(pn, x + w, y , 0);
1530 PUSH_VERTEX(pn, x + w, y + h, 0);
1531 PUSH_VERTEX(pn, x , y + h, 0);
1532
1533 PUSH_TEXUV(pn, tx2, ty1);
1534 PUSH_TEXUV(pn, tx2, ty2);
1535 PUSH_TEXUV(pn, tx1, ty2);
1536
1537 // if nomul... dont need this
1538 for (i = 0; i < 6; i++)
1539 {
1540 PUSH_COLOR(pn, r, g, b, a);
1541 }
1542}
1543
1544void
1545evas_gl_common_context_image_mask_push(Evas_Engine_GL_Context *gc,
1546 Evas_GL_Texture *tex,
1547 Evas_GL_Texture *texm,
1548 double sx, double sy, double sw, double sh,
1549 double sxm, double sym, double swm,double shm,
1550 int x, int y, int w, int h,
1551 int r, int g, int b, int a,
1552 Eina_Bool smooth)
1553{
1554 int pnum, nv, nc, nu, nm, nt, i;
1555 GLfloat tx1, tx2, ty1, ty2;
1556 GLfloat txm1, txm2, tym1, tym2;
1557 Eina_Bool blend = 1;
1558 GLuint prog = gc->shared->shader[SHADER_IMG_MASK].prog;
1559 int pn = 0;
1560
1561#if 0
1562 if (tex->gc->shared->info.bgra)
1563 {
1564 prog = gc->shared->shader[SHADER_IMG_MASK].prog;
1565 }
1566 else
1567 {
1568#warning Nash: FIXME: Need two shaders?
1569 printf("Not good: Need other texture\n");
1570 prog = gc->shared->shader[SHADER_IMG].prog;
1571 }
1572#endif
1573
1574 pn = _evas_gl_common_context_push(RTYPE_IMASK,
1575 gc, tex, texm,
1576 prog,
1577 x, y, w, h,
1578 blend,
1579 smooth,
1580 0, 0, 0, 0, 0);
1581
1582 gc->pipe[pn].region.type = RTYPE_IMASK;
1583 gc->pipe[pn].shader.cur_tex = tex->pt->texture;
1584 gc->pipe[pn].shader.cur_texm = texm->pt->texture;
1585 gc->pipe[pn].shader.cur_prog = prog;
1586 gc->pipe[pn].shader.smooth = smooth;
1587 gc->pipe[pn].shader.blend = blend;
1588 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1589 gc->pipe[pn].shader.clip = 0;
1590 gc->pipe[pn].shader.cx = 0;
1591 gc->pipe[pn].shader.cy = 0;
1592 gc->pipe[pn].shader.cw = 0;
1593 gc->pipe[pn].shader.ch = 0;
1594 gc->pipe[pn].array.line = 0;
1595 gc->pipe[pn].array.use_vertex = 1;
1596 // if nomul... dont need this
1597 gc->pipe[pn].array.use_color = 1;
1598 gc->pipe[pn].array.use_texuv = 1;
1599 gc->pipe[pn].array.use_texuv2 = 0;
1600 gc->pipe[pn].array.use_texuv3 = 0;
1601 gc->pipe[pn].array.use_texm = 1;
1602
1603 pipe_region_expand(gc, pn, x, y, w, h);
1604
1605 pnum = gc->pipe[pn].array.num;
1606 nv = pnum * 3; nc = pnum * 4; nm = pnum * 2; nu = pnum * 2;
1607 nt = pnum * 4;
1608 gc->pipe[pn].array.num += 6;
1609 array_alloc(gc, pn);
1610
1611 if ((tex->im) && (tex->im->native.data) && (!tex->im->native.yinvert))
1612 {
1613 tx1 = ((double)(tex->x) + sx) / (double)tex->pt->w;
1614 ty1 = ((double)(tex->y) + sy + sh) / (double)tex->pt->h;
1615 tx2 = ((double)(tex->x) + sx + sw) / (double)tex->pt->w;
1616 ty2 = ((double)(tex->y) + sy) / (double)tex->pt->h;
1617
1618 txm1 = ((double)(texm->x) + sxm) / (double)texm->pt->w;
1619 tym1 = ((double)(texm->y) + sym + shm) / (double)texm->pt->h;
1620 txm2 = ((double)(texm->x) + sxm + swm) / (double)texm->pt->w;
1621 tym2 = ((double)(texm->y) + sym) / (double)texm->pt->h;
1622 }
1623 else
1624 {
1625 tx1 = ((double)(tex->x) + sx) / (double)tex->pt->w;
1626 ty1 = ((double)(tex->y) + sy) / (double)tex->pt->h;
1627 tx2 = ((double)(tex->x) + sx + sw) / (double)tex->pt->w;
1628 ty2 = ((double)(tex->y) + sy + sh) / (double)tex->pt->h;
1629
1630 txm1 = (texm->x + sxm) / (double)texm->pt->w;
1631 tym1 = (texm->y + sym) / (double)texm->pt->h;
1632 txm2 = (texm->x + sxm + swm) / (double)texm->pt->w;
1633 tym2 = (texm->y + sym + shm) / (double)texm->pt->h;
1634 }
1635 // printf(" %3.6lf %3.6lf %3.6lf %3.6lf\n",sx,sy,sw,sh);
1636 // printf("m%3.6lf %3.6lf %3.6lf %3.6lf\n",sxm,sym,swm,shm);
1637 // printf(" %3f %3f %3f %3f\n",tx1,ty1,tx2,ty2);
1638 // printf("m%3f %3f %3f %3f\n",txm1,tym1,txm2,tym2);
1639
1640 PUSH_VERTEX(pn, x , y , 0);
1641 PUSH_VERTEX(pn, x + w, y , 0);
1642 PUSH_VERTEX(pn, x , y + h, 0);
1643
1644 PUSH_TEXUV(pn, tx1, ty1);
1645 PUSH_TEXUV(pn, tx2, ty1);
1646 PUSH_TEXUV(pn, tx1, ty2);
1647
1648 PUSH_TEXM(pn, txm1, tym1);
1649 PUSH_TEXM(pn, txm2, tym1);
1650 PUSH_TEXM(pn, txm1, tym2);
1651
1652 PUSH_VERTEX(pn, x + w, y , 0);
1653 PUSH_VERTEX(pn, x + w, y + h, 0);
1654 PUSH_VERTEX(pn, x , y + h, 0);
1655
1656 PUSH_TEXUV(pn, tx2, ty1);
1657 PUSH_TEXUV(pn, tx2, ty2);
1658 PUSH_TEXUV(pn, tx1, ty2);
1659
1660 PUSH_TEXM(pn, txm2, tym1);
1661 PUSH_TEXM(pn, txm2, tym2);
1662 PUSH_TEXM(pn, txm1, tym2);
1663
1664 // if nomul... dont need this
1665 for (i = 0; i < 6; i++)
1666 {
1667 PUSH_COLOR(pn, r, g, b, a);
1668 }
1669}
1670
1671
1672void
1673evas_gl_common_context_font_push(Evas_Engine_GL_Context *gc,
1674 Evas_GL_Texture *tex,
1675 double sx, double sy, double sw, double sh,
1676 int x, int y, int w, int h,
1677 int r, int g, int b, int a)
1678{
1679 int pnum, nv, nc, nu, nt, i;
1680 GLfloat tx1, tx2, ty1, ty2;
1681 GLuint prog = gc->shared->shader[SHADER_FONT].prog;
1682 int pn = 0;
1683
1684 pn = _evas_gl_common_context_push(RTYPE_FONT,
1685 gc, tex, NULL,
1686 prog,
1687 x, y, w, h,
1688 1,
1689 0,
1690 0, 0, 0, 0, 0);
1691
1692 gc->pipe[pn].region.type = RTYPE_FONT;
1693 gc->pipe[pn].shader.cur_tex = tex->pt->texture;
1694 gc->pipe[pn].shader.cur_prog = prog;
1695 gc->pipe[pn].shader.smooth = 0;
1696 gc->pipe[pn].shader.blend = 1;
1697 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1698 gc->pipe[pn].shader.clip = 0;
1699 gc->pipe[pn].shader.cx = 0;
1700 gc->pipe[pn].shader.cy = 0;
1701 gc->pipe[pn].shader.cw = 0;
1702 gc->pipe[pn].shader.ch = 0;
1703 gc->pipe[pn].array.line = 0;
1704 gc->pipe[pn].array.use_vertex = 1;
1705 gc->pipe[pn].array.use_color = 1;
1706 gc->pipe[pn].array.use_texuv = 1;
1707 gc->pipe[pn].array.use_texuv2 = 0;
1708 gc->pipe[pn].array.use_texuv3 = 0;
1709
1710 pipe_region_expand(gc, pn, x, y, w, h);
1711
1712 pnum = gc->pipe[pn].array.num;
1713 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2; nt = pnum * 4;
1714 gc->pipe[pn].array.num += 6;
1715 array_alloc(gc, pn);
1716
1717 if (sw == 0.0)
1718 {
1719 tx1 = tex->sx1;
1720 ty1 = tex->sy1;
1721 tx2 = tex->sx2;
1722 ty2 = tex->sy2;
1723 }
1724 else
1725 {
1726 tx1 = ((double)(tex->x) + sx) / (double)tex->pt->w;
1727 ty1 = ((double)(tex->y) + sy) / (double)tex->pt->h;
1728 tx2 = ((double)(tex->x) + sx + sw) / (double)tex->pt->w;
1729 ty2 = ((double)(tex->y) + sy + sh) / (double)tex->pt->h;
1730 }
1731
1732 PUSH_VERTEX(pn, x , y , 0);
1733 PUSH_VERTEX(pn, x + w, y , 0);
1734 PUSH_VERTEX(pn, x , y + h, 0);
1735
1736 PUSH_TEXUV(pn, tx1, ty1);
1737 PUSH_TEXUV(pn, tx2, ty1);
1738 PUSH_TEXUV(pn, tx1, ty2);
1739
1740 PUSH_VERTEX(pn, x + w, y , 0);
1741 PUSH_VERTEX(pn, x + w, y + h, 0);
1742 PUSH_VERTEX(pn, x , y + h, 0);
1743
1744 PUSH_TEXUV(pn, tx2, ty1);
1745 PUSH_TEXUV(pn, tx2, ty2);
1746 PUSH_TEXUV(pn, tx1, ty2);
1747
1748 for (i = 0; i < 6; i++)
1749 {
1750 PUSH_COLOR(pn, r, g, b, a);
1751 }
1752}
1753
1754void
1755evas_gl_common_context_yuv_push(Evas_Engine_GL_Context *gc,
1756 Evas_GL_Texture *tex,
1757 double sx, double sy, double sw, double sh,
1758 int x, int y, int w, int h,
1759 int r, int g, int b, int a,
1760 Eina_Bool smooth)
1761{
1762 int pnum, nv, nc, nu, nu2, nu3, nt, i;
1763 GLfloat tx1, tx2, ty1, ty2, t2x1, t2x2, t2y1, t2y2;
1764 Eina_Bool blend = 0;
1765 GLuint prog;
1766 int pn = 0;
1767
1768 if (a < 255) blend = 1;
1769
1770 prog = gc->shared->shader[evas_gl_common_shader_choice(0, NULL, r, g, b, a,
1771 SHADER_YUV_NOMUL, SHADER_YUV)].prog;
1772
1773 pn = _evas_gl_common_context_push(RTYPE_YUV,
1774 gc, tex, NULL,
1775 prog,
1776 x, y, w, h,
1777 blend,
1778 smooth,
1779 0, 0, 0, 0, 0);
1780
1781 gc->pipe[pn].region.type = RTYPE_YUV;
1782 gc->pipe[pn].shader.cur_tex = tex->pt->texture;
1783 gc->pipe[pn].shader.cur_texu = tex->ptu->texture;
1784 gc->pipe[pn].shader.cur_texv = tex->ptv->texture;
1785 gc->pipe[pn].shader.cur_prog = prog;
1786 gc->pipe[pn].shader.smooth = smooth;
1787 gc->pipe[pn].shader.blend = blend;
1788 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1789 gc->pipe[pn].shader.clip = 0;
1790 gc->pipe[pn].shader.cx = 0;
1791 gc->pipe[pn].shader.cy = 0;
1792 gc->pipe[pn].shader.cw = 0;
1793 gc->pipe[pn].shader.ch = 0;
1794 gc->pipe[pn].array.line = 0;
1795 gc->pipe[pn].array.use_vertex = 1;
1796 gc->pipe[pn].array.use_color = 1;
1797 gc->pipe[pn].array.use_texuv = 1;
1798 gc->pipe[pn].array.use_texuv2 = 1;
1799 gc->pipe[pn].array.use_texuv3 = 1;
1800
1801 pipe_region_expand(gc, pn, x, y, w, h);
1802
1803 pnum = gc->pipe[pn].array.num;
1804 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2;
1805 nu2 = pnum * 2; nu3 = pnum * 2; nt = pnum * 4;
1806 gc->pipe[pn].array.num += 6;
1807 array_alloc(gc, pn);
1808
1809 tx1 = (sx) / (double)tex->pt->w;
1810 ty1 = (sy) / (double)tex->pt->h;
1811 tx2 = (sx + sw) / (double)tex->pt->w;
1812 ty2 = (sy + sh) / (double)tex->pt->h;
1813
1814 t2x1 = ((sx) / 2) / (double)tex->ptu->w;
1815 t2y1 = ((sy) / 2) / (double)tex->ptu->h;
1816 t2x2 = ((sx + sw) / 2) / (double)tex->ptu->w;
1817 t2y2 = ((sy + sh) / 2) / (double)tex->ptu->h;
1818
1819 PUSH_VERTEX(pn, x , y , 0);
1820 PUSH_VERTEX(pn, x + w, y , 0);
1821 PUSH_VERTEX(pn, x , y + h, 0);
1822
1823 PUSH_TEXUV(pn, tx1, ty1);
1824 PUSH_TEXUV(pn, tx2, ty1);
1825 PUSH_TEXUV(pn, tx1, ty2);
1826
1827 PUSH_TEXUV2(pn, t2x1, t2y1);
1828 PUSH_TEXUV2(pn, t2x2, t2y1);
1829 PUSH_TEXUV2(pn, t2x1, t2y2);
1830
1831 PUSH_TEXUV3(pn, t2x1, t2y1);
1832 PUSH_TEXUV3(pn, t2x2, t2y1);
1833 PUSH_TEXUV3(pn, t2x1, t2y2);
1834
1835 PUSH_VERTEX(pn, x + w, y , 0);
1836 PUSH_VERTEX(pn, x + w, y + h, 0);
1837 PUSH_VERTEX(pn, x , y + h, 0);
1838
1839 PUSH_TEXUV(pn, tx2, ty1);
1840 PUSH_TEXUV(pn, tx2, ty2);
1841 PUSH_TEXUV(pn, tx1, ty2);
1842
1843 PUSH_TEXUV2(pn, t2x2, t2y1);
1844 PUSH_TEXUV2(pn, t2x2, t2y2);
1845 PUSH_TEXUV2(pn, t2x1, t2y2);
1846
1847 PUSH_TEXUV3(pn, t2x2, t2y1);
1848 PUSH_TEXUV3(pn, t2x2, t2y2);
1849 PUSH_TEXUV3(pn, t2x1, t2y2);
1850
1851 for (i = 0; i < 6; i++)
1852 {
1853 PUSH_COLOR(pn, r, g, b, a);
1854 }
1855}
1856
1857void
1858evas_gl_common_context_yuy2_push(Evas_Engine_GL_Context *gc,
1859 Evas_GL_Texture *tex,
1860 double sx, double sy, double sw, double sh,
1861 int x, int y, int w, int h,
1862 int r, int g, int b, int a,
1863 Eina_Bool smooth)
1864{
1865 int pnum, nv, nc, nu, nu2, nu3, nt, i;
1866 GLfloat tx1, tx2, ty1, ty2, t2x1, t2x2, t2y1, t2y2;
1867 Eina_Bool blend = 0;
1868 GLuint prog;
1869 int pn = 0;
1870
1871 if (a < 255) blend = 1;
1872
1873 prog = gc->shared->shader[evas_gl_common_shader_choice(0, NULL, r, g, b, a,
1874 SHADER_YUY2_NOMUL, SHADER_YUY2)].prog;
1875
1876 pn = _evas_gl_common_context_push(RTYPE_YUY2,
1877 gc, tex, NULL,
1878 prog,
1879 x, y, w, h,
1880 blend,
1881 smooth,
1882 0, 0, 0, 0, 0);
1883
1884 gc->pipe[pn].region.type = RTYPE_YUY2;
1885 gc->pipe[pn].shader.cur_tex = tex->pt->texture;
1886 gc->pipe[pn].shader.cur_texu = tex->ptuv->texture;
1887 gc->pipe[pn].shader.cur_prog = prog;
1888 gc->pipe[pn].shader.smooth = smooth;
1889 gc->pipe[pn].shader.blend = blend;
1890 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1891 gc->pipe[pn].shader.clip = 0;
1892 gc->pipe[pn].shader.cx = 0;
1893 gc->pipe[pn].shader.cy = 0;
1894 gc->pipe[pn].shader.cw = 0;
1895 gc->pipe[pn].shader.ch = 0;
1896 gc->pipe[pn].array.line = 0;
1897 gc->pipe[pn].array.use_vertex = 1;
1898 gc->pipe[pn].array.use_color = 1;
1899 gc->pipe[pn].array.use_texuv = 1;
1900 gc->pipe[pn].array.use_texuv2 = 1;
1901 gc->pipe[pn].array.use_texuv3 = 0;
1902
1903 pipe_region_expand(gc, pn, x, y, w, h);
1904
1905 pnum = gc->pipe[pn].array.num;
1906 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2;
1907 nu2 = pnum * 2; nu3 = pnum * 2; nt = pnum * 4;
1908 gc->pipe[pn].array.num += 6;
1909 array_alloc(gc, pn);
1910
1911 tx1 = (sx) / (double)tex->pt->w;
1912 ty1 = (sy) / (double)tex->pt->h;
1913 tx2 = (sx + sw) / (double)tex->pt->w;
1914 ty2 = (sy + sh) / (double)tex->pt->h;
1915
1916 t2x1 = sx / (double)tex->ptuv->w;
1917 t2y1 = sy / (double)tex->ptuv->h;
1918 t2x2 = (sx + sw) / (double)tex->ptuv->w;
1919 t2y2 = (sy + sh) / (double)tex->ptuv->h;
1920
1921 PUSH_VERTEX(pn, x , y , 0);
1922 PUSH_VERTEX(pn, x + w, y , 0);
1923 PUSH_VERTEX(pn, x , y + h, 0);
1924
1925 PUSH_TEXUV(pn, tx1, ty1);
1926 PUSH_TEXUV(pn, tx2, ty1);
1927 PUSH_TEXUV(pn, tx1, ty2);
1928
1929 PUSH_TEXUV2(pn, t2x1, t2y1);
1930 PUSH_TEXUV2(pn, t2x2, t2y1);
1931 PUSH_TEXUV2(pn, t2x1, t2y2);
1932
1933 PUSH_VERTEX(pn, x + w, y , 0);
1934 PUSH_VERTEX(pn, x + w, y + h, 0);
1935 PUSH_VERTEX(pn, x , y + h, 0);
1936
1937 PUSH_TEXUV(pn, tx2, ty1);
1938 PUSH_TEXUV(pn, tx2, ty2);
1939 PUSH_TEXUV(pn, tx1, ty2);
1940
1941 PUSH_TEXUV2(pn, t2x2, t2y1);
1942 PUSH_TEXUV2(pn, t2x2, t2y2);
1943 PUSH_TEXUV2(pn, t2x1, t2y2);
1944
1945 for (i = 0; i < 6; i++)
1946 {
1947 PUSH_COLOR(pn, r, g, b, a);
1948 }
1949}
1950
1951void
1952evas_gl_common_context_nv12_push(Evas_Engine_GL_Context *gc,
1953 Evas_GL_Texture *tex,
1954 double sx, double sy, double sw, double sh,
1955 int x, int y, int w, int h,
1956 int r, int g, int b, int a,
1957 Eina_Bool smooth)
1958{
1959 int pnum, nv, nc, nu, nu2, nu3, nt, i;
1960 GLfloat tx1, tx2, ty1, ty2, t2x1, t2x2, t2y1, t2y2;
1961 Eina_Bool blend = 0;
1962 GLuint prog;
1963 int pn = 0;
1964
1965 if (a < 255) blend = 1;
1966
1967 prog = gc->shared->shader[evas_gl_common_shader_choice(0, NULL, r, g, b, a,
1968 SHADER_NV12_NOMUL, SHADER_NV12)].prog;
1969
1970 pn = _evas_gl_common_context_push(RTYPE_NV12,
1971 gc, tex, NULL,
1972 prog,
1973 x, y, w, h,
1974 blend,
1975 smooth,
1976 0, 0, 0, 0, 0);
1977
1978 gc->pipe[pn].region.type = RTYPE_NV12;
1979 gc->pipe[pn].shader.cur_tex = tex->pt->texture;
1980 gc->pipe[pn].shader.cur_tex_dyn = tex->pt->dyn.img;
1981 gc->pipe[pn].shader.cur_texu = tex->ptuv->texture;
1982 gc->pipe[pn].shader.cur_texu_dyn = tex->ptuv->dyn.img;
1983 gc->pipe[pn].shader.cur_prog = prog;
1984 gc->pipe[pn].shader.smooth = smooth;
1985 gc->pipe[pn].shader.blend = blend;
1986 gc->pipe[pn].shader.render_op = gc->dc->render_op;
1987 gc->pipe[pn].shader.clip = 0;
1988 gc->pipe[pn].shader.cx = 0;
1989 gc->pipe[pn].shader.cy = 0;
1990 gc->pipe[pn].shader.cw = 0;
1991 gc->pipe[pn].shader.ch = 0;
1992 gc->pipe[pn].array.line = 0;
1993 gc->pipe[pn].array.use_vertex = 1;
1994 gc->pipe[pn].array.use_color = 1;
1995 gc->pipe[pn].array.use_texuv = 1;
1996 gc->pipe[pn].array.use_texuv2 = 1;
1997 gc->pipe[pn].array.use_texuv3 = 0;
1998
1999 pipe_region_expand(gc, pn, x, y, w, h);
2000
2001 pnum = gc->pipe[pn].array.num;
2002 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2;
2003 nu2 = pnum * 2; nu3 = pnum * 2; nt = pnum * 4;
2004 gc->pipe[pn].array.num += 6;
2005 array_alloc(gc, pn);
2006
2007 tx1 = (sx) / (double)tex->pt->w;
2008 ty1 = (sy) / (double)tex->pt->h;
2009 tx2 = (sx + sw) / (double)tex->pt->w;
2010 ty2 = (sy + sh) / (double)tex->pt->h;
2011
2012 t2x1 = sx / (double)tex->ptuv->w;
2013 t2y1 = sy / (double)tex->ptuv->h;
2014 t2x2 = (sx + sw) / (double)tex->ptuv->w;
2015 t2y2 = (sy + sh) / (double)tex->ptuv->h;
2016
2017 PUSH_VERTEX(pn, x , y , 0);
2018 PUSH_VERTEX(pn, x + w, y , 0);
2019 PUSH_VERTEX(pn, x , y + h, 0);
2020
2021 PUSH_TEXUV(pn, tx1, ty1);
2022 PUSH_TEXUV(pn, tx2, ty1);
2023 PUSH_TEXUV(pn, tx1, ty2);
2024
2025 PUSH_TEXUV2(pn, t2x1, t2y1);
2026 PUSH_TEXUV2(pn, t2x2, t2y1);
2027 PUSH_TEXUV2(pn, t2x1, t2y2);
2028
2029 PUSH_VERTEX(pn, x + w, y , 0);
2030 PUSH_VERTEX(pn, x + w, y + h, 0);
2031 PUSH_VERTEX(pn, x , y + h, 0);
2032
2033 PUSH_TEXUV(pn, tx2, ty1);
2034 PUSH_TEXUV(pn, tx2, ty2);
2035 PUSH_TEXUV(pn, tx1, ty2);
2036
2037 PUSH_TEXUV2(pn, t2x2, t2y1);
2038 PUSH_TEXUV2(pn, t2x2, t2y2);
2039 PUSH_TEXUV2(pn, t2x1, t2y2);
2040
2041 for (i = 0; i < 6; i++)
2042 {
2043 PUSH_COLOR(pn, r, g, b, a);
2044 }
2045}
2046
2047void
2048evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc,
2049 Evas_GL_Texture *tex,
2050 int npoints,
2051 RGBA_Map_Point *p,
2052 int clip, int cx, int cy, int cw, int ch,
2053 int r, int g, int b, int a,
2054 Eina_Bool smooth, Eina_Bool tex_only,
2055 Evas_Colorspace cspace)
2056{
2057 int pnum, nv, nc, nu, nu2, nu3, nt, i;
2058 const int points[6] = { 0, 1, 2, 0, 2, 3 };
2059 int x = 0, y = 0, w = 0, h = 0, px = 0, py = 0;
2060 GLfloat tx[4], ty[4], t2x[4], t2y[4];
2061 Eina_Bool blend = 1;
2062 DATA32 cmul;
2063 GLuint prog = gc->shared->shader[SHADER_IMG].prog;
2064 Eina_Bool utexture = EINA_FALSE;
2065 Eina_Bool uvtexture = EINA_FALSE;
2066 int pn = 0;
2067 int flat = 0;
2068
2069 if (!tex->alpha) blend = 0;
2070 if (a < 255) blend = 1;
2071 if (npoints != 4)
2072 {
2073 // FIXME: nash - you didn't fix this for n points. its still all
2074 // 4 point stuff!!! grrrr.
2075 abort();
2076 }
2077 if ((A_VAL(&(p[0].col)) < 0xff) || (A_VAL(&(p[1].col)) < 0xff) ||
2078 (A_VAL(&(p[2].col)) < 0xff) || (A_VAL(&(p[3].col)) < 0xff))
2079 blend = 1;
2080
2081 if ((p[0].z == p[1].z) && (p[1].z == p[2].z) && (p[2].z == p[3].z))
2082 flat = 1;
2083
2084 if (!clip) cx = cy = cw = ch = 0;
2085
2086 if (!flat)
2087 {
2088 if (p[0].foc <= 0) flat = 1;
2089 }
2090
2091 switch (cspace)
2092 {
2093 case EVAS_COLORSPACE_YCBCR422P601_PL:
2094 case EVAS_COLORSPACE_YCBCR422P709_PL:
2095 prog = gc->shared->shader[evas_gl_common_shader_choice(npoints, p, r, g, b, a,
2096 SHADER_YUV_NOMUL, SHADER_YUV)].prog;
2097 utexture = EINA_TRUE;
2098 break;
2099 case EVAS_COLORSPACE_YCBCR422601_PL:
2100 prog = gc->shared->shader[evas_gl_common_shader_choice(npoints, p, r, g, b, a,
2101 SHADER_YUY2_NOMUL, SHADER_YUY2)].prog;
2102 uvtexture = EINA_TRUE;
2103 break;
2104 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
2105 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
2106 prog = gc->shared->shader[evas_gl_common_shader_choice(npoints, p, r, g, b, a,
2107 SHADER_NV12_NOMUL, SHADER_NV12)].prog;
2108 uvtexture = EINA_TRUE;
2109 break;
2110
2111 default:
2112 if (tex_only)
2113 {
2114 if (tex->pt->dyn.img)
2115 {
2116 prog = gc->shared->shader[evas_gl_common_shader_choice(npoints, p, r, g, b, a,
2117 SHADER_IMG_BGRA_NOMUL, SHADER_IMG_BGRA)].prog;
2118 }
2119 else
2120 {
2121 prog = gc->shared->shader[evas_gl_common_shader_choice(npoints, p, r, g, b, a,
2122 SHADER_TEX_NOMUL, SHADER_TEX)].prog;
2123 }
2124 }
2125 else
2126 {
2127 if (tex->gc->shared->info.bgra)
2128 {
2129 prog = gc->shared->shader[evas_gl_common_shader_choice(npoints, p, r, g, b, a,
2130 SHADER_IMG_BGRA_NOMUL,
2131 SHADER_IMG_BGRA)].prog;
2132 }
2133 else
2134 {
2135 prog = gc->shared->shader[evas_gl_common_shader_choice(npoints, p, r, g, b, a,
2136 SHADER_IMG_NOMUL,
2137 SHADER_IMG)].prog;
2138 }
2139 }
2140 }
2141
2142 x = w = (p[0].x >> FP);
2143 y = h = (p[0].y >> FP);
2144 for (i = 0; i < 4; i++)
2145 {
2146 tx[i] = ((double)(tex->x) + (((double)p[i].u) / FP1)) /
2147 (double)tex->pt->w;
2148 ty[i] = ((double)(tex->y) + (((double)p[i].v) / FP1)) /
2149 (double)tex->pt->h;
2150 px = (p[i].x >> FP);
2151 if (px < x) x = px;
2152 else if (px > w) w = px;
2153 py = (p[i].y >> FP);
2154 if (py < y) y = py;
2155 else if (py > h) h = py;
2156 if (utexture)
2157 {
2158 t2x[i] = ((((double)p[i].u / 2) / FP1)) / (double)tex->ptu->w;
2159 t2y[i] = ((((double)p[i].v / 2) / FP1)) / (double)tex->ptu->h;
2160 }
2161 else if (uvtexture)
2162 {
2163 t2x[i] = ((((double)p[i].u / 2) / FP1)) / (double)tex->ptuv->w;
2164 t2y[i] = ((((double)p[i].v / 2) / FP1)) / (double)tex->ptuv->h;
2165 }
2166 }
2167 w = w - x;
2168 h = h - y;
2169
2170 if (clip)
2171 {
2172 int nx = x, ny = y, nw = w, nh = h;
2173
2174 RECTS_CLIP_TO_RECT(nx, ny, nw, nh, cx, cy, cw, ch);
2175 if ((nx == x) && (ny == y) && (nw == w) && (nh == h))
2176 {
2177 clip = 0; cx = 0; cy = 0; cw = 0; ch = 0;
2178 }
2179 x = nx; y = nw; w = nw; h = nh;
2180 }
2181
2182 if (!flat)
2183 {
2184 shader_array_flush(gc);
2185 gc->foc = p[0].foc >> FP;
2186 gc->z0 = p[0].z0 >> FP;
2187 gc->px = p[0].px >> FP;
2188 gc->py = p[0].py >> FP;
2189 gc->change.size = 1;
2190 _evas_gl_common_viewport_set(gc);
2191 }
2192
2193 pn = _evas_gl_common_context_push(RTYPE_MAP,
2194 gc, tex, NULL,
2195 prog,
2196 x, y, w, h,
2197 blend,
2198 smooth,
2199 clip, cx, cy, cw, ch);
2200 gc->pipe[pn].region.type = RTYPE_MAP;
2201 gc->pipe[pn].shader.cur_tex = tex->pt->texture;
2202 if (utexture)
2203 {
2204 gc->pipe[pn].shader.cur_texu = tex->ptu->texture;
2205 gc->pipe[pn].shader.cur_texu_dyn = tex->ptu->dyn.img;
2206 gc->pipe[pn].shader.cur_texv = tex->ptv->texture;
2207 gc->pipe[pn].shader.cur_texv_dyn = tex->ptv->dyn.img;
2208 }
2209 else if (uvtexture)
2210 {
2211 gc->pipe[pn].shader.cur_texu = tex->ptuv->texture;
2212 gc->pipe[pn].shader.cur_texu_dyn = tex->ptuv->dyn.img;
2213 }
2214 gc->pipe[pn].shader.cur_prog = prog;
2215 gc->pipe[pn].shader.smooth = smooth;
2216 gc->pipe[pn].shader.blend = blend;
2217 gc->pipe[pn].shader.render_op = gc->dc->render_op;
2218 gc->pipe[pn].shader.clip = clip;
2219 gc->pipe[pn].shader.cx = cx;
2220 gc->pipe[pn].shader.cy = cy;
2221 gc->pipe[pn].shader.cw = cw;
2222 gc->pipe[pn].shader.ch = ch;
2223 gc->pipe[pn].array.line = 0;
2224 gc->pipe[pn].array.use_vertex = 1;
2225 gc->pipe[pn].array.use_color = 1;
2226 gc->pipe[pn].array.use_texuv = 1;
2227 gc->pipe[pn].array.use_texuv2 = (utexture || uvtexture) ? 1 : 0;
2228 gc->pipe[pn].array.use_texuv3 = (utexture) ? 1 : 0;
2229
2230 pipe_region_expand(gc, pn, x, y, w, h);
2231
2232 pnum = gc->pipe[pn].array.num;
2233 nv = pnum * 3; nc = pnum * 4; nu = pnum * 2; nu2 = pnum * 2;
2234 nu2 = pnum * 2; nu3 = pnum * 2; nt = pnum * 4;
2235 gc->pipe[pn].array.num += 6;
2236 array_alloc(gc, pn);
2237
2238 if ((tex->im) && (tex->im->native.data) && (!tex->im->native.yinvert))
2239 {
2240 for (i = 0; i < 4; i++)
2241 {
2242 ty[i] = 1.0 - ty[i];
2243 if (utexture || uvtexture)
2244 t2y[i] = 1.0 - t2y[i];
2245 }
2246 }
2247
2248 cmul = ARGB_JOIN(a, r, g, b);
2249 for (i = 0; i < 6; i++)
2250 {
2251 DATA32 cl = MUL4_SYM(cmul, p[points[i]].col);
2252 if (flat)
2253 {
2254 PUSH_VERTEX(pn,
2255 (p[points[i]].x >> FP),
2256 (p[points[i]].y >> FP),
2257 0);
2258 }
2259 else
2260 {
2261 PUSH_VERTEX(pn,
2262 (p[points[i]].fx) + gc->shared->ax,
2263 (p[points[i]].fy) + gc->shared->ay,
2264 (p[points[i]].fz)
2265 + (gc->shared->foc - gc->shared->z0));
2266 }
2267 PUSH_TEXUV(pn,
2268 tx[points[i]],
2269 ty[points[i]]);
2270 if (utexture)
2271 {
2272 PUSH_TEXUV2(pn,
2273 t2x[points[i]],
2274 t2y[points[i]]);
2275 PUSH_TEXUV3(pn,
2276 t2x[points[i]],
2277 t2y[points[i]]);
2278 }
2279 else if (uvtexture)
2280 {
2281 PUSH_TEXUV2(pn,
2282 t2x[points[i]],
2283 t2y[points[i]]);
2284 }
2285
2286 PUSH_COLOR(pn,
2287 R_VAL(&cl),
2288 G_VAL(&cl),
2289 B_VAL(&cl),
2290 A_VAL(&cl));
2291 }
2292 if (!flat)
2293 {
2294 shader_array_flush(gc);
2295 gc->foc = 0;
2296 gc->z0 = 0;
2297 gc->px = 0;
2298 gc->py = 0;
2299 gc->change.size = 1;
2300 _evas_gl_common_viewport_set(gc);
2301 }
2302}
2303
2304void
2305evas_gl_common_context_flush(Evas_Engine_GL_Context *gc)
2306{
2307 shader_array_flush(gc);
2308}
2309
2310static void
2311scissor_rot(Evas_Engine_GL_Context *gc __UNUSED__,
2312 int rot, int gw, int gh, int cx, int cy, int cw, int ch)
2313{
2314 switch (rot)
2315 {
2316 case 0: // UP this way: ^
2317 glScissor(cx, cy, cw, ch);
2318 break;
2319 case 90: // UP this way: <
2320 glScissor(gh - (cy + ch), cx, ch, cw);
2321 break;
2322 case 180: // UP this way: v
2323 glScissor(gw - (cx + cw), gh - (cy + ch), cw, ch);
2324 break;
2325 case 270: // UP this way: >
2326 glScissor(cy, gw - (cx + cw), ch, cw);
2327 break;
2328 default: // assume up is up
2329 glScissor(cx, cy, cw, ch);
2330 break;
2331 }
2332}
2333
2334static void
2335shader_array_flush(Evas_Engine_GL_Context *gc)
2336{
2337 int i, gw, gh, setclip, cy, fbo = 0, done = 0;
2338
2339 if (!gc->havestuff) return;
2340 gw = gc->w;
2341 gh = gc->h;
2342 if (!((gc->pipe[0].shader.surface == gc->def_surface) ||
2343 (!gc->pipe[0].shader.surface)))
2344 {
2345 gw = gc->pipe[0].shader.surface->w;
2346 gh = gc->pipe[0].shader.surface->h;
2347 fbo = 1;
2348 }
2349 for (i = 0; i < gc->shared->info.tune.pipes.max; i++)
2350 {
2351 if (gc->pipe[i].array.num <= 0) break;
2352 setclip = 0;
2353 done++;
2354 gc->flushnum++;
2355 GLERR(__FUNCTION__, __FILE__, __LINE__, "<flush err>");
2356 if (gc->pipe[i].shader.cur_prog != gc->state.current.cur_prog)
2357 {
2358 glUseProgram(gc->pipe[i].shader.cur_prog);
2359 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2360 }
2361
2362 if (gc->pipe[i].shader.cur_tex != gc->state.current.cur_tex)
2363 {
2364#if 0
2365 if (gc->pipe[i].shader.cur_tex)
2366 {
2367 glEnable(GL_TEXTURE_2D);
2368 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2369 }
2370 else
2371 {
2372 glDisable(GL_TEXTURE_2D);
2373 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2374 }
2375#endif
2376 glActiveTexture(GL_TEXTURE0);
2377 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2378 glBindTexture(GL_TEXTURE_2D, gc->pipe[i].shader.cur_tex);
2379 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2380 }
2381 if (gc->pipe[i].array.im)
2382 {
2383#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2384 if (gc->pipe[i].array.im->tex->pt->dyn.img)
2385 {
2386 secsym_glEGLImageTargetTexture2DOES
2387 (GL_TEXTURE_2D, gc->pipe[i].array.im->tex->pt->dyn.img);
2388 }
2389 else
2390#endif
2391 {
2392 if (!gc->pipe[i].array.im->native.loose)
2393 {
2394 if (gc->pipe[i].array.im->native.func.bind)
2395 gc->pipe[i].array.im->native.func.bind(gc->pipe[i].array.im->native.func.data,
2396 gc->pipe[i].array.im);
2397 }
2398 }
2399 }
2400 if (gc->pipe[i].shader.render_op != gc->state.current.render_op)
2401 {
2402 switch (gc->pipe[i].shader.render_op)
2403 {
2404 case EVAS_RENDER_BLEND: /**< default op: d = d*(1-sa) + s */
2405 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
2406 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2407 break;
2408 case EVAS_RENDER_COPY: /**< d = s */
2409 gc->pipe[i].shader.blend = 0;
2410 glBlendFunc(GL_ONE, GL_ONE);
2411 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2412 break;
2413 // FIXME: fix blend funcs below!
2414 case EVAS_RENDER_BLEND_REL: /**< d = d*(1 - sa) + s*da */
2415 case EVAS_RENDER_COPY_REL: /**< d = s*da */
2416 case EVAS_RENDER_ADD: /**< d = d + s */
2417 case EVAS_RENDER_ADD_REL: /**< d = d + s*da */
2418 case EVAS_RENDER_SUB: /**< d = d - s */
2419 case EVAS_RENDER_SUB_REL: /**< d = d - s*da */
2420 case EVAS_RENDER_TINT: /**< d = d*s + d*(1 - sa) + s*(1 - da) */
2421 case EVAS_RENDER_TINT_REL: /**< d = d*(1 - sa + s) */
2422 case EVAS_RENDER_MASK: /**< d = d*sa */
2423 case EVAS_RENDER_MUL: /**< d = d*s */
2424 default:
2425 glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
2426 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2427 break;
2428 }
2429 }
2430 if (gc->pipe[i].shader.blend != gc->state.current.blend)
2431 {
2432 if (gc->pipe[i].shader.blend)
2433 {
2434 glEnable(GL_BLEND);
2435 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2436 }
2437 else
2438 {
2439 glDisable(GL_BLEND);
2440 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2441 }
2442 }
2443 if ((gc->pipe[i].shader.smooth != gc->state.current.smooth) ||
2444 (gc->pipe[i].shader.cur_tex != gc->state.current.cur_tex))
2445 {
2446 if (gc->pipe[i].shader.smooth)
2447 {
2448#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
2449 if (shared->info.anisotropic > 0.0)
2450 {
2451 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, shared->info.anisotropic);
2452 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2453 }
2454#endif
2455 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
2456 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2457 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
2458 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2459 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
2460 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2461 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
2462 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2463 }
2464 else
2465 {
2466#ifdef GL_TEXTURE_MAX_ANISOTROPY_EXT
2467 if (shared->info.anisotropic > 0.0)
2468 {
2469 glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0);
2470 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2471 }
2472#endif
2473 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
2474 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2475 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
2476 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2477 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
2478 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2479 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
2480 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2481 }
2482 }
2483 if (gc->pipe[i].shader.clip != gc->state.current.clip)
2484 {
2485
2486 if (gc->pipe[i].shader.clip)
2487 {
2488 cy = gh - gc->pipe[i].shader.cy - gc->pipe[i].shader.ch;
2489 if (fbo) cy = gc->pipe[i].shader.cy;
2490 glEnable(GL_SCISSOR_TEST);
2491 if (!fbo)
2492 scissor_rot(gc, gc->rot, gw, gh,
2493 gc->pipe[i].shader.cx,
2494 cy,
2495 gc->pipe[i].shader.cw,
2496 gc->pipe[i].shader.ch);
2497 else
2498 glScissor(gc->pipe[i].shader.cx, cy,
2499 gc->pipe[i].shader.cw, gc->pipe[i].shader.ch);
2500 setclip = 1;
2501 }
2502 else
2503 {
2504 glDisable(GL_SCISSOR_TEST);
2505 glScissor(0, 0, 0, 0);
2506 }
2507 }
2508 if ((gc->pipe[i].shader.clip) && (!setclip))
2509 {
2510 if ((gc->pipe[i].shader.cx != gc->state.current.cx) ||
2511 (gc->pipe[i].shader.cy != gc->state.current.cy) ||
2512 (gc->pipe[i].shader.cw != gc->state.current.cw) ||
2513 (gc->pipe[i].shader.ch != gc->state.current.ch))
2514 {
2515 cy = gh - gc->pipe[i].shader.cy - gc->pipe[i].shader.ch;
2516 if (fbo) cy = gc->pipe[i].shader.cy;
2517 if (!fbo)
2518 scissor_rot(gc, gc->rot, gw, gh,
2519 gc->pipe[i].shader.cx,
2520 cy,
2521 gc->pipe[i].shader.cw,
2522 gc->pipe[i].shader.ch);
2523 else
2524 glScissor(gc->pipe[i].shader.cx, cy,
2525 gc->pipe[i].shader.cw, gc->pipe[i].shader.ch);
2526 }
2527 }
2528
2529 glVertexAttribPointer(SHAD_VERTEX, 3, GL_SHORT, GL_FALSE, 0, gc->pipe[i].array.vertex);
2530 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2531 glVertexAttribPointer(SHAD_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, gc->pipe[i].array.color);
2532 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2533 if (gc->pipe[i].array.use_texuv)
2534 {
2535 glEnableVertexAttribArray(SHAD_TEXUV);
2536 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2537 glVertexAttribPointer(SHAD_TEXUV, 2, GL_FLOAT, GL_FALSE, 0, gc->pipe[i].array.texuv);
2538 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2539 }
2540 else
2541 {
2542 glDisableVertexAttribArray(SHAD_TEXUV);
2543 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2544 }
2545
2546 if (gc->pipe[i].array.line)
2547 {
2548 glDisableVertexAttribArray(SHAD_TEXUV);
2549 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2550 glDisableVertexAttribArray(SHAD_TEXUV2);
2551 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2552 glDisableVertexAttribArray(SHAD_TEXUV3);
2553 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2554 glDrawArrays(GL_LINES, 0, gc->pipe[i].array.num);
2555 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2556 }
2557 else
2558 {
2559 if (gc->pipe[i].array.use_texm)
2560 {
2561 glEnableVertexAttribArray(SHAD_TEXM);
2562 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2563 glVertexAttribPointer(SHAD_TEXM, 2, GL_FLOAT, GL_FALSE, 0, gc->pipe[i].array.texm);
2564 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2565 glActiveTexture(GL_TEXTURE1);
2566 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2567 glBindTexture(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texm);
2568 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2569 glActiveTexture(GL_TEXTURE0);
2570 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2571 }
2572 else
2573 {
2574 glDisableVertexAttribArray(SHAD_TEXM);
2575 }
2576 if ((gc->pipe[i].array.use_texuv2) && (gc->pipe[i].array.use_texuv3))
2577 {
2578 glEnableVertexAttribArray(SHAD_TEXUV2);
2579 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2580 glEnableVertexAttribArray(SHAD_TEXUV3);
2581 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2582 glVertexAttribPointer(SHAD_TEXUV2, 2, GL_FLOAT, GL_FALSE, 0, gc->pipe[i].array.texuv2);
2583 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2584 glVertexAttribPointer(SHAD_TEXUV3, 2, GL_FLOAT, GL_FALSE, 0, gc->pipe[i].array.texuv3);
2585 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2586
2587 glActiveTexture(GL_TEXTURE1);
2588 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2589 glBindTexture(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texu);
2590 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2591#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2592 if (gc->pipe[i].shader.cur_texu_dyn)
2593 secsym_glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texu_dyn);
2594#endif
2595
2596 glActiveTexture(GL_TEXTURE2);
2597 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2598 glBindTexture(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texv);
2599 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2600#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2601 if (gc->pipe[i].shader.cur_texv_dyn)
2602 secsym_glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texv_dyn);
2603#endif
2604 glActiveTexture(GL_TEXTURE0);
2605 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2606 }
2607 else if (gc->pipe[i].array.use_texuv2)
2608 {
2609 glEnableVertexAttribArray(SHAD_TEXUV2);
2610 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2611 glVertexAttribPointer(SHAD_TEXUV2, 2, GL_FLOAT, GL_FALSE, 0, gc->pipe[i].array.texuv2);
2612 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2613
2614 glActiveTexture(GL_TEXTURE1);
2615 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2616 glBindTexture(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texu);
2617 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2618#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2619 if (gc->pipe[i].shader.cur_texu_dyn)
2620 secsym_glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, gc->pipe[i].shader.cur_texu_dyn);
2621#endif
2622 glActiveTexture(GL_TEXTURE0);
2623 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2624 }
2625 else
2626 {
2627 glDisableVertexAttribArray(SHAD_TEXUV2);
2628 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2629 glDisableVertexAttribArray(SHAD_TEXUV3);
2630 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2631 }
2632 if (dbgflushnum)
2633 {
2634 const char *types[6] =
2635 {"----", "RECT", "IMAG", "FONT", "YUV-", "MAP"};
2636 printf(" DRAW#%3i %4i -> %p[%4ix%4i] @ %4ix%4i -{ tex %4i type %s }-\n",
2637 i,
2638 gc->pipe[i].array.num / 6,
2639 gc->pipe[0].shader.surface,
2640 gc->pipe[0].shader.surface->w,
2641 gc->pipe[0].shader.surface->h,
2642 gw, gh,
2643 gc->pipe[i].shader.cur_tex,
2644 types[gc->pipe[i].region.type]
2645 );
2646 }
2647 glDrawArrays(GL_TRIANGLES, 0, gc->pipe[i].array.num);
2648 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2649 }
2650 if (gc->pipe[i].array.im)
2651 {
2652 if (!gc->pipe[i].array.im->native.loose)
2653 {
2654 if (gc->pipe[i].array.im->native.func.unbind)
2655 gc->pipe[i].array.im->native.func.unbind(gc->pipe[i].array.im->native.func.data,
2656 gc->pipe[i].array.im);
2657 }
2658 gc->pipe[i].array.im = NULL;
2659 }
2660
2661 gc->state.current.cur_prog = gc->pipe[i].shader.cur_prog;
2662 gc->state.current.cur_tex = gc->pipe[i].shader.cur_tex;
2663 gc->state.current.render_op = gc->pipe[i].shader.render_op;
2664 gc->state.current.cx = gc->pipe[i].shader.cx;
2665 gc->state.current.cy = gc->pipe[i].shader.cy;
2666 gc->state.current.cw = gc->pipe[i].shader.cw;
2667 gc->state.current.ch = gc->pipe[i].shader.ch;
2668 gc->state.current.smooth = gc->pipe[i].shader.smooth;
2669 gc->state.current.blend = gc->pipe[i].shader.blend;
2670 gc->state.current.clip = gc->pipe[i].shader.clip;
2671
2672 if (gc->pipe[i].array.vertex) free(gc->pipe[i].array.vertex);
2673 if (gc->pipe[i].array.color) free(gc->pipe[i].array.color);
2674 if (gc->pipe[i].array.texuv) free(gc->pipe[i].array.texuv);
2675 if (gc->pipe[i].array.texm) free(gc->pipe[i].array.texm);
2676 if (gc->pipe[i].array.texuv2) free(gc->pipe[i].array.texuv2);
2677 if (gc->pipe[i].array.texuv3) free(gc->pipe[i].array.texuv3);
2678
2679 gc->pipe[i].array.vertex = NULL;
2680 gc->pipe[i].array.color = NULL;
2681 gc->pipe[i].array.texuv = NULL;
2682 gc->pipe[i].array.texm = NULL;
2683 gc->pipe[i].array.texuv2 = NULL;
2684 gc->pipe[i].array.texuv3 = NULL;
2685
2686 gc->pipe[i].array.num = 0;
2687 gc->pipe[i].array.alloc = 0;
2688
2689 gc->pipe[i].region.x = 0;
2690 gc->pipe[i].region.y = 0;
2691 gc->pipe[i].region.w = 0;
2692 gc->pipe[i].region.h = 0;
2693 gc->pipe[i].region.type = 0;
2694 }
2695 gc->state.top_pipe = 0;
2696 if (dbgflushnum)
2697 {
2698 if (done > 0) printf("DONE (pipes): %i\n", done);
2699 }
2700 gc->havestuff = EINA_FALSE;
2701}
2702
2703Eina_Bool
2704evas_gl_common_module_open(void)
2705{
2706 if (_evas_engine_GL_common_log_dom < 0)
2707 _evas_engine_GL_common_log_dom = eina_log_domain_register
2708 ("evas-gl_common", EVAS_DEFAULT_LOG_COLOR);
2709 if (_evas_engine_GL_common_log_dom < 0)
2710 {
2711 EINA_LOG_ERR("Can not create a module log domain.");
2712 return EINA_FALSE;
2713 }
2714 return EINA_TRUE;
2715}
2716
2717void
2718evas_gl_common_module_close(void)
2719{
2720 if (_evas_engine_GL_common_log_dom < 0) return;
2721 eina_log_domain_unregister(_evas_engine_GL_common_log_dom);
2722 _evas_engine_GL_common_log_dom = -1;
2723}
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_filter.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_filter.c
deleted file mode 100644
index a9d18d8..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_filter.c
+++ /dev/null
@@ -1,181 +0,0 @@
1#include "evas_gl_private.h"
2
3#if 0 // filtering disabled
4void
5evas_gl_common_filter_draw(Evas_Engine_GL_Context *gc, Evas_GL_Image *im, Evas_Filter_Info *filter)
6{
7 RGBA_Draw_Context *dc;
8 GLuint prog;
9 int r,g,b,a;
10 int nomul, bgra;
11
12 dc = gc->dc;
13
14 if (dc->mul.use)
15 {
16 a = (dc->mul.col >> 24) & 0xff;
17 r = (dc->mul.col >> 16) & 0xff;
18 g = (dc->mul.col >> 8 ) & 0xff;
19 b = (dc->mul.col ) & 0xff;
20 }
21 else
22 {
23 r = g = b = a = 255;
24 }
25
26 nomul = (a == 255 && r == 255 && g == 255 && b == 255) ? 1 : 0;
27 bgra = (gc->shared->info.bgra) ? 1 : 0;
28
29 /* FIXME: This should so be a table */
30#if 0
31 if (filter->filter == EVAS_FILTER_BLUR)
32 {
33 if (bgra)
34 {
35 if (nomul)
36 prog = gc->shared->shader.filter_blur_bgra_nomul.prog;
37 else
38 prog = gc->shared->shader.filter_blur_bgra.prog;
39 }
40 else
41 {
42 if (a == 255 && r == 255 && g == 255 && b == 255)
43 prog = gc->shared->shader.filter_blur_nomul.prog;
44 else
45 prog = gc->shared->shader.filter_blur.prog;
46 }
47 }
48 else
49#endif
50 if (filter->filter == EVAS_FILTER_INVERT)
51 {
52 if (bgra)
53 {
54 if (nomul)
55 prog = gc->shared->shader.filter_invert_bgra_nomul.prog;
56 else
57 prog = gc->shared->shader.filter_invert_bgra.prog;
58 }
59 else
60 {
61 if (a == 255 && r == 255 && g == 255 && b == 255)
62 prog = gc->shared->shader.filter_invert_nomul.prog;
63 else
64 prog = gc->shared->shader.filter_invert.prog;
65 }
66 }
67 else if (filter->filter == EVAS_FILTER_SEPIA)
68 {
69 if (bgra)
70 {
71 if (nomul)
72 prog = gc->shared->shader.filter_sepia_bgra_nomul.prog;
73 else
74 prog = gc->shared->shader.filter_sepia_bgra.prog;
75 }
76 else
77 {
78 if (nomul)
79 prog = gc->shared->shader.filter_sepia_nomul.prog;
80 else
81 prog = gc->shared->shader.filter_sepia.prog;
82 }
83
84 }
85 else /*if (filter->filter == EVAS_FILTER_GREYSCALE)*/
86 {
87 printf("BGRA: %s Nomul: %s\n",bgra?"true":"false",nomul?"nomul":"mul");
88 if (bgra)
89 {
90 if (nomul)
91 prog = gc->shared->shader.filter_greyscale_bgra_nomul.prog;
92 else
93 prog = gc->shared->shader.filter_greyscale_bgra.prog;
94 }
95 else
96 {
97 if (nomul)
98 prog = gc->shared->shader.filter_greyscale_nomul.prog;
99 else
100 prog = gc->shared->shader.filter_greyscale.prog;
101 }
102
103 }
104
105 printf("Prog: %d %d %d\n",prog,im->w,im->h);
106 gc->filter_prog = prog;
107 evas_gl_common_image_update(gc, im);
108 evas_gl_common_context_image_push(gc, im->tex, 0, 0, im->w, im->h,
109 0, 0, im->w, im->h,
110 r,g,b,a,
111 1, im->tex_only);
112 gc->filter_prog = 0;
113}
114
115
116Filtered_Image *
117evas_gl_common_image_filtered_get(Evas_GL_Image *im, uint8_t *key, size_t len)
118{
119 Filtered_Image *fi;
120 Eina_List *l;
121
122 for (l = im->filtered ; l ; l = l->next)
123 {
124 fi = l->data;
125 if (fi->keylen != len) continue;
126 if (memcmp(key, fi->key, len) != 0) continue;
127 fi->ref ++;
128 return fi;
129 }
130
131 return NULL;
132}
133
134Filtered_Image *
135evas_gl_common_image_filtered_save(Evas_GL_Image *im, Evas_GL_Image *fimage,
136 uint8_t *key, size_t keylen)
137{
138 Filtered_Image *fi;
139 Eina_List *l;
140
141 for (l = im->filtered ; l ; l = l->next)
142 {
143 fi = l->data;
144 if (fi->keylen != keylen) continue;
145 if (memcmp(key, fi->key, keylen) != 0) continue;
146
147 fi->image = (void *)fimage;
148 fi->ref ++;
149 return fi;
150 }
151
152 fi = calloc(1,sizeof(Filtered_Image));
153 if (!fi) return NULL;
154
155 fi->keylen = keylen;
156 fi->key = malloc(keylen);
157 memcpy(fi->key, key, keylen);
158 fi->image = (void *)fimage;
159 fi->ref = 1;
160
161 im->filtered = eina_list_prepend(im->filtered, fi);
162
163 return fi;
164}
165
166void
167evas_gl_common_image_filtered_free(Evas_GL_Image *image, Filtered_Image *fi)
168{
169 fi->ref --;
170 if (fi->ref) return;
171
172 free(fi->key);
173 evas_gl_common_image_free((void *)fi->image);
174 fi->image = NULL;
175
176 image->filtered = eina_list_remove(image->filtered, fi);
177}
178#endif
179
180
181/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_font.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_font.c
deleted file mode 100644
index e5f3a4a..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_font.c
+++ /dev/null
@@ -1,203 +0,0 @@
1#include "evas_gl_private.h"
2
3void *
4evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg)
5{
6 Evas_Engine_GL_Context *gc = context;
7 Evas_GL_Texture *tex;
8 DATA8 *data;
9 int w, h, j, nw;
10 DATA8 *ndata;
11 int fh;
12
13 if (fg->ext_dat) return fg->ext_dat; // FIXME: one engine at a time can do this :(
14
15 w = fg->glyph_out->bitmap.width;
16 h = fg->glyph_out->bitmap.rows;
17 if ((w == 0) || (h == 0)) return NULL;
18
19 data = fg->glyph_out->bitmap.buffer;
20 j = fg->glyph_out->bitmap.pitch;
21 if (j < w) j = w;
22
23 nw = ((w + 3) / 4) * 4;
24 ndata = alloca(nw *h);
25 if (!ndata) return NULL;
26 if (fg->glyph_out->bitmap.num_grays == 256)
27 {
28 int x, y;
29 DATA8 *p1, *p2;
30
31 for (y = 0; y < h; y++)
32 {
33 p1 = data + (j * y);
34 p2 = ndata + (nw * y);
35 for (x = 0; x < w; x++)
36 {
37 *p2 = *p1;
38 p1++;
39 p2++;
40 }
41 }
42 }
43 else if (fg->glyph_out->bitmap.num_grays == 0)
44 {
45 DATA8 *tmpbuf = NULL, *dp, *tp, bits;
46 int bi, bj, end;
47 const DATA8 bitrepl[2] = {0x0, 0xff};
48
49 tmpbuf = alloca(w);
50 if (tmpbuf)
51 {
52 int x, y;
53 DATA8 *p1, *p2;
54
55 for (y = 0; y < h; y++)
56 {
57 p1 = tmpbuf;
58 p2 = ndata + (nw * y);
59 tp = tmpbuf;
60 dp = data + (y * fg->glyph_out->bitmap.pitch);
61 for (bi = 0; bi < w; bi += 8)
62 {
63 bits = *dp;
64 if ((w - bi) < 8) end = w - bi;
65 else end = 8;
66 for (bj = 0; bj < end; bj++)
67 {
68 *tp = bitrepl[(bits >> (7 - bj)) & 0x1];
69 tp++;
70 }
71 dp++;
72 }
73 for (x = 0; x < w; x++)
74 {
75 *p2 = *p1;
76 p1++;
77 p2++;
78 }
79 }
80 }
81 }
82// fh = h;
83 fh = fg->fi->max_h;
84 tex = evas_gl_common_texture_alpha_new(gc, ndata, w, h, fh);
85 tex->sx1 = ((double)(tex->x)) / (double)tex->pt->w;
86 tex->sy1 = ((double)(tex->y)) / (double)tex->pt->h;
87 tex->sx2 = ((double)(tex->x + tex->w)) / (double)tex->pt->w;
88 tex->sy2 = ((double)(tex->y + tex->h)) / (double)tex->pt->h;
89 return tex;
90}
91
92void
93evas_gl_font_texture_free(void *tex)
94{
95 if (!tex) return;
96 evas_gl_common_texture_free(tex);
97}
98
99void
100evas_gl_font_texture_draw(void *context, void *surface __UNUSED__, void *draw_context, RGBA_Font_Glyph *fg, int x, int y)
101{
102 Evas_Engine_GL_Context *gc = context;
103 RGBA_Draw_Context *dc = draw_context;
104 Evas_GL_Texture *tex;
105 Cutout_Rects *rects;
106 Cutout_Rect *rct;
107 int r, g, b, a;
108 double ssx, ssy, ssw, ssh;
109 int c, cx, cy, cw, ch;
110 int i;
111 int sx, sy, sw, sh;
112
113 if (dc != gc->dc) return;
114 tex = fg->ext_dat;
115 if (!tex) return;
116 a = (dc->col.col >> 24) & 0xff;
117 if (a == 0) return;
118 r = (dc->col.col >> 16) & 0xff;
119 g = (dc->col.col >> 8 ) & 0xff;
120 b = (dc->col.col ) & 0xff;
121 sx = 0; sy = 0; sw = tex->w, sh = tex->h;
122 if ((!gc->dc->cutout.rects) ||
123 ((gc->shared->info.tune.cutout.max > 0) &&
124 (gc->dc->cutout.active > gc->shared->info.tune.cutout.max)))
125 {
126 if (gc->dc->clip.use)
127 {
128 int nx, ny, nw, nh;
129
130 nx = x; ny = y; nw = tex->w; nh = tex->h;
131 RECTS_CLIP_TO_RECT(nx, ny, nw, nh,
132 gc->dc->clip.x, gc->dc->clip.y,
133 gc->dc->clip.w, gc->dc->clip.h);
134 if ((nw < 1) || (nh < 1)) return;
135 if ((nx == x) && (ny == y) && (nw == tex->w) && (nh == tex->h))
136 {
137 evas_gl_common_context_font_push(gc, tex,
138 0.0, 0.0, 0.0, 0.0,
139// sx, sy, sw, sh,
140 x, y, tex->w, tex->h,
141 r, g, b, a);
142 return;
143 }
144 ssx = (double)sx + ((double)(sw * (nx - x)) / (double)(tex->w));
145 ssy = (double)sy + ((double)(sh * (ny - y)) / (double)(tex->h));
146 ssw = ((double)sw * (double)(nw)) / (double)(tex->w);
147 ssh = ((double)sh * (double)(nh)) / (double)(tex->h);
148 evas_gl_common_context_font_push(gc, tex,
149 ssx, ssy, ssw, ssh,
150 nx, ny, nw, nh,
151 r, g, b, a);
152 }
153 else
154 {
155 evas_gl_common_context_font_push(gc, tex,
156 0.0, 0.0, 0.0, 0.0,
157// sx, sy, sw, sh,
158 x, y, tex->w, tex->h,
159 r, g, b, a);
160 }
161 return;
162 }
163 /* save out clip info */
164 c = gc->dc->clip.use; cx = gc->dc->clip.x; cy = gc->dc->clip.y; cw = gc->dc->clip.w; ch = gc->dc->clip.h;
165 evas_common_draw_context_clip_clip(gc->dc, 0, 0, gc->w, gc->h);
166 evas_common_draw_context_clip_clip(gc->dc, x, y, tex->w, tex->h);
167 /* our clip is 0 size.. abort */
168 if ((gc->dc->clip.w <= 0) || (gc->dc->clip.h <= 0))
169 {
170 gc->dc->clip.use = c; gc->dc->clip.x = cx; gc->dc->clip.y = cy; gc->dc->clip.w = cw; gc->dc->clip.h = ch;
171 return;
172 }
173 rects = evas_common_draw_context_apply_cutouts(dc);
174 for (i = 0; i < rects->active; ++i)
175 {
176 int nx, ny, nw, nh;
177
178 rct = rects->rects + i;
179 nx = x; ny = y; nw = tex->w; nh = tex->h;
180 RECTS_CLIP_TO_RECT(nx, ny, nw, nh, rct->x, rct->y, rct->w, rct->h);
181 if ((nw < 1) || (nh < 1)) continue;
182 if ((nx == x) && (ny == y) && (nw == tex->w) && (nh == tex->h))
183 {
184 evas_gl_common_context_font_push(gc, tex,
185 0.0, 0.0, 0.0, 0.0,
186// sx, sy, sw, sh,
187 x, y, tex->w, tex->h,
188 r, g, b, a);
189 continue;
190 }
191 ssx = (double)sx + ((double)(sw * (nx - x)) / (double)(tex->w));
192 ssy = (double)sy + ((double)(sh * (ny - y)) / (double)(tex->h));
193 ssw = ((double)sw * (double)(nw)) / (double)(tex->w);
194 ssh = ((double)sh * (double)(nh)) / (double)(tex->h);
195 evas_gl_common_context_font_push(gc, tex,
196 ssx, ssy, ssw, ssh,
197 nx, ny, nw, nh,
198 r, g, b, a);
199 }
200 evas_common_draw_context_apply_clear_cutouts(rects);
201 /* restore clip info */
202 gc->dc->clip.use = c; gc->dc->clip.x = cx; gc->dc->clip.y = cy; gc->dc->clip.w = cw; gc->dc->clip.h = ch;
203}
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_image.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_image.c
deleted file mode 100644
index 1d4b1f8..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_image.c
+++ /dev/null
@@ -1,968 +0,0 @@
1#include "evas_gl_private.h"
2
3void
4evas_gl_common_image_all_unload(Evas_Engine_GL_Context *gc)
5{
6 Eina_List *l;
7 Evas_GL_Image *im;
8
9 EINA_LIST_FOREACH(gc->shared->images, l, im)
10 {
11 if (im->im) evas_cache_image_unload_data(&im->im->cache_entry);
12 if (im->tex)
13 {
14 if (!im->tex->pt->dyn.img)
15 {
16 evas_gl_common_texture_free(im->tex);
17 im->tex = NULL;
18 }
19 }
20 }
21}
22
23static void
24_evas_gl_image_cache_trim(Evas_Engine_GL_Context *gc)
25{
26 int size = evas_common_image_get_cache();
27
28 while (gc->shared->images_size > size)
29 {
30 Evas_GL_Image *im2;
31 Eina_List *l = NULL;
32
33 EINA_LIST_REVERSE_FOREACH(gc->shared->images, l, im2)
34 {
35 if (im2->references == 0)
36 {
37 im2->cached = 0;
38 im2->gc->shared->images =
39 eina_list_remove_list(im2->gc->shared->images, l);
40 im2->gc->shared->images_size -= (im2->csize);
41 evas_gl_common_image_free(im2);
42 l = NULL;
43 break;
44 }
45 }
46 if ((gc->shared->images_size > size) && (l))
47 {
48// printf("EEK %i > %i, no 0 ref imgs\n",
49// gc->shared->images_size, size);
50 break;
51 }
52 if (!gc->shared->images)
53 {
54// printf("EEK %i > %i, no imgs\n",
55// gc->shared->images_size, size);
56 break;
57 }
58 }
59}
60
61static Eina_Bool
62_evas_gl_image_cache_add(Evas_GL_Image *im)
63{
64 if (im->references == 0)
65 {
66 im->csize = im->w * im->h * 4;
67 im->gc->shared->images_size += im->csize;
68 _evas_gl_image_cache_trim(im->gc);
69 return EINA_TRUE;
70 }
71 else
72 {
73 im->gc->shared->images = eina_list_remove(im->gc->shared->images, im);
74 im->cached = 0;
75 }
76 return EINA_FALSE;
77}
78
79void
80evas_gl_common_image_ref(Evas_GL_Image *im)
81{
82 if (im->references == 0)
83 {
84 im->gc->shared->images_size -= (im->csize);
85 }
86 im->references++;
87}
88
89void
90evas_gl_common_image_unref(Evas_GL_Image *im)
91{
92 im->references--;
93 if (im->references == 0)
94 {
95 _evas_gl_image_cache_add(im);
96 }
97}
98
99Evas_GL_Image *
100evas_gl_common_image_load(Evas_Engine_GL_Context *gc, const char *file, const char *key, Evas_Image_Load_Opts *lo, int *error)
101{
102 Evas_GL_Image *im;
103 RGBA_Image *im_im;
104 Eina_List *l;
105
106 im_im = evas_common_load_image_from_file(file, key, lo, error);
107 if (!im_im) return NULL;
108
109 /* i'd LOVe to do this, but we can't because we load to load header
110 * to get image size to know if its too big or not! so this disallows
111 * us to know that - photocam thus suffers
112 if (((int)im_im->cache_entry.w > gc->shared->info.max_texture_size) ||
113 ((int)im_im->cache_entry.h > gc->shared->info.max_texture_size))
114 {
115 evas_cache_image_drop(&(im_im->cache_entry));
116 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
117 return NULL;
118 }
119 */
120
121 // FIXME: keep unreffed shared images around
122 EINA_LIST_FOREACH(gc->shared->images, l, im)
123 {
124 if (im->im == im_im)
125 {
126// why did i put this here? i think to free the rgba pixel data once a texture
127// exists.
128// evas_cache_image_drop(&(im_im->cache_entry));
129 gc->shared->images = eina_list_remove_list(gc->shared->images, l);
130 gc->shared->images = eina_list_prepend(gc->shared->images, im);
131 evas_gl_common_image_ref(im);
132 *error = EVAS_LOAD_ERROR_NONE;
133 return im;
134 }
135 }
136
137 im = calloc(1, sizeof(Evas_GL_Image));
138 if (!im)
139 {
140 evas_cache_image_drop(&(im_im->cache_entry));
141 *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
142 return NULL;
143 }
144 im->references = 1;
145 im->im = im_im;
146 im->gc = gc;
147 im->cached = 1;
148 im->cs.space = EVAS_COLORSPACE_ARGB8888;
149 im->alpha = im->im->cache_entry.flags.alpha;
150 im->w = im->im->cache_entry.w;
151 im->h = im->im->cache_entry.h;
152 if (lo) im->load_opts = *lo;
153 gc->shared->images = eina_list_prepend(gc->shared->images, im);
154 return im;
155}
156
157Evas_GL_Image *
158evas_gl_common_image_new_from_data(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, DATA32 *data, int alpha, int cspace)
159{
160 Evas_GL_Image *im;
161 Eina_List *l;
162
163 if (((int)w > gc->shared->info.max_texture_size) ||
164 ((int)h > gc->shared->info.max_texture_size))
165 return NULL;
166
167 if (data)
168 {
169 EINA_LIST_FOREACH(gc->shared->images, l, im)
170 {
171 if (((void *)(im->im->image.data) == (void *)data) &&
172 (im->im->cache_entry.w == w) &&
173 (im->im->cache_entry.h == h))
174 {
175 gc->shared->images = eina_list_remove_list(gc->shared->images, l);
176 gc->shared->images = eina_list_prepend(gc->shared->images, im);
177 evas_gl_common_image_ref(im);
178 return im;
179 }
180 }
181 }
182 im = calloc(1, sizeof(Evas_GL_Image));
183 if (!im) return NULL;
184 im->references = 1;
185 im->im = (RGBA_Image *) evas_cache_image_data(evas_common_image_cache_get(),
186 w, h, data, alpha, cspace);
187 if (!im->im)
188 {
189 free(im);
190 return NULL;
191 }
192 im->gc = gc;
193 im->cs.space = cspace;
194 im->alpha = im->im->cache_entry.flags.alpha;
195 im->w = im->im->cache_entry.w;
196 im->h = im->im->cache_entry.h;
197 switch (cspace)
198 {
199 case EVAS_COLORSPACE_ARGB8888:
200 break;
201 case EVAS_COLORSPACE_YCBCR422P601_PL:
202 case EVAS_COLORSPACE_YCBCR422P709_PL:
203 if (im->tex) evas_gl_common_texture_free(im->tex);
204 im->tex = NULL;
205 im->cs.data = data;
206 im->cs.no_free = 1;
207 break;
208 default:
209 abort();
210 break;
211 }
212 return im;
213}
214
215Evas_GL_Image *
216evas_gl_common_image_new_from_copied_data(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, DATA32 *data, int alpha, int cspace)
217{
218 Evas_GL_Image *im;
219
220 if (((int)w > gc->shared->info.max_texture_size) ||
221 ((int)h > gc->shared->info.max_texture_size))
222 return NULL;
223
224 im = calloc(1, sizeof(Evas_GL_Image));
225 if (!im) return NULL;
226 im->references = 1;
227 im->im = (RGBA_Image *) evas_cache_image_copied_data(evas_common_image_cache_get(),
228 w, h, data, alpha, cspace);
229 if (!im->im)
230 {
231 free(im);
232 return NULL;
233 }
234 im->gc = gc;
235 im->cs.space = cspace;
236 im->alpha = im->im->cache_entry.flags.alpha;
237 im->w = im->im->cache_entry.w;
238 im->h = im->im->cache_entry.h;
239 switch (cspace)
240 {
241 case EVAS_COLORSPACE_ARGB8888:
242 break;
243 case EVAS_COLORSPACE_YCBCR422P601_PL:
244 case EVAS_COLORSPACE_YCBCR422P709_PL:
245 if (im->tex) evas_gl_common_texture_free(im->tex);
246 im->tex = NULL;
247 im->cs.no_free = 0;
248 if (im->im->cache_entry.h > 0)
249 im->cs.data = calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
250 if ((data) && (im->cs.data))
251 memcpy(im->cs.data, data, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
252 break;
253 default:
254 abort();
255 break;
256 }
257 return im;
258}
259
260Evas_GL_Image *
261evas_gl_common_image_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha, int cspace)
262{
263 Evas_GL_Image *im;
264
265 if (((int)w > gc->shared->info.max_texture_size) ||
266 ((int)h > gc->shared->info.max_texture_size))
267 return NULL;
268
269 im = calloc(1, sizeof(Evas_GL_Image));
270 if (!im) return NULL;
271 im->references = 1;
272 im->im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
273 if (!im->im)
274 {
275 free(im);
276 return NULL;
277 }
278 im->gc = gc;
279 im->im->cache_entry.flags.alpha = alpha ? 1 : 0;
280 im->cs.space = cspace;
281 im->alpha = im->im->cache_entry.flags.alpha;
282 im->im->cache_entry.w = w;
283 im->im->cache_entry.h = h;
284 im->w = im->im->cache_entry.w;
285 im->h = im->im->cache_entry.h;
286 evas_cache_image_colorspace(&im->im->cache_entry, cspace);
287 im->im = (RGBA_Image *)evas_cache_image_size_set(&im->im->cache_entry, w, h);
288 switch (cspace)
289 {
290 case EVAS_COLORSPACE_ARGB8888:
291 break;
292 case EVAS_COLORSPACE_YCBCR422P601_PL:
293 case EVAS_COLORSPACE_YCBCR422P709_PL:
294 case EVAS_COLORSPACE_YCBCR422601_PL:
295 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
296 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
297// if (im->tex) evas_gl_common_texture_free(im->tex);
298 im->tex = NULL;
299 im->cs.no_free = 0;
300 if (im->im->cache_entry.h > 0)
301 im->cs.data = calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
302 break;
303 default:
304 abort();
305 break;
306 }
307 return im;
308}
309
310Evas_GL_Image *
311evas_gl_common_image_alpha_set(Evas_GL_Image *im, int alpha)
312{
313 if (!im) return NULL;
314 if (im->alpha == alpha) return im;
315 im->alpha = alpha;
316 if (!im->im) return im;
317 im->im->cache_entry.flags.alpha = alpha ? 1 : 0;
318 if (im->tex)
319 {
320 evas_gl_common_texture_free(im->tex);
321 im->tex = NULL;
322 }
323 if (!im->tex)
324 im->tex = evas_gl_common_texture_new(im->gc, im->im);
325 return im;
326}
327
328void
329evas_gl_common_image_native_enable(Evas_GL_Image *im)
330{
331 if (im->cs.data)
332 {
333 if (!im->cs.no_free) free(im->cs.data);
334 im->cs.data = NULL;
335 }
336 im->cs.no_free = 0;
337 if (im->cached)
338 {
339 if (im->references == 0)
340 im->gc->shared->images_size -= (im->csize);
341 im->gc->shared->images = eina_list_remove(im->gc->shared->images, im);
342 im->cached = 0;
343 }
344 if (im->im)
345 {
346 evas_cache_image_drop(&im->im->cache_entry);
347 im->im = NULL;
348 }
349 if (im->tex)
350 {
351 evas_gl_common_texture_free(im->tex);
352 im->tex = NULL;
353 }
354
355 im->cs.space = EVAS_COLORSPACE_ARGB8888;
356 im->tex = evas_gl_common_texture_native_new(im->gc, im->w, im->h, im->alpha, im);
357 im->tex_only = 1;
358}
359
360void
361evas_gl_common_image_native_disable(Evas_GL_Image *im)
362{
363 if (im->im)
364 {
365 evas_cache_image_drop(&im->im->cache_entry);
366 im->im = NULL;
367 }
368 if (im->tex)
369 {
370 evas_gl_common_texture_free(im->tex);
371 im->tex = NULL;
372 }
373 im->tex_only = 0;
374
375 im->im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
376 im->im->cache_entry.flags.alpha = im->alpha;
377 im->cs.space = EVAS_COLORSPACE_ARGB8888;
378 evas_cache_image_colorspace(&im->im->cache_entry, im->cs.space);
379 im->im = (RGBA_Image *)evas_cache_image_size_set(&im->im->cache_entry, im->w, im->h);
380 if (!im->tex)
381 im->tex = evas_gl_common_texture_new(im->gc, im->im);
382}
383
384void
385evas_gl_common_image_scale_hint_set(Evas_GL_Image *im, int hint)
386{
387 im->scale_hint = hint;
388 // FIXME: take advantage of this even in gl (eg if image is
389 // 1600x1200 but we always use it at 800x600 or even less - drop
390 // the texture res down for "non dynamic" stuff to save memory)
391}
392
393void
394evas_gl_common_image_content_hint_set(Evas_GL_Image *im, int hint)
395{
396 if (im->content_hint == hint) return;
397 im->content_hint = hint;
398 if (!im->gc) return;
399 if (!im->gc->shared->info.sec_image_map) return;
400 if (!im->gc->shared->info.bgra) return;
401 // does not handle yuv yet.
402 if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return;
403 if (im->content_hint == EVAS_IMAGE_CONTENT_HINT_DYNAMIC)
404 {
405 if (im->cs.data)
406 {
407 if (!im->cs.no_free) free(im->cs.data);
408 im->cs.data = NULL;
409 }
410 im->cs.no_free = 0;
411 if (im->cached)
412 {
413 if (im->references == 0)
414 im->gc->shared->images_size -= im->csize;
415 im->gc->shared->images = eina_list_remove(im->gc->shared->images, im);
416 im->cached = 0;
417 }
418 if (im->im)
419 {
420 evas_cache_image_drop(&im->im->cache_entry);
421 im->im = NULL;
422 }
423 if (im->tex)
424 {
425 evas_gl_common_texture_free(im->tex);
426 im->tex = NULL;
427 }
428 im->tex = evas_gl_common_texture_dynamic_new(im->gc, im);
429 im->tex_only = 1;
430 }
431 else
432 {
433 if (im->im)
434 {
435 evas_cache_image_drop(&im->im->cache_entry);
436 im->im = NULL;
437 }
438 if (im->tex)
439 {
440 evas_gl_common_texture_free(im->tex);
441 im->tex = NULL;
442 }
443 im->tex_only = 0;
444
445 im->im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
446 im->im->cache_entry.flags.alpha = im->alpha;
447 im->cs.space = EVAS_COLORSPACE_ARGB8888;
448 evas_cache_image_colorspace(&im->im->cache_entry, im->cs.space);
449 im->im = (RGBA_Image *)evas_cache_image_size_set(&im->im->cache_entry, im->w, im->h);
450 if (!im->tex)
451 im->tex = evas_gl_common_texture_new(im->gc, im->im);
452 }
453}
454
455void
456evas_gl_common_image_cache_flush(Evas_Engine_GL_Context *gc)
457{
458 _evas_gl_image_cache_trim(gc);
459}
460
461void
462evas_gl_common_image_free(Evas_GL_Image *im)
463{
464#if 0 // filtering disabled
465 Filtered_Image *fi;
466#endif
467
468 evas_gl_common_context_flush(im->gc);
469 im->references--;
470 if (im->references > 0) return;
471
472 if (im->native.func.free)
473 im->native.func.free(im->native.func.data, im);
474
475 if (im->cs.data)
476 {
477 if (!im->cs.no_free) free(im->cs.data);
478 }
479 if (im->cached)
480 {
481 if (_evas_gl_image_cache_add(im)) return;
482 }
483 if (im->im) evas_cache_image_drop(&im->im->cache_entry);
484 if (im->tex) evas_gl_common_texture_free(im->tex);
485
486#if 0 // filtering disabled
487 EINA_LIST_FREE(im->filtered, fi)
488 {
489 free(fi->key);
490 evas_gl_common_image_free((Evas_GL_Image *)fi->image);
491 free(fi);
492 }
493#endif
494
495 free(im);
496}
497
498Evas_GL_Image *
499evas_gl_common_image_surface_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha)
500{
501 Evas_GL_Image *im;
502
503 if (((int)w > gc->shared->info.max_texture_size) ||
504 ((int)h > gc->shared->info.max_texture_size))
505 return NULL;
506
507 im = calloc(1, sizeof(Evas_GL_Image));
508 if (!im) return NULL;
509 im->references = 1;
510 im->gc = gc;
511 im->cs.space = EVAS_COLORSPACE_ARGB8888;
512 im->alpha = alpha;
513 im->w = w;
514 im->h = h;
515 im->tex = evas_gl_common_texture_render_new(gc, w, h, alpha);
516 im->tex_only = 1;
517 return im;
518}
519
520void
521evas_gl_common_image_dirty(Evas_GL_Image *im, unsigned int x, unsigned int y, unsigned int w, unsigned int h)
522{
523 if ((w == 0) && (h == 0) && (x == 0) && (y == 0))
524 {
525 w = im->w;
526 h = im->h;
527 }
528 if (im->im)
529 {
530 im->im = (RGBA_Image *)evas_cache_image_dirty(&im->im->cache_entry, x, y, w, h);
531 }
532 im->dirty = 1;
533}
534
535void
536evas_gl_common_image_update(Evas_Engine_GL_Context *gc, Evas_GL_Image *im)
537{
538 Image_Entry *ie;
539 if (!im->im) return;
540 ie = (Image_Entry *)(im->im);
541/*
542 if ((im->cs.space == EVAS_COLORSPACE_YCBCR422P601_PL) ||
543 (im->cs.space == EVAS_COLORSPACE_YCBCR422P709_PL))
544 {
545 // SOFTWARE convert. do multi texture later
546 if ((im->cs.data) && (*((unsigned char **)im->cs.data)))
547 {
548 if (im->dirty || !im->im->image.data)
549 {
550 free(im->im->image.data);
551 im->im->image.data = malloc(im->im->cache_entry.w * im->im->cache_entry.h * sizeof(DATA32));
552 if (im->im->image.data)
553 evas_common_convert_yuv_420p_601_rgba(im->cs.data,
554 (void *)im->im->image.data,
555 im->im->cache_entry.w, im->im->cache_entry.h);
556 }
557 }
558 space = EVAS_COLORSPACE_ARGB8888;
559 }
560 else
561 */
562 switch (im->cs.space)
563 {
564 case EVAS_COLORSPACE_ARGB8888:
565 if ((im->tex) &&
566 ((im->dirty) || (ie->flags.animated)))
567 {
568 evas_cache_image_load_data(&im->im->cache_entry);
569 evas_gl_common_texture_update(im->tex, im->im);
570 evas_cache_image_unload_data(&im->im->cache_entry);
571 }
572 if (!im->tex)
573 {
574 evas_cache_image_load_data(&im->im->cache_entry);
575 im->tex = evas_gl_common_texture_new(gc, im->im);
576 evas_cache_image_unload_data(&im->im->cache_entry);
577 }
578 im->dirty = 0;
579 if (!im->tex) return;
580 break;
581 case EVAS_COLORSPACE_YCBCR422P601_PL:
582 case EVAS_COLORSPACE_YCBCR422P709_PL:
583 if ((im->tex) && (im->dirty))
584 {
585 evas_gl_common_texture_yuv_update(im->tex, im->cs.data,
586 im->im->cache_entry.w,
587 im->im->cache_entry.h);
588 im->dirty = 0;
589 }
590 if ((!im->tex) && (im->cs.data) && (*((unsigned char **)im->cs.data)))
591 {
592 im->tex = evas_gl_common_texture_yuv_new(gc, im->cs.data,
593 im->im->cache_entry.w,
594 im->im->cache_entry.h);
595 im->dirty = 0;
596 }
597 if (!im->tex) return;
598 break;
599 case EVAS_COLORSPACE_YCBCR422601_PL:
600 if ((im->tex) && (im->dirty))
601 {
602 evas_gl_common_texture_yuy2_update(im->tex, im->cs.data,
603 im->im->cache_entry.w,
604 im->im->cache_entry.h);
605 im->dirty = 0;
606 }
607 if ((!im->tex) && (im->cs.data) && (*((unsigned char **)im->cs.data)))
608 {
609 im->tex = evas_gl_common_texture_yuy2_new(gc, im->cs.data,
610 im->im->cache_entry.w,
611 im->im->cache_entry.h);
612 im->dirty = 0;
613 }
614 if (!im->tex) return;
615 break;
616 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
617 if ((im->tex) && (im->dirty))
618 {
619 evas_gl_common_texture_nv12_update(im->tex, im->cs.data,
620 im->im->cache_entry.w,
621 im->im->cache_entry.h);
622 im->dirty = 0;
623 }
624 if ((!im->tex) && (im->cs.data) && (*((unsigned char **)im->cs.data)))
625 {
626 im->tex = evas_gl_common_texture_nv12_new(gc, im->cs.data,
627 im->im->cache_entry.w,
628 im->im->cache_entry.h);
629 im->dirty = 0;
630 }
631 if (!im->tex) return;
632 break;
633 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
634 if ((im->tex) && (im->dirty))
635 {
636 evas_gl_common_texture_nv12tiled_update(im->tex, im->cs.data,
637 im->im->cache_entry.w,
638 im->im->cache_entry.h);
639 im->dirty = 0;
640 }
641 if ((!im->tex) && (im->cs.data) && (*((unsigned char **)im->cs.data)))
642 {
643 im->tex = evas_gl_common_texture_nv12tiled_new(gc, im->cs.data,
644 im->im->cache_entry.w,
645 im->im->cache_entry.h);
646 im->dirty = 0;
647 }
648 if (!im->tex) return;
649 break;
650 default:
651 ERR("unhandled img format colorspace=%d", im->cs.space);
652 break;
653 }
654}
655
656void
657evas_gl_common_image_map_draw(Evas_Engine_GL_Context *gc, Evas_GL_Image *im,
658 int npoints, RGBA_Map_Point *p, int smooth, int level __UNUSED__)
659{
660 RGBA_Draw_Context *dc;
661 int r, g, b, a;
662 int c, cx, cy, cw, ch;
663
664 dc = gc->dc;
665 if (dc->mul.use)
666 {
667 a = (dc->mul.col >> 24) & 0xff;
668 r = (dc->mul.col >> 16) & 0xff;
669 g = (dc->mul.col >> 8 ) & 0xff;
670 b = (dc->mul.col ) & 0xff;
671 }
672 else
673 {
674 r = g = b = a = 255;
675 }
676
677 evas_gl_common_image_update(gc, im);
678
679 c = gc->dc->clip.use;
680 cx = gc->dc->clip.x; cy = gc->dc->clip.y;
681 cw = gc->dc->clip.w; ch = gc->dc->clip.h;
682 im->tex->im = im;
683
684 evas_gl_common_context_image_map_push(gc, im->tex, npoints, p,
685 c, cx, cy, cw, ch,
686 r, g, b, a, smooth, im->tex_only,
687 im->cs.space);
688}
689
690void
691evas_gl_common_image_draw(Evas_Engine_GL_Context *gc, Evas_GL_Image *im, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int smooth)
692{
693 RGBA_Draw_Context *dc;
694 Evas_GL_Image *imm;
695 int r, g, b, a;
696 double ssx, ssy, ssw, ssh;
697 double mssx, mssy, mssw, mssh;
698 Cutout_Rects *rects;
699 Cutout_Rect *rct;
700 int c, cx, cy, cw, ch;
701 int i;
702 int yuv = 0;
703 int yuy2 = 0;
704 int nv12 = 0;
705
706 if (sw < 1) sw = 1;
707 if (sh < 1) sh = 1;
708 dc = gc->dc;
709 imm = (Evas_GL_Image *)dc->mask.mask;
710 if (dc->mul.use)
711 {
712 a = (dc->mul.col >> 24) & 0xff;
713 r = (dc->mul.col >> 16) & 0xff;
714 g = (dc->mul.col >> 8 ) & 0xff;
715 b = (dc->mul.col ) & 0xff;
716 }
717 else
718 {
719 r = g = b = a = 255;
720 }
721
722 evas_gl_common_image_update(gc, im);
723 if (!im->tex)
724 {
725 evas_gl_common_rect_draw(gc, dx, dy, dw, dh);
726 return;
727 }
728 if (imm)
729 {
730 evas_gl_common_image_update(gc, imm);
731 if (!imm->tex) imm = NULL; /* Turn of mask on error */
732 }
733
734 if ((im->cs.space == EVAS_COLORSPACE_YCBCR422P601_PL) ||
735 (im->cs.space == EVAS_COLORSPACE_YCBCR422P709_PL))
736 yuv = 1;
737 if (im->cs.space == EVAS_COLORSPACE_YCBCR422601_PL)
738 yuy2 = 1;
739 if ((im->cs.space == EVAS_COLORSPACE_YCBCR420NV12601_PL) ||
740 (im->cs.space == EVAS_COLORSPACE_YCBCR420TM12601_PL))
741 nv12 = 1;
742
743 im->tex->im = im;
744 if (imm) imm->tex->im = imm;
745 if ((!gc->dc->cutout.rects) ||
746 ((gc->shared->info.tune.cutout.max > 0) &&
747 (gc->dc->cutout.active > gc->shared->info.tune.cutout.max)))
748 {
749 if (gc->dc->clip.use)
750 {
751 int nx, ny, nw, nh;
752 double scalex,scaley;
753
754 nx = dx; ny = dy; nw = dw; nh = dh;
755 RECTS_CLIP_TO_RECT(nx, ny, nw, nh,
756 gc->dc->clip.x, gc->dc->clip.y,
757 gc->dc->clip.w, gc->dc->clip.h);
758 if ((nw < 1) || (nh < 1)) return;
759 if ((!imm) && (nx == dx) && (ny == dy) && (nw == dw) && (nh == dh))
760 {
761 if (yuv)
762 evas_gl_common_context_yuv_push(gc,
763 im->tex,
764 sx, sy, sw, sh,
765 dx, dy, dw, dh,
766 r, g, b, a,
767 smooth);
768 else if (yuy2)
769 evas_gl_common_context_yuy2_push(gc,
770 im->tex,
771 sx, sy, sw, sh,
772 dx, dy, dw, dh,
773 r, g, b, a,
774 smooth);
775 else if (nv12)
776 evas_gl_common_context_nv12_push(gc,
777 im->tex,
778 sx, sy, sw, sh,
779 dx, dy, dw, dh,
780 r, g, b, a,
781 smooth);
782 else
783
784 evas_gl_common_context_image_push(gc,
785 im->tex,
786 sx, sy, sw, sh,
787 dx, dy, dw, dh,
788 r, g, b, a,
789 smooth, im->tex_only);
790 return;
791 }
792
793 ssx = (double)sx + ((double)(sw * (nx - dx)) / (double)(dw));
794 ssy = (double)sy + ((double)(sh * (ny - dy)) / (double)(dh));
795 ssw = ((double)sw * (double)(nw)) / (double)(dw);
796 ssh = ((double)sh * (double)(nh)) / (double)(dh);
797 if (imm)
798 {
799 /* Correct ones here */
800 scalex = imm->w / (double)dc->mask.w;
801 scaley = imm->h / (double)dc->mask.h;
802 mssx = scalex * (nx - dc->mask.x);
803 mssy = scaley * (ny - dc->mask.y);
804 mssw = scalex * nw;
805 mssh = scaley * nh;
806
807 /* No yuv + imm I'm afraid */
808 evas_gl_common_context_image_mask_push(gc,
809 im->tex,
810 imm->tex,
811 ssx, ssy, ssw, ssh,
812 mssx, mssy, mssw, mssh,
813 //dc->mask.x, dc->mask.y, dc->mask.w, dc->mask.h,
814 nx, ny, nw, nh,
815 r, g, b, a,
816 smooth);
817 }
818 else if (yuv)
819 evas_gl_common_context_yuv_push(gc,
820 im->tex,
821 ssx, ssy, ssw, ssh,
822 nx, ny, nw, nh,
823 r, g, b, a,
824 smooth);
825 else if (yuy2)
826 evas_gl_common_context_yuy2_push(gc,
827 im->tex,
828 ssx, ssy, ssw, ssh,
829 nx, ny, nw, nh,
830 r, g, b, a,
831 smooth);
832 else if (nv12)
833 evas_gl_common_context_nv12_push(gc,
834 im->tex,
835 ssx, ssy, ssw, ssh,
836 nx, ny, nw, nh,
837 r, g, b, a,
838 smooth);
839 else
840 evas_gl_common_context_image_push(gc,
841 im->tex,
842 ssx, ssy, ssw, ssh,
843 nx, ny, nw, nh,
844 r, g, b, a,
845 smooth, im->tex_only);
846 }
847 else
848 {
849 if (yuv)
850 evas_gl_common_context_yuv_push(gc,
851 im->tex,
852 sx, sy, sw, sh,
853 dx, dy, dw, dh,
854 r, g, b, a,
855 smooth);
856 else if (yuy2)
857 evas_gl_common_context_yuy2_push(gc,
858 im->tex,
859 sx, sy, sw, sh,
860 dx, dy, dw, dh,
861 r, g, b, a,
862 smooth);
863 else if (nv12)
864 evas_gl_common_context_nv12_push(gc,
865 im->tex,
866 sx, sy, sw, sh,
867 dx, dy, dw, dh,
868 r, g, b, a,
869 smooth);
870 else
871 evas_gl_common_context_image_push(gc,
872 im->tex,
873 sx, sy, sw, sh,
874 dx, dy, dw, dh,
875 r, g, b, a,
876 smooth, im->tex_only);
877 }
878 return;
879 }
880
881 /* save out clip info */
882 c = gc->dc->clip.use; cx = gc->dc->clip.x; cy = gc->dc->clip.y; cw = gc->dc->clip.w; ch = gc->dc->clip.h;
883 evas_common_draw_context_clip_clip(gc->dc, 0, 0, gc->w, gc->h);
884 evas_common_draw_context_clip_clip(gc->dc, dx, dy, dw, dh);
885 /* our clip is 0 size.. abort */
886 if ((gc->dc->clip.w <= 0) || (gc->dc->clip.h <= 0))
887 {
888 gc->dc->clip.use = c; gc->dc->clip.x = cx; gc->dc->clip.y = cy; gc->dc->clip.w = cw; gc->dc->clip.h = ch;
889 return;
890 }
891 rects = evas_common_draw_context_apply_cutouts(dc);
892 for (i = 0; i < rects->active; ++i)
893 {
894 int nx, ny, nw, nh;
895
896 rct = rects->rects + i;
897 nx = dx; ny = dy; nw = dw; nh = dh;
898 RECTS_CLIP_TO_RECT(nx, ny, nw, nh, rct->x, rct->y, rct->w, rct->h);
899 if ((nw < 1) || (nh < 1)) continue;
900 if ((nx == dx) && (ny == dy) && (nw == dw) && (nh == dh))
901 {
902 if (yuv)
903 evas_gl_common_context_yuv_push(gc,
904 im->tex,
905 sx, sy, sw, sh,
906 dx, dy, dw, dh,
907 r, g, b, a,
908 smooth);
909 else if (yuy2)
910 evas_gl_common_context_yuy2_push(gc,
911 im->tex,
912 sx, sy, sw, sh,
913 dx, dy, dw, dh,
914 r, g, b, a,
915 smooth);
916 else if (nv12)
917 evas_gl_common_context_nv12_push(gc,
918 im->tex,
919 sx, sy, sw, sh,
920 dx, dy, dw, dh,
921 r, g, b, a,
922 smooth);
923 else
924 evas_gl_common_context_image_push(gc,
925 im->tex,
926 sx, sy, sw, sh,
927 dx, dy, dw, dh,
928 r, g, b, a,
929 smooth, im->tex_only);
930 continue;
931 }
932 ssx = (double)sx + ((double)(sw * (nx - dx)) / (double)(dw));
933 ssy = (double)sy + ((double)(sh * (ny - dy)) / (double)(dh));
934 ssw = ((double)sw * (double)(nw)) / (double)(dw);
935 ssh = ((double)sh * (double)(nh)) / (double)(dh);
936 if (yuv)
937 evas_gl_common_context_yuv_push(gc,
938 im->tex,
939 ssx, ssy, ssw, ssh,
940 nx, ny, nw, nh,
941 r, g, b, a,
942 smooth);
943 else if (yuy2)
944 evas_gl_common_context_yuy2_push(gc,
945 im->tex,
946 ssx, ssy, ssw, ssh,
947 nx, ny, nw, nh,
948 r, g, b, a,
949 smooth);
950 else if (nv12)
951 evas_gl_common_context_nv12_push(gc,
952 im->tex,
953 ssx, ssy, ssw, ssh,
954 nx, ny, nw, nh,
955 r, g, b, a,
956 smooth);
957 else
958 evas_gl_common_context_image_push(gc,
959 im->tex,
960 ssx, ssy, ssw, ssh,
961 nx, ny, nw, nh,
962 r, g, b, a,
963 smooth, im->tex_only);
964 }
965 evas_common_draw_context_apply_clear_cutouts(rects);
966 /* restore clip info */
967 gc->dc->clip.use = c; gc->dc->clip.x = cx; gc->dc->clip.y = cy; gc->dc->clip.w = cw; gc->dc->clip.h = ch;
968}
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_line.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_line.c
deleted file mode 100644
index f8ace2e..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_line.c
+++ /dev/null
@@ -1,35 +0,0 @@
1#include "evas_gl_private.h"
2
3void
4evas_gl_common_line_draw(Evas_Engine_GL_Context *gc, int x1, int y1, int x2, int y2)
5{
6 RGBA_Draw_Context *dc;
7 int r, g, b, a;
8 int c, cx, cy, cw, ch;
9
10 dc = gc->dc;
11 if (dc->mul.use)
12 {
13 a = (dc->mul.col >> 24) & 0xff;
14 r = (dc->mul.col >> 16) & 0xff;
15 g = (dc->mul.col >> 8 ) & 0xff;
16 b = (dc->mul.col ) & 0xff;
17 }
18 else
19 {
20 a = (dc->col.col >> 24) & 0xff;
21 r = (dc->col.col >> 16) & 0xff;
22 g = (dc->col.col >> 8 ) & 0xff;
23 b = (dc->col.col ) & 0xff;
24 }
25
26 glFlush();
27
28 c = gc->dc->clip.use;
29 cx = gc->dc->clip.x; cy = gc->dc->clip.y;
30 cw = gc->dc->clip.w; ch = gc->dc->clip.h;
31
32 evas_gl_common_context_line_push(gc, x1, y1, x2, y2,
33 c, cx, cy, cw, ch,
34 r, g, b, a);
35}
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_polygon.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_polygon.c
deleted file mode 100644
index 06647cd..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_polygon.c
+++ /dev/null
@@ -1,307 +0,0 @@
1#include "evas_gl_private.h"
2
3// FIXME: this is a verbatim copy of the software poly renderer. it just
4// use gl to draw 1 pixel high spans like software does. this is to make
5// sure rendering correctness matches the software engine but also to save
6// time in coming up with a good triangulation algorithm. if you want to
7// feel free to turn this into a real triangulation system and use gl to its
8// fullest, but as such polygons are used so little, it's not worth it.
9
10typedef struct _RGBA_Span RGBA_Span;
11typedef struct _RGBA_Edge RGBA_Edge;
12typedef struct _RGBA_Vertex RGBA_Vertex;
13
14struct _RGBA_Span
15{
16 EINA_INLIST;
17 int x, y, w;
18};
19
20struct _RGBA_Edge
21{
22 double x, dx;
23 int i;
24};
25
26struct _RGBA_Vertex
27{
28 double x, y;
29 int i;
30};
31
32#define POLY_EDGE_DEL(_i) \
33 { \
34 int _j; \
35 \
36 for (_j = 0; (_j < num_active_edges) && (edges[_j].i != _i); _j++); \
37 if (_j < num_active_edges) \
38 { \
39 num_active_edges--; \
40 memmove(&(edges[_j]), &(edges[_j + 1]), \
41 (num_active_edges - _j) * sizeof(RGBA_Edge)); \
42 } \
43 }
44
45#define POLY_EDGE_ADD(_i, _y) \
46 { \
47 int _j; \
48 float _dx; \
49 RGBA_Vertex *_p, *_q; \
50 if (_i < (n - 1)) _j = _i + 1; \
51 else _j = 0; \
52 if (point[_i].y < point[_j].y) \
53 { \
54 _p = &(point[_i]); \
55 _q = &(point[_j]); \
56 } \
57 else \
58 { \
59 _p = &(point[_j]); \
60 _q = &(point[_i]); \
61 } \
62 edges[num_active_edges].dx = _dx = (_q->x - _p->x) / (_q->y - _p->y); \
63 edges[num_active_edges].x = (_dx * ((float)_y + 0.5 - _p->y)) + _p->x; \
64 edges[num_active_edges].i = _i; \
65 num_active_edges++; \
66 }
67
68Evas_GL_Polygon *
69evas_gl_common_poly_point_add(Evas_GL_Polygon *poly, int x, int y)
70{
71 Evas_GL_Polygon_Point *pt;
72
73 if (!poly) poly = calloc(1, sizeof(Evas_GL_Polygon));
74 if (!poly) return NULL;
75 pt = calloc(1, sizeof(Evas_GL_Polygon_Point));
76 if (!pt) return NULL;
77 pt->x = x;
78 pt->y = y;
79 poly->points = eina_list_append(poly->points, pt);
80 poly->changed = 1;
81 return poly;
82}
83
84Evas_GL_Polygon *
85evas_gl_common_poly_points_clear(Evas_GL_Polygon *poly)
86{
87 if (!poly) return NULL;
88 while (poly->points)
89 {
90 Evas_GL_Polygon_Point *pt;
91
92 pt = poly->points->data;
93 poly->points = eina_list_remove(poly->points, pt);
94 free(pt);
95 }
96 free(poly);
97 return NULL;
98}
99
100static int
101polygon_point_sorter(const void *a, const void *b)
102{
103 RGBA_Vertex *p, *q;
104
105 p = (RGBA_Vertex *)a;
106 q = (RGBA_Vertex *)b;
107 if (p->y <= q->y) return -1;
108 return 1;
109}
110
111static int
112polygon_edge_sorter(const void *a, const void *b)
113{
114 RGBA_Edge *p, *q;
115
116 p = (RGBA_Edge *)a;
117 q = (RGBA_Edge *)b;
118 if (p->x <= q->x) return -1;
119 return 1;
120}
121
122void
123evas_gl_common_poly_draw(Evas_Engine_GL_Context *gc, Evas_GL_Polygon *poly, int dx, int dy)
124{
125 Cutout_Rects *rects;
126 Cutout_Rect *r;
127 int c, cx, cy, cw, ch, cr, cg, cb, ca, i;
128 int x = 0, y = 0, w = 0, h = 0;
129
130 Eina_List *l;
131 int n, k, num_active_edges, y0, y1, *sorted_index, j;
132 RGBA_Edge *edges;
133 RGBA_Vertex *point;
134 Evas_GL_Polygon_Point *pt;
135 Eina_Inlist *spans;
136
137 /* save out clip info */
138 c = gc->dc->clip.use; cx = gc->dc->clip.x; cy = gc->dc->clip.y; cw = gc->dc->clip.w; ch = gc->dc->clip.h;
139
140 ca = (gc->dc->col.col >> 24) & 0xff;
141 if (ca <= 0) return;
142 cr = (gc->dc->col.col >> 16) & 0xff;
143 cg = (gc->dc->col.col >> 8 ) & 0xff;
144 cb = (gc->dc->col.col ) & 0xff;
145
146 n = eina_list_count(poly->points);
147 if (n < 3) return;
148 edges = malloc(sizeof(RGBA_Edge) * n);
149 if (!edges) return;
150 point = malloc(sizeof(RGBA_Vertex) * n);
151 if (!point)
152 {
153 free(edges);
154 return;
155 }
156 sorted_index = malloc(sizeof(int) * n);
157 if (!sorted_index)
158 {
159 free(edges);
160 free(point);
161 return;
162 }
163
164 k = 0;
165 EINA_LIST_FOREACH(poly->points, l, pt)
166 {
167 point[k].x = pt->x + dx;
168 point[k].y = pt->y + dy;
169 point[k].i = k;
170 k++;
171 }
172 qsort(point, n, sizeof(RGBA_Vertex), polygon_point_sorter);
173 for (k = 0; k < n; k++) sorted_index[k] = point[k].i;
174 k = 0;
175
176 EINA_LIST_FOREACH(poly->points, l, pt)
177 {
178 point[k].x = pt->x + dx;
179 point[k].y = pt->y + dy;
180 point[k].i = k;
181 k++;
182 }
183
184 y0 = MAX(cy, ceil(point[sorted_index[0]].y - 0.5));
185 y1 = MIN(cy + ch - 1, floor(point[sorted_index[n - 1]].y - 0.5));
186
187 k = 0;
188 num_active_edges = 0;
189 spans = NULL;
190
191 for (y = y0; y <= y1; y++)
192 {
193 for (; (k < n) && (point[sorted_index[k]].y <= ((double)y + 0.5)); k++)
194 {
195 i = sorted_index[k];
196
197 if (i > 0) j = i - 1;
198 else j = n - 1;
199 if (point[j].y <= ((double)y - 0.5))
200 {
201 POLY_EDGE_DEL(j)
202 }
203 else if (point[j].y > ((double)y + 0.5))
204 {
205 POLY_EDGE_ADD(j, y)
206 }
207 if (i < (n - 1)) j = i + 1;
208 else j = 0;
209 if (point[j].y <= ((double)y - 0.5))
210 {
211 POLY_EDGE_DEL(i)
212 }
213 else if (point[j].y > ((double)y + 0.5))
214 {
215 POLY_EDGE_ADD(i, y)
216 }
217 }
218
219 qsort(edges, num_active_edges, sizeof(RGBA_Edge), polygon_edge_sorter);
220
221 for (j = 0; j < num_active_edges; j += 2)
222 {
223 int x0, x1;
224
225 x0 = ceil(edges[j].x - 0.5);
226 if (j < (num_active_edges - 1))
227 x1 = floor(edges[j + 1].x - 0.5);
228 else
229 x1 = x0;
230 if ((x1 >= cx) && (x0 < (cx + cw)) && (x0 <= x1))
231 {
232 RGBA_Span *span;
233
234 if (x0 < cx) x0 = cx;
235 if (x1 >= (cx + cw)) x1 = cx + cw - 1;
236 span = malloc(sizeof(RGBA_Span));
237 spans = eina_inlist_append(spans, EINA_INLIST_GET(span));
238 span->y = y;
239 span->x = x0;
240 span->w = (x1 - x0) + 1;
241 }
242 edges[j].x += edges[j].dx;
243 edges[j + 1].x += edges[j + 1].dx;
244 }
245 }
246
247 free(edges);
248 free(point);
249 free(sorted_index);
250
251 evas_common_draw_context_clip_clip(gc->dc, 0, 0, gc->w, gc->h);
252
253 if (spans)
254 {
255 RGBA_Span *span;
256
257 /* no cutouts - cut right to the chase */
258 if (!gc->dc->cutout.rects)
259 {
260 EINA_INLIST_FOREACH(spans, span)
261 {
262 x = span->x;
263 y = span->y;
264 w = span->w;
265 h = 1;
266 evas_gl_common_context_rectangle_push(gc, x, y, w, h, cr, cg, cb, ca);
267 }
268 }
269 else
270 {
271 evas_common_draw_context_clip_clip(gc->dc, x, y, w, h);
272 /* our clip is 0 size.. abort */
273 if ((gc->dc->clip.w > 0) && (gc->dc->clip.h > 0))
274 {
275 rects = evas_common_draw_context_apply_cutouts(gc->dc);
276 for (i = 0; i < rects->active; ++i)
277 {
278 r = rects->rects + i;
279 if ((r->w > 0) && (r->h > 0))
280 {
281 EINA_INLIST_FOREACH(spans, span)
282 {
283 x = span->x;
284 y = span->y;
285 w = span->w;
286 h = 1;
287 RECTS_CLIP_TO_RECT(x, y, w, h, r->x, r->y, r->w, r->h);
288 if ((w > 0) && (h > 0))
289 evas_gl_common_context_rectangle_push(gc, x, y, w, h, cr, cg, cb, ca);
290 }
291 }
292 }
293 evas_common_draw_context_apply_clear_cutouts(rects);
294 }
295 }
296 while (spans)
297 {
298 span = (RGBA_Span *)spans;
299 spans = eina_inlist_remove(spans, spans);
300 free(span);
301 }
302 }
303
304 /* restore clip info */
305 gc->dc->clip.use = c; gc->dc->clip.x = cx; gc->dc->clip.y = cy; gc->dc->clip.w = cw; gc->dc->clip.h = ch;
306
307}
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_private.h b/libraries/evas/src/modules/engines/gl_common/evas_gl_private.h
deleted file mode 100644
index a178823..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_private.h
+++ /dev/null
@@ -1,32 +0,0 @@
1#ifndef _EVAS_GL_PRIVATE_H
2#define _EVAS_GL_PRIVATE_H
3#include "evas_gl_common.h"
4
5extern int _evas_engine_GL_common_log_dom;
6
7#ifdef ERR
8# undef ERR
9#endif
10#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_GL_common_log_dom, __VA_ARGS__)
11
12#ifdef DBG
13# undef DBG
14#endif
15#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_GL_common_log_dom, __VA_ARGS__)
16
17#ifdef INF
18# undef INF
19#endif
20#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_GL_common_log_dom, __VA_ARGS__)
21
22#ifdef WRN
23# undef WRN
24#endif
25#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_GL_common_log_dom, __VA_ARGS__)
26
27#ifdef CRIT
28# undef CRIT
29#endif
30#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_GL_common_log_dom, __VA_ARGS__)
31
32#endif
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_rectangle.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_rectangle.c
deleted file mode 100644
index 1903314..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_rectangle.c
+++ /dev/null
@@ -1,53 +0,0 @@
1#include "evas_gl_private.h"
2
3void
4evas_gl_common_rect_draw(Evas_Engine_GL_Context *gc, int x, int y, int w, int h)
5{
6 Cutout_Rects *rects;
7 Cutout_Rect *r;
8 int c, cx, cy, cw, ch, cr, cg, cb, ca, i;
9
10 if ((w <= 0) || (h <= 0)) return;
11 if (!(RECTS_INTERSECT(x, y, w, h, 0, 0, gc->w, gc->h))) return;
12 /* save out clip info */
13 c = gc->dc->clip.use; cx = gc->dc->clip.x; cy = gc->dc->clip.y; cw = gc->dc->clip.w; ch = gc->dc->clip.h;
14
15 ca = (gc->dc->col.col >> 24) & 0xff;
16 if ((gc->dc->render_op != EVAS_RENDER_COPY) && (ca <= 0)) return;
17 cr = (gc->dc->col.col >> 16) & 0xff;
18 cg = (gc->dc->col.col >> 8 ) & 0xff;
19 cb = (gc->dc->col.col ) & 0xff;
20 evas_common_draw_context_clip_clip(gc->dc, 0, 0, gc->w, gc->h);
21 /* no cutouts - cut right to the chase */
22 if ((gc->dc) && (gc->dc->clip.use))
23 {
24 RECTS_CLIP_TO_RECT(x, y, w, h,
25 gc->dc->clip.x, gc->dc->clip.y,
26 gc->dc->clip.w, gc->dc->clip.h);
27 }
28
29 if (!gc->dc->cutout.rects)
30 {
31 evas_gl_common_context_rectangle_push(gc, x, y, w, h, cr, cg, cb, ca);
32 }
33 else
34 {
35 evas_common_draw_context_clip_clip(gc->dc, x, y, w, h);
36 /* our clip is 0 size.. abort */
37 if ((gc->dc->clip.w > 0) && (gc->dc->clip.h > 0))
38 {
39 rects = evas_common_draw_context_apply_cutouts(gc->dc);
40 for (i = 0; i < rects->active; ++i)
41 {
42 r = rects->rects + i;
43 if ((r->w > 0) && (r->h > 0))
44 {
45 evas_gl_common_context_rectangle_push(gc, r->x, r->y, r->w, r->h, cr, cg, cb, ca);
46 }
47 }
48 evas_common_draw_context_apply_clear_cutouts(rects);
49 }
50 }
51 /* restore clip info */
52 gc->dc->clip.use = c; gc->dc->clip.x = cx; gc->dc->clip.y = cy; gc->dc->clip.w = cw; gc->dc->clip.h = ch;
53}
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_shader.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_shader.c
deleted file mode 100644
index 6666ac5..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_shader.c
+++ /dev/null
@@ -1,1262 +0,0 @@
1#include "evas_gl_private.h"
2
3/////////////////////////////////////////////
4#if defined (GLES_VARIETY_S3C6410)
5const unsigned int rect_frag_bin[] =
6{
7# include "shader/rect_frag_bin_s3c6410.h"
8};
9#endif
10
11const char rect_frag_glsl[] =
12#include "shader/rect_frag.h"
13 ;
14Evas_GL_Program_Source shader_rect_frag_src =
15{
16 rect_frag_glsl,
17#if defined (GLES_VARIETY_S3C6410)
18 rect_frag_bin, sizeof(rect_frag_bin)
19#else
20 NULL, 0
21#endif
22};
23
24#if defined (GLES_VARIETY_S3C6410)
25const unsigned int rect_vert_bin[] =
26{
27# include "shader/rect_vert_bin_s3c6410.h"
28};
29#endif
30const char rect_vert_glsl[] =
31#include "shader/rect_vert.h"
32 ;
33Evas_GL_Program_Source shader_rect_vert_src =
34{
35 rect_vert_glsl,
36#if defined (GLES_VARIETY_S3C6410)
37 rect_vert_bin, sizeof(rect_vert_bin)
38#else
39 NULL, 0
40#endif
41};
42
43/////////////////////////////////////////////
44#if defined (GLES_VARIETY_S3C6410)
45const unsigned int font_frag_bin[] =
46{
47# include "shader/font_frag_bin_s3c6410.h"
48};
49#endif
50
51const char font_frag_glsl[] =
52#include "shader/font_frag.h"
53 ;
54Evas_GL_Program_Source shader_font_frag_src =
55{
56 font_frag_glsl,
57#if defined (GLES_VARIETY_S3C6410)
58 font_frag_bin, sizeof(font_frag_bin)
59#else
60 NULL, 0
61#endif
62};
63
64#if defined (GLES_VARIETY_S3C6410)
65const unsigned int font_vert_bin[] =
66{
67# include "shader/font_vert_bin_s3c6410.h"
68};
69#endif
70const char font_vert_glsl[] =
71#include "shader/font_vert.h"
72 ;
73Evas_GL_Program_Source shader_font_vert_src =
74{
75 font_vert_glsl,
76#if defined (GLES_VARIETY_S3C6410)
77 font_vert_bin, sizeof(font_vert_bin)
78#else
79 NULL, 0
80#endif
81};
82
83/////////////////////////////////////////////
84#if defined (GLES_VARIETY_S3C6410)
85const unsigned int yuv_frag_bin[] =
86{
87# include "shader/yuv_frag_bin_s3c6410.h"
88};
89#endif
90
91const char yuv_frag_glsl[] =
92#include "shader/yuv_frag.h"
93 ;
94Evas_GL_Program_Source shader_yuv_frag_src =
95{
96 yuv_frag_glsl,
97#if defined (GLES_VARIETY_S3C6410)
98 yuv_frag_bin, sizeof(yuv_frag_bin)
99#else
100 NULL, 0
101#endif
102};
103
104#if defined (GLES_VARIETY_S3C6410)
105const unsigned int yuv_vert_bin[] =
106{
107# include "shader/yuv_vert_bin_s3c6410.h"
108};
109#endif
110const char yuv_vert_glsl[] =
111#include "shader/yuv_vert.h"
112 ;
113Evas_GL_Program_Source shader_yuv_vert_src =
114{
115 yuv_vert_glsl,
116#if defined (GLES_VARIETY_S3C6410)
117 yuv_vert_bin, sizeof(yuv_vert_bin)
118#else
119 NULL, 0
120#endif
121};
122
123/////////////////////////////////////////////
124#if defined (GLES_VARIETY_S3C6410)
125const unsigned int yuy2_frag_bin[] =
126{
127# include "shader/yuy2_frag_bin_s3c6410.h"
128};
129#endif
130
131const char yuy2_frag_glsl[] =
132#include "shader/yuy2_frag.h"
133 ;
134Evas_GL_Program_Source shader_yuy2_frag_src =
135{
136 yuy2_frag_glsl,
137#if defined (GLES_VARIETY_S3C6410)
138 yuy2_frag_bin, sizeof(yuy2_frag_bin)
139#else
140 NULL, 0
141#endif
142};
143
144#if defined (GLES_VARIETY_S3C6410)
145const unsigned int yuy2_vert_bin[] =
146{
147# include "shader/yuy2_vert_bin_s3c6410.h"
148};
149#endif
150const char yuy2_vert_glsl[] =
151#include "shader/yuy2_vert.h"
152 ;
153Evas_GL_Program_Source shader_yuy2_vert_src =
154{
155 yuy2_vert_glsl,
156#if defined (GLES_VARIETY_S3C6410)
157 yuy2_vert_bin, sizeof(yuy2_vert_bin)
158#else
159 NULL, 0
160#endif
161};
162
163/////////////////////////////////////////////
164#if defined (GLES_VARIETY_S3C6410)
165const unsigned int yuy2_nomul_frag_bin[] =
166{
167# include "shader/yuy2_nomul_frag_bin_s3c6410.h"
168};
169#endif
170
171const char yuy2_nomul_frag_glsl[] =
172#include "shader/yuy2_nomul_frag.h"
173 ;
174Evas_GL_Program_Source shader_yuy2_nomul_frag_src =
175{
176 yuy2_nomul_frag_glsl,
177#if defined (GLES_VARIETY_S3C6410)
178 yuy2_nomul_frag_bin, sizeof(yuy2_nomul_frag_bin)
179#else
180 NULL, 0
181#endif
182};
183
184#if defined (GLES_VARIETY_S3C6410)
185const unsigned int yuy2_nomul_vert_bin[] =
186{
187# include "shader/yuy2_nomul_vert_bin_s3c6410.h"
188};
189#endif
190const char yuy2_nomul_vert_glsl[] =
191#include "shader/yuy2_nomul_vert.h"
192 ;
193Evas_GL_Program_Source shader_yuy2_nomul_vert_src =
194{
195 yuy2_nomul_vert_glsl,
196#if defined (GLES_VARIETY_S3C6410)
197 yuy2_nomul_vert_bin, sizeof(yuy2_nomul_vert_bin)
198#else
199 NULL, 0
200#endif
201};
202
203/////////////////////////////////////////////
204#if defined (GLES_VARIETY_S3C6410)
205const unsigned int nv12_nomul_vert_bin[] =
206{
207# include "shader/nv12_nomul_vert_bin_s3c6410.h"
208};
209#endif
210const char nv12_nomul_vert_glsl[] =
211#include "shader/nv12_nomul_vert.h"
212 ;
213Evas_GL_Program_Source shader_nv12_nomul_vert_src =
214{
215 nv12_nomul_vert_glsl,
216#if defined (GLES_VARIETY_S3C6410)
217 nv12_nomul_vert_bin, sizeof(nv12_nomul_vert_bin)
218#else
219 NULL, 0
220#endif
221};
222
223#if defined (GLES_VARIETY_S3C6410)
224const unsigned int nv12_vert_bin[] =
225{
226# include "shader/nv12_vert_bin_s3c6410.h"
227};
228#endif
229const char nv12_vert_glsl[] =
230#include "shader/nv12_vert.h"
231 ;
232Evas_GL_Program_Source shader_nv12_vert_src =
233{
234 nv12_vert_glsl,
235#if defined (GLES_VARIETY_S3C6410)
236 nv12_vert_bin, sizeof(nv12_vert_bin)
237#else
238 NULL, 0
239#endif
240};
241
242#if defined (GLES_VARIETY_S3C6410)
243const unsigned int nv12_nomul_frag_bin[] =
244{
245# include "shader/nv12_nomul_frag_bin_s3c6410.h"
246};
247#endif
248
249const char nv12_frag_glsl[] =
250#include "shader/nv12_frag.h"
251 ;
252Evas_GL_Program_Source shader_nv12_frag_src =
253{
254 nv12_frag_glsl,
255#if defined (GLES_VARIETY_S3C6410)
256 nv12_frag_bin, sizeof(nv12_frag_bin)
257#else
258 NULL, 0
259#endif
260};
261
262#if defined (GLES_VARIETY_S3C6410)
263const unsigned int nv12_nomul_frag_bin[] =
264{
265# include "shader/nv12_nomul_frag_bin_s3c6410.h"
266};
267#endif
268
269const char nv12_nomul_frag_glsl[] =
270#include "shader/nv12_nomul_frag.h"
271 ;
272Evas_GL_Program_Source shader_nv12_nomul_frag_src =
273{
274 nv12_nomul_frag_glsl,
275#if defined (GLES_VARIETY_S3C6410)
276 nv12_nomul_frag_bin, sizeof(nv12_nomul_frag_bin)
277#else
278 NULL, 0
279#endif
280};
281
282/////////////////////////////////////////////
283#if defined (GLES_VARIETY_S3C6410)
284const unsigned int yuv_nomul_frag_bin[] =
285{
286# include "shader/yuv_nomul_frag_bin_s3c6410.h"
287};
288#endif
289
290const char yuv_nomul_frag_glsl[] =
291#include "shader/yuv_nomul_frag.h"
292 ;
293Evas_GL_Program_Source shader_yuv_nomul_frag_src =
294{
295 yuv_nomul_frag_glsl,
296#if defined (GLES_VARIETY_S3C6410)
297 yuv_nomul_frag_bin, sizeof(yuv_nomul_frag_bin)
298#else
299 NULL, 0
300#endif
301};
302
303#if defined (GLES_VARIETY_S3C6410)
304const unsigned int yuv_nomul_vert_bin[] =
305{
306# include "shader/yuv_nomul_vert_bin_s3c6410.h"
307};
308#endif
309const char yuv_nomul_vert_glsl[] =
310#include "shader/yuv_nomul_vert.h"
311 ;
312Evas_GL_Program_Source shader_yuv_nomul_vert_src =
313{
314 yuv_nomul_vert_glsl,
315#if defined (GLES_VARIETY_S3C6410)
316 yuv_nomul_vert_bin, sizeof(yuv_nomul_vert_bin)
317#else
318 NULL, 0
319#endif
320};
321
322/////////////////////////////////////////////
323#if defined (GLES_VARIETY_S3C6410)
324const unsigned int tex_frag_bin[] =
325{
326# include "shader/tex_frag_bin_s3c6410.h"
327};
328#endif
329
330const char tex_frag_glsl[] =
331#include "shader/tex_frag.h"
332 ;
333Evas_GL_Program_Source shader_tex_frag_src =
334{
335 tex_frag_glsl,
336#if defined (GLES_VARIETY_S3C6410)
337 tex_frag_bin, sizeof(tex_frag_bin)
338#else
339 NULL, 0
340#endif
341};
342
343#if defined (GLES_VARIETY_S3C6410)
344const unsigned int tex_vert_bin[] =
345{
346# include "shader/tex_vert_bin_s3c6410.h"
347};
348#endif
349const char tex_vert_glsl[] =
350#include "shader/tex_vert.h"
351 ;
352Evas_GL_Program_Source shader_tex_vert_src =
353{
354 tex_vert_glsl,
355#if defined (GLES_VARIETY_S3C6410)
356 tex_vert_bin, sizeof(tex_vert_bin)
357#else
358 NULL, 0
359#endif
360};
361
362/////////////////////////////////////////////
363#if defined (GLES_VARIETY_S3C6410)
364const unsigned int tex_nomul_frag_bin[] =
365{
366# include "shader/tex_nomul_frag_bin_s3c6410.h"
367};
368#endif
369
370const char tex_nomul_frag_glsl[] =
371#include "shader/tex_nomul_frag.h"
372 ;
373Evas_GL_Program_Source shader_tex_nomul_frag_src =
374{
375 tex_nomul_frag_glsl,
376#if defined (GLES_VARIETY_S3C6410)
377 tex_nomul_frag_bin, sizeof(tex_nomul_frag_bin)
378#else
379 NULL, 0
380#endif
381};
382
383#if defined (GLES_VARIETY_S3C6410)
384const unsigned int tex_nomul_vert_bin[] =
385{
386# include "shader/tex_nomul_vert_bin_s3c6410.h"
387};
388#endif
389const char tex_nomul_vert_glsl[] =
390#include "shader/tex_nomul_vert.h"
391 ;
392Evas_GL_Program_Source shader_tex_nomul_vert_src =
393{
394 tex_nomul_vert_glsl,
395#if defined (GLES_VARIETY_S3C6410)
396 tex_nomul_vert_bin, sizeof(tex_nomul_vert_bin)
397#else
398 NULL, 0
399#endif
400};
401
402/////////////////////////////////////////////
403#if defined (GLES_VARIETY_S3C6410)
404const unsigned int img_frag_bin[] =
405{
406# include "shader/img_frag_bin_s3c6410.h"
407};
408#endif
409
410const char img_frag_glsl[] =
411#include "shader/img_frag.h"
412 ;
413Evas_GL_Program_Source shader_img_frag_src =
414{
415 img_frag_glsl,
416#if defined (GLES_VARIETY_S3C6410)
417 img_frag_bin, sizeof(img_frag_bin)
418#else
419 NULL, 0
420#endif
421};
422
423#if defined (GLES_VARIETY_S3C6410)
424const unsigned int img_vert_bin[] =
425{
426# include "shader/img_vert_bin_s3c6410.h"
427};
428#endif
429const char img_vert_glsl[] =
430#include "shader/img_vert.h"
431 ;
432Evas_GL_Program_Source shader_img_vert_src =
433{
434 img_vert_glsl,
435#if defined (GLES_VARIETY_S3C6410)
436 img_vert_bin, sizeof(img_vert_bin)
437#else
438 NULL, 0
439#endif
440};
441
442/////////////////////////////////////////////
443#if defined (GLES_VARIETY_S3C6410)
444const unsigned int img_nomul_frag_bin[] =
445{
446# include "shader/img_nomul_frag_bin_s3c6410.h"
447};
448#endif
449
450const char img_nomul_frag_glsl[] =
451#include "shader/img_nomul_frag.h"
452 ;
453Evas_GL_Program_Source shader_img_nomul_frag_src =
454{
455 img_nomul_frag_glsl,
456#if defined (GLES_VARIETY_S3C6410)
457 img_nomul_frag_bin, sizeof(img_nomul_frag_bin)
458#else
459 NULL, 0
460#endif
461};
462
463#if defined (GLES_VARIETY_S3C6410)
464const unsigned int img_nomul_vert_bin[] =
465{
466# include "shader/img_nomul_vert_bin_s3c6410.h"
467};
468#endif
469const char img_nomul_vert_glsl[] =
470#include "shader/img_nomul_vert.h"
471 ;
472Evas_GL_Program_Source shader_img_nomul_vert_src =
473{
474 img_nomul_vert_glsl,
475#if defined (GLES_VARIETY_S3C6410)
476 img_nomul_vert_bin, sizeof(img_nomul_vert_bin)
477#else
478 NULL, 0
479#endif
480};
481
482/////////////////////////////////////////////
483#if defined (GLES_VARIETY_S3C6410)
484const unsigned int img_bgra_frag_bin[] =
485{
486# include "shader/img_bgra_frag_bin_s3c6410.h"
487};
488#endif
489
490const char img_bgra_frag_glsl[] =
491#include "shader/img_bgra_frag.h"
492 ;
493Evas_GL_Program_Source shader_img_bgra_frag_src =
494{
495 img_bgra_frag_glsl,
496#if defined (GLES_VARIETY_S3C6410)
497 img_bgra_frag_bin, sizeof(img_bgra_frag_bin)
498#else
499 NULL, 0
500#endif
501};
502
503#if defined (GLES_VARIETY_S3C6410)
504const unsigned int img_bgra_vert_bin[] =
505{
506# include "shader/img_bgra_vert_bin_s3c6410.h"
507};
508#endif
509const char img_bgra_vert_glsl[] =
510#include "shader/img_bgra_vert.h"
511 ;
512Evas_GL_Program_Source shader_img_bgra_vert_src =
513{
514 img_bgra_vert_glsl,
515#if defined (GLES_VARIETY_S3C6410)
516 img_bgra_vert_bin, sizeof(img_bgra_vert_bin)
517#else
518 NULL, 0
519#endif
520};
521
522
523/////////////////////////////////////////////
524#if defined (GLES_VARIETY_S3C6410)
525const unsigned int img_mask_frag_bin[] =
526{
527# include "shader/img_mask_frag_bin_s3c6410.h"
528};
529#endif
530
531const char img_mask_frag_glsl[] =
532#include "shader/img_mask_frag.h"
533 ;
534Evas_GL_Program_Source shader_img_mask_frag_src =
535{
536 img_mask_frag_glsl,
537#if defined (GLES_VARIETY_S3C6410)
538 img_mask_frag_bin, sizeof(img_mask_frag_bin)
539#else
540 NULL, 0
541#endif
542};
543
544#if defined (GLES_VARIETY_S3C6410)
545const unsigned int img_mask_vert_bin[] =
546{
547# include "shader/img_mask_vert_bin_s3c6410.h"
548};
549#endif
550const char img_mask_vert_glsl[] =
551#include "shader/img_mask_vert.h"
552 ;
553Evas_GL_Program_Source shader_img_mask_vert_src =
554{
555 img_mask_vert_glsl,
556#if defined (GLES_VARIETY_S3C6410)
557 img_mask_vert_bin, sizeof(img_mask_vert_bin)
558#else
559 NULL, 0
560#endif
561};
562
563
564/////////////////////////////////////////////
565#if defined (GLES_VARIETY_S3C6410)
566const unsigned int img_bgra_nomul_frag_bin[] =
567{
568# include "shader/img_bgra_nomul_frag_bin_s3c6410.h"
569};
570#endif
571
572const char img_bgra_nomul_frag_glsl[] =
573#include "shader/img_bgra_nomul_frag.h"
574 ;
575Evas_GL_Program_Source shader_img_bgra_nomul_frag_src =
576{
577 img_bgra_nomul_frag_glsl,
578#if defined (GLES_VARIETY_S3C6410)
579 img_bgra_nomul_frag_bin, sizeof(img_bgra_nomul_frag_bin)
580#else
581 NULL, 0
582#endif
583};
584
585#if defined (GLES_VARIETY_S3C6410)
586const unsigned int img_bgra_nomul_vert_bin[] =
587{
588# include "shader/img_bgra_nomul_vert_bin_s3c6410.h"
589};
590#endif
591const char img_bgra_nomul_vert_glsl[] =
592#include "shader/img_bgra_nomul_vert.h"
593 ;
594Evas_GL_Program_Source shader_img_bgra_nomul_vert_src =
595{
596 img_bgra_nomul_vert_glsl,
597#if defined (GLES_VARIETY_S3C6410)
598 img_bgra_nomul_vert_bin, sizeof(img_bgra_nomul_vert_bin)
599#else
600 NULL, 0
601#endif
602};
603
604/////////////////////////////////////////////
605const char filter_invert_frag_glsl[] =
606#include "shader/filter_invert.h"
607 ;
608Evas_GL_Program_Source shader_filter_invert_frag_src =
609{
610 filter_invert_frag_glsl,
611 NULL, 0
612};
613
614const char filter_invert_nomul_frag_glsl[] =
615#include "shader/filter_invert_nomul.h"
616 ;
617Evas_GL_Program_Source shader_filter_invert_nomul_frag_src =
618{
619 filter_invert_nomul_frag_glsl,
620 NULL, 0
621};
622
623const char filter_invert_bgra_frag_glsl[] =
624#include "shader/filter_invert_bgra.h"
625 ;
626Evas_GL_Program_Source shader_filter_invert_bgra_frag_src =
627{
628 filter_invert_bgra_frag_glsl,
629 NULL, 0
630};
631const char filter_invert_bgra_nomul_frag_glsl[] =
632#include "shader/filter_invert_bgra_nomul.h"
633 ;
634Evas_GL_Program_Source shader_filter_invert_bgra_nomul_frag_src =
635{
636 filter_invert_bgra_nomul_frag_glsl,
637 NULL, 0
638};
639
640/////////////////////////////////////////////
641const char filter_greyscale_frag_glsl[] =
642#include "shader/filter_greyscale.h"
643 ;
644Evas_GL_Program_Source shader_filter_greyscale_frag_src =
645{
646 filter_greyscale_frag_glsl,
647 NULL, 0
648};
649
650const char filter_greyscale_nomul_frag_glsl[] =
651#include "shader/filter_greyscale_nomul.h"
652 ;
653Evas_GL_Program_Source shader_filter_greyscale_nomul_frag_src =
654{
655 filter_greyscale_nomul_frag_glsl,
656 NULL, 0
657};
658
659const char filter_greyscale_bgra_frag_glsl[] =
660#include "shader/filter_greyscale_bgra.h"
661 ;
662Evas_GL_Program_Source shader_filter_greyscale_bgra_frag_src =
663{
664 filter_greyscale_bgra_frag_glsl,
665 NULL, 0
666};
667const char filter_greyscale_bgra_nomul_frag_glsl[] =
668#include "shader/filter_greyscale_bgra_nomul.h"
669 ;
670Evas_GL_Program_Source shader_filter_greyscale_bgra_nomul_frag_src =
671{
672 filter_greyscale_bgra_nomul_frag_glsl,
673 NULL, 0
674};
675
676/////////////////////////////////////////////
677const char filter_sepia_frag_glsl[] =
678#include "shader/filter_sepia.h"
679 ;
680Evas_GL_Program_Source shader_filter_sepia_frag_src =
681{
682 filter_sepia_frag_glsl,
683 NULL, 0
684};
685
686const char filter_sepia_nomul_frag_glsl[] =
687#include "shader/filter_sepia_nomul.h"
688 ;
689Evas_GL_Program_Source shader_filter_sepia_nomul_frag_src =
690{
691 filter_sepia_nomul_frag_glsl,
692 NULL, 0
693};
694
695const char filter_sepia_bgra_frag_glsl[] =
696#include "shader/filter_sepia_bgra.h"
697 ;
698Evas_GL_Program_Source shader_filter_sepia_bgra_frag_src =
699{
700 filter_sepia_bgra_frag_glsl,
701 NULL, 0
702};
703const char filter_sepia_bgra_nomul_frag_glsl[] =
704#include "shader/filter_sepia_bgra_nomul.h"
705 ;
706Evas_GL_Program_Source shader_filter_sepia_bgra_nomul_frag_src =
707{
708 filter_sepia_bgra_nomul_frag_glsl,
709 NULL, 0
710};
711
712/////////////////////////////////////////////
713#if 0
714 Blur is a work in progress currently.
715 Mostly because GPUs are so hopeless.
716const char filter_blur_vert_glsl[] =
717#include "shader/filter_blur_vert.h"
718 ;
719
720Evas_GL_Program_Source shader_filter_blur_vert_src =
721{
722 filter_blur_vert_glsl,
723 NULL, 0
724};
725
726const char filter_blur_frag_glsl[] =
727#include "shader/filter_blur.h"
728 ;
729Evas_GL_Program_Source shader_filter_blur_frag_src =
730{
731 filter_blur_frag_glsl,
732 NULL, 0
733};
734
735const char filter_blur_nomul_frag_glsl[] =
736#include "shader/filter_blur_nomul.h"
737 ;
738Evas_GL_Program_Source shader_filter_blur_nomul_frag_src =
739{
740 filter_blur_nomul_frag_glsl,
741 NULL, 0
742};
743
744const char filter_blur_bgra_frag_glsl[] =
745#include "shader/filter_blur_bgra.h"
746 ;
747Evas_GL_Program_Source shader_filter_blur_bgra_frag_src =
748{
749 filter_blur_bgra_frag_glsl,
750 NULL, 0
751};
752const char filter_blur_bgra_nomul_frag_glsl[] =
753#include "shader/filter_blur_bgra_nomul.h"
754 ;
755Evas_GL_Program_Source shader_filter_blur_bgra_nomul_frag_src =
756{
757 filter_blur_bgra_nomul_frag_glsl,
758 NULL, 0
759};
760
761#endif
762
763
764
765/////////////////////////////////////////////
766static void
767gl_compile_link_error(GLuint target, const char *action)
768{
769 int loglen = 0, chars = 0;
770 char *logtxt;
771
772 /* Shader info log */
773 glGetShaderiv(target, GL_INFO_LOG_LENGTH, &loglen);
774 if (loglen > 0)
775 {
776 logtxt = calloc(loglen, sizeof(char));
777 if (logtxt)
778 {
779 glGetShaderInfoLog(target, loglen, &chars, logtxt);
780 ERR("Failed to %s: %s", action, logtxt);
781 free(logtxt);
782 }
783 }
784
785 /* Program info log */
786 glGetProgramiv(target, GL_INFO_LOG_LENGTH, &loglen);
787 if (loglen > 0)
788 {
789 logtxt = calloc(loglen, sizeof(char));
790 if (logtxt)
791 {
792 glGetProgramInfoLog(target, loglen, &chars, logtxt);
793 ERR("Failed to %s: %s", action, logtxt);
794 free(logtxt);
795 }
796 }
797}
798
799static mode_t default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
800
801static Eina_Bool
802_evas_gl_shader_file_is_dir(const char *file)
803{
804 struct stat st;
805
806 if (stat(file, &st) < 0) return EINA_FALSE;
807 if (S_ISDIR(st.st_mode)) return EINA_TRUE;
808 return EINA_FALSE;
809}
810
811static Eina_Bool
812_evas_gl_shader_file_mkdir(const char *dir)
813{
814 /* evas gl shader only call this function when the dir is not exist */
815 if (mkdir(dir, default_mode) < 0) return EINA_FALSE;
816 return EINA_TRUE;
817}
818
819static Eina_Bool
820_evas_gl_shader_file_exists(const char *file)
821{
822 struct stat st;
823 if (!file) return EINA_FALSE;
824 if (stat(file, &st) < 0) return EINA_FALSE;
825 return EINA_TRUE;
826}
827
828static inline Eina_Bool
829_evas_gl_shader_file_mkpath_if_not_exists(const char *path)
830{
831 struct stat st;
832
833 if (stat(path, &st) < 0)
834 return _evas_gl_shader_file_mkdir(path);
835 else if (!S_ISDIR(st.st_mode))
836 return EINA_FALSE;
837 else
838 return EINA_TRUE;
839}
840
841static Eina_Bool
842_evas_gl_shader_file_mkpath(const char *path)
843{
844 char ss[PATH_MAX];
845 unsigned int i;
846
847 if (_evas_gl_shader_file_is_dir(path)) return EINA_TRUE;
848
849 for (i = 0; path[i]; ss[i] = path[i], i++)
850 {
851 if (i == sizeof(ss) - 1) return EINA_FALSE;
852 if ((path[i] == '/') && (i > 0))
853 {
854 ss[i] = 0;
855 if (!_evas_gl_shader_file_mkpath_if_not_exists(ss))
856 return EINA_FALSE;
857 }
858 }
859 ss[i] = 0;
860 return _evas_gl_shader_file_mkpath_if_not_exists(ss);
861}
862
863static int
864_evas_gl_shader_dir_check(char *bin_shader_dir, int num)
865{
866 char *home = NULL;
867 char *subdir = ".cache/evas_gl_common_shaders";
868
869 home = getenv("HOME");
870 if ((!home) || (!home[0])) return 0;
871
872 snprintf(bin_shader_dir, num, "%s/%s", home, subdir);
873 return _evas_gl_shader_file_exists(bin_shader_dir);
874}
875
876static int
877_evas_gl_shader_file_check(const char *bin_shader_dir, char *bin_shader_file, int dir_num)
878{
879 char before_name[PATH_MAX];
880 char after_name[PATH_MAX];
881 int new_path_len = 0;
882 int i = 0, j = 0;
883
884 char *vendor = NULL;
885 char *driver = NULL;
886 char *version = NULL;
887
888 vendor = (char *)glGetString(GL_VENDOR);
889 driver = (char *)glGetString(GL_RENDERER);
890 version = (char *)glGetString(GL_VERSION);
891
892 new_path_len = snprintf(before_name, sizeof(before_name), "%s::%s::%s::%s::binary_shader.eet", vendor, version, driver, MODULE_ARCH);
893
894 /* remove '/' from file name */
895 for (i = 0; i < new_path_len; i++)
896 {
897 if (before_name[i] != '/')
898 {
899 after_name[j] = before_name[i];
900 j++;
901 }
902 }
903 after_name[j] = 0;
904
905 snprintf(bin_shader_file, dir_num, "%s/%s", bin_shader_dir, after_name);
906
907 return _evas_gl_shader_file_exists(bin_shader_file);
908}
909
910static int
911_evas_gl_common_shader_program_binary_init(Evas_GL_Program *p,
912 const char *pname,
913 Eet_File *ef)
914{
915 int res = 0, num = 0, length = 0;
916 int *formats = NULL;
917 void *data = NULL;
918 GLint ok = 0;
919
920 if (!ef) return res;
921
922 data = eet_read(ef, pname, &length);
923 if ((!data) || (length <= 0)) goto finish;
924
925 glGetIntegerv(GL_NUM_PROGRAM_BINARY_FORMATS, &num);
926 if (num <= 0) goto finish;
927
928 formats = calloc(num, sizeof(int));
929 if (!formats) goto finish;
930
931 glGetIntegerv(GL_PROGRAM_BINARY_FORMATS, formats);
932 if (!formats[0]) goto finish;
933
934 p->prog = glCreateProgram();
935
936 glsym_glProgramBinary(p->prog, formats[0], data, length);
937
938 glBindAttribLocation(p->prog, SHAD_VERTEX, "vertex");
939 glBindAttribLocation(p->prog, SHAD_COLOR, "color");
940 glBindAttribLocation(p->prog, SHAD_TEXUV, "tex_coord");
941 glBindAttribLocation(p->prog, SHAD_TEXUV2, "tex_coord2");
942 glBindAttribLocation(p->prog, SHAD_TEXUV3, "tex_coord3");
943 glBindAttribLocation(p->prog, SHAD_TEXM, "tex_coordm");
944
945 glGetProgramiv(p->prog, GL_LINK_STATUS, &ok);
946 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
947 if (!ok)
948 {
949 gl_compile_link_error(p->prog, "load a program object");
950 ERR("Abort load of program (%s)", pname);
951 goto finish;
952 }
953
954 res = 1;
955
956finish:
957 if (formats) free(formats);
958 if (data) free(data);
959 if ((!res) && (p->prog))
960 {
961 glDeleteProgram(p->prog);
962 p->prog = 0;
963 }
964 return res;
965}
966
967static int
968_evas_gl_common_shader_program_binary_save(Evas_GL_Program *p,
969 const char *pname,
970 Eet_File *ef)
971{
972 void* data = NULL;
973 GLenum format;
974 int length = 0, size = 0;
975
976 if (!glsym_glGetProgramBinary) return 0;
977
978 glGetProgramiv(p->prog, GL_PROGRAM_BINARY_LENGTH, &length);
979 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
980 if (length <= 0) return 0;
981
982 data = malloc(length);
983 if (!data) return 0;
984
985 glsym_glGetProgramBinary(p->prog, length, &size, &format, data);
986 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
987
988 if (length != size)
989 {
990 free(data);
991 return 0;
992 }
993
994 if (eet_write(ef, pname, data, length, 0) < 0)
995 {
996 if (data) free(data);
997 return 0;
998 }
999 if (data) free(data);
1000 return 1;
1001}
1002
1003static int
1004_evas_gl_common_shader_program_source_init(Evas_GL_Program *p,
1005 Evas_GL_Program_Source *vert,
1006 Evas_GL_Program_Source *frag,
1007 const char *name)
1008{
1009 GLint ok;
1010
1011 p->vert = glCreateShader(GL_VERTEX_SHADER);
1012 p->frag = glCreateShader(GL_FRAGMENT_SHADER);
1013#if defined (GLES_VARIETY_S3C6410)
1014 glShaderBinary(1, &(p->vert), 0, vert->bin, vert->bin_size);
1015 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1016 glShaderBinary(1, &(p->frag), 0, frag->bin, frag->bin_size);
1017 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1018#else
1019 glShaderSource(p->vert, 1,
1020 (const char **)&(vert->src), NULL);
1021 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1022 glCompileShader(p->vert);
1023 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1024 ok = 0;
1025 glGetShaderiv(p->vert, GL_COMPILE_STATUS, &ok);
1026 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1027 if (!ok)
1028 {
1029 gl_compile_link_error(p->vert, "compile vertex shader");
1030 ERR("Abort compile of shader vert (%s): %s", name, vert->src);
1031 return 0;
1032 }
1033 glShaderSource(p->frag, 1,
1034 (const char **)&(frag->src), NULL);
1035 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1036 glCompileShader(p->frag);
1037 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1038 ok = 0;
1039 glGetShaderiv(p->frag, GL_COMPILE_STATUS, &ok);
1040 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1041 if (!ok)
1042 {
1043 gl_compile_link_error(p->frag, "compile fragment shader");
1044 ERR("Abort compile of shader frag (%s): %s", name, frag->src);
1045 return 0;
1046 }
1047#endif
1048 p->prog = glCreateProgram();
1049#if defined(GLES_VARIETY_S3C6410) || defined(GLES_VARIETY_SGX)
1050#else
1051 if ((glsym_glGetProgramBinary) && (glsym_glProgramParameteri))
1052 glsym_glProgramParameteri(p->prog, GL_PROGRAM_BINARY_RETRIEVABLE_HINT,
1053 GL_TRUE);
1054#endif
1055 glAttachShader(p->prog, p->vert);
1056 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1057 glAttachShader(p->prog, p->frag);
1058 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1059
1060 glBindAttribLocation(p->prog, SHAD_VERTEX, "vertex");
1061 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1062 glBindAttribLocation(p->prog, SHAD_COLOR, "color");
1063 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1064 glBindAttribLocation(p->prog, SHAD_TEXUV, "tex_coord");
1065 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1066 glBindAttribLocation(p->prog, SHAD_TEXUV2, "tex_coord2");
1067 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1068 glBindAttribLocation(p->prog, SHAD_TEXUV3, "tex_coord3");
1069 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1070 glBindAttribLocation(p->prog, SHAD_TEXM, "tex_coordm");
1071 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1072
1073 glLinkProgram(p->prog);
1074 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1075 ok = 0;
1076 glGetProgramiv(p->prog, GL_LINK_STATUS, &ok);
1077 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1078 if (!ok)
1079 {
1080 gl_compile_link_error(p->prog, "link fragment and vertex shaders");
1081 ERR("Abort compile of shader frag (%s): %s", name, frag->src);
1082 ERR("Abort compile of shader vert (%s): %s", name, vert->src);
1083 return 0;
1084 }
1085 return 1;
1086}
1087
1088#define SHADER_SOURCE_LINE(Big, Small) \
1089 { SHADER_##Big, &(shader_##Small##_vert_src), &(shader_##Small##_frag_src), #Small }
1090
1091#define SHADER_SOURCE_FILTER_LINE(Big, Small) \
1092 { SHADER_##Big, &(shader_img_vert_src), &(shader_##Small##_frag_src), #Small }
1093
1094static const struct {
1095 Evas_GL_Shader id;
1096 Evas_GL_Program_Source *vert;
1097 Evas_GL_Program_Source *frag;
1098 const char *name;
1099} _shaders_source[] = {
1100 SHADER_SOURCE_LINE(RECT, rect),
1101 SHADER_SOURCE_LINE(FONT, font),
1102 SHADER_SOURCE_LINE(IMG, img),
1103 SHADER_SOURCE_LINE(IMG_NOMUL, img_nomul),
1104 SHADER_SOURCE_LINE(IMG_BGRA, img_bgra),
1105 SHADER_SOURCE_LINE(IMG_BGRA_NOMUL, img_bgra_nomul),
1106 SHADER_SOURCE_LINE(IMG_MASK, img_mask),
1107 SHADER_SOURCE_LINE(YUV, yuv),
1108 SHADER_SOURCE_LINE(YUV_NOMUL, yuv_nomul),
1109 SHADER_SOURCE_LINE(YUY2, yuy2),
1110 SHADER_SOURCE_LINE(YUY2_NOMUL, yuy2_nomul),
1111 SHADER_SOURCE_LINE(NV12, nv12),
1112 SHADER_SOURCE_LINE(NV12_NOMUL, nv12_nomul),
1113 SHADER_SOURCE_LINE(TEX, tex),
1114 SHADER_SOURCE_LINE(TEX_NOMUL, tex_nomul),
1115 /* Most of the filters use the image fragment shader */
1116 SHADER_SOURCE_FILTER_LINE(FILTER_INVERT, filter_invert),
1117 SHADER_SOURCE_FILTER_LINE(FILTER_INVERT_NOMUL, filter_invert_nomul),
1118 SHADER_SOURCE_FILTER_LINE(FILTER_INVERT_BGRA, filter_invert_bgra),
1119 SHADER_SOURCE_FILTER_LINE(FILTER_INVERT_BGRA_NOMUL, filter_invert_bgra_nomul),
1120 SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE, filter_greyscale),
1121 SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE_NOMUL, filter_greyscale_nomul),
1122 SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE_BGRA, filter_greyscale_bgra),
1123 SHADER_SOURCE_FILTER_LINE(FILTER_GREYSCALE_BGRA_NOMUL, filter_greyscale_bgra_nomul),
1124 SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA, filter_sepia),
1125 SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA_NOMUL, filter_sepia_nomul),
1126 SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA_BGRA, filter_sepia_bgra),
1127 SHADER_SOURCE_FILTER_LINE(FILTER_SEPIA_BGRA_NOMUL, filter_sepia_bgra_nomul)/* , */
1128 /* SHADER_SOURCE_LINE(FILTER_BLUR, filter_blur), */
1129 /* SHADER_SOURCE_LINE(FILTER_BLUR_NOMUL, filter_blur_nomul), */
1130 /* SHADER_SOURCE_LINE(FILTER_BLUR_BGRA, filter_blur_bgra), */
1131 /* SHADER_SOURCE_LINE(FILTER_BLUR_BGRA_NOMUL, filter_blur_bgra_nomul) */
1132};
1133
1134static int
1135_evas_gl_common_shader_source_init(Evas_GL_Shared *shared)
1136{
1137 unsigned int i;
1138
1139 for (i = 0; i < sizeof (_shaders_source) / sizeof (_shaders_source[0]); ++i)
1140 if (!_evas_gl_common_shader_program_source_init(&(shared->shader[_shaders_source[i].id]),
1141 _shaders_source[i].vert,
1142 _shaders_source[i].frag,
1143 _shaders_source[i].name))
1144 return 0;
1145
1146 return 1;
1147}
1148
1149static int
1150_evas_gl_common_shader_binary_init(Evas_GL_Shared *shared)
1151{
1152 /* check eet */
1153 Eet_File *et = NULL;
1154 char bin_dir_path[PATH_MAX];
1155 char bin_file_path[PATH_MAX];
1156 unsigned int i;
1157
1158 if (!_evas_gl_shader_dir_check(bin_dir_path, sizeof(bin_dir_path)))
1159 return 0;
1160
1161 if (!_evas_gl_shader_file_check(bin_dir_path, bin_file_path,
1162 sizeof(bin_dir_path)))
1163 return 0;
1164
1165 /* use eet */
1166 if (!eet_init()) return 0;
1167 et = eet_open(bin_file_path, EET_FILE_MODE_READ);
1168 if (!et) goto error;
1169
1170 for (i = 0; i < sizeof (_shaders_source) / sizeof (_shaders_source[0]); ++i)
1171 if (!_evas_gl_common_shader_program_binary_init(&(shared->shader[_shaders_source[i].id]),
1172 _shaders_source[i].name,
1173 et))
1174 goto error;
1175
1176 if (et) eet_close(et);
1177 eet_shutdown();
1178 return 1;
1179
1180error:
1181 if (et) eet_close(et);
1182 eet_shutdown();
1183 return 0;
1184}
1185
1186static int
1187_evas_gl_common_shader_binary_save(Evas_GL_Shared *shared)
1188{
1189 /* check eet */
1190 Eet_File *et = NULL; //check eet file
1191 int tmpfd;
1192 int res = 0;
1193 char bin_dir_path[PATH_MAX];
1194 char bin_file_path[PATH_MAX];
1195 char tmp_file[PATH_MAX];
1196 unsigned int i;
1197
1198 if (!_evas_gl_shader_dir_check(bin_dir_path, sizeof(bin_dir_path)))
1199 res = _evas_gl_shader_file_mkpath(bin_dir_path);
1200 if (!res) return 0; /* we can't make directory */
1201
1202 _evas_gl_shader_file_check(bin_dir_path, bin_file_path,
1203 sizeof(bin_dir_path));
1204
1205 /* use mkstemp for writing */
1206 snprintf(tmp_file, sizeof(tmp_file), "%s.XXXXXX", bin_file_path);
1207 tmpfd = mkstemp(tmp_file);
1208 if (tmpfd < 0) goto error;
1209 close(tmpfd);
1210
1211 /* use eet */
1212 if (!eet_init()) goto error;
1213
1214 et = eet_open(tmp_file, EET_FILE_MODE_WRITE);
1215 if (!et) goto error;
1216
1217 for (i = 0; i < sizeof (_shaders_source) / sizeof (_shaders_source[0]); ++i)
1218 if (!_evas_gl_common_shader_program_binary_save(&(shared->shader[_shaders_source[i].id]),
1219 _shaders_source[i].name,
1220 et))
1221 goto error;
1222
1223 if (eet_close(et) != EET_ERROR_NONE) goto error;
1224 if (rename(tmp_file,bin_file_path) < 0) goto error;
1225 eet_shutdown();
1226 return 1;
1227
1228error:
1229 if (et) eet_close(et);
1230 if (_evas_gl_shader_file_exists(tmp_file)) unlink(tmp_file);
1231 eet_shutdown();
1232 return 0;
1233}
1234
1235int
1236evas_gl_common_shader_program_init(Evas_GL_Shared *shared)
1237{
1238 // gl support binary shader and get env of binary shader path
1239 if (shared->info.bin_program &&
1240 _evas_gl_common_shader_binary_init(shared)) return 1;
1241 /* compile all shader.*/
1242 if (!_evas_gl_common_shader_source_init(shared)) return 0;
1243 /* success compile all shader. if gl support binary shader, we need to save */
1244 if (shared->info.bin_program) _evas_gl_common_shader_binary_save(shared);
1245 return 1;
1246}
1247
1248void
1249evas_gl_common_shader_program_init_done(void)
1250{
1251#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1252 glReleaseShaderCompiler();
1253#endif
1254}
1255
1256void
1257evas_gl_common_shader_program_shutdown(Evas_GL_Program *p)
1258{
1259 if (p->vert) glDeleteShader(p->vert);
1260 if (p->frag) glDeleteShader(p->frag);
1261 if (p->prog) glDeleteProgram(p->prog);
1262}
diff --git a/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c b/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
deleted file mode 100644
index 8162cd1..0000000
--- a/libraries/evas/src/modules/engines/gl_common/evas_gl_texture.c
+++ /dev/null
@@ -1,1669 +0,0 @@
1#include "evas_gl_private.h"
2
3static const GLenum rgba_fmt = GL_RGBA;
4static const GLenum rgba_ifmt = GL_RGBA;
5//#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
6//static const GLenum rgb_fmt = GL_RGBA;
7//static const GLenum rgb_ifmt = GL_RGBA;
8//#else
9static const GLenum rgb_fmt = GL_RGBA;
10static const GLenum rgb_ifmt = GL_RGB;
11//#endif
12#ifdef GL_BGRA
13# if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
14static const GLenum bgra_fmt = GL_BGRA;
15static const GLenum bgra_ifmt = GL_BGRA;
16static const GLenum bgr_fmt = GL_BGRA;
17static const GLenum bgr_ifmt = GL_BGRA;
18# else
19static const GLenum bgra_fmt = GL_BGRA;
20static const GLenum bgra_ifmt = GL_RGBA;
21static const GLenum bgr_fmt = GL_BGRA;
22static const GLenum bgr_ifmt = GL_RGB;
23# endif
24#endif
25static const GLenum alpha_fmt = GL_ALPHA;
26static const GLenum alpha_ifmt = GL_ALPHA;
27static const GLenum lum_fmt = GL_LUMINANCE;
28static const GLenum lum_ifmt = GL_LUMINANCE;
29static const GLenum lum_alpha_fmt = GL_LUMINANCE_ALPHA;
30static const GLenum lum_alpha_ifmt = GL_LUMINANCE_ALPHA;
31static const GLenum rgba8_ifmt = GL_RGBA;
32static const GLenum rgba8_fmt = GL_BGRA;
33
34static struct {
35 struct {
36 int num, pix;
37 } c, a, v, r, n, d;
38} texinfo = {{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}};
39
40static void
41_print_tex_count(void)
42{
43 if (getenv("EVAS_GL_MEMINFO"))
44 {
45 fprintf(stderr,
46 "T: c:%i/%ik | a:%i/%ik | v:%i/%ik | r:%i/%ik | n:%i/%ik | d:%i/%ik\n",
47 texinfo.c.num, (texinfo.c.pix * 4) / 1024,
48 texinfo.a.num, (texinfo.a.pix ) / 1024,
49 texinfo.v.num, (texinfo.v.pix ) / 1024,
50 texinfo.r.num, (texinfo.r.pix * 4) / 1024,
51 texinfo.n.num, (texinfo.n.pix * 4) / 1024,
52 texinfo.d.num, (texinfo.d.pix * 4) / 1024
53 );
54 }
55}
56
57static int
58_nearest_pow2(int num)
59{
60 unsigned int n = num - 1;
61 n |= n >> 1;
62 n |= n >> 2;
63 n |= n >> 4;
64 n |= n >> 8;
65 n |= n >> 16;
66 return n + 1;
67}
68
69static void
70_tex_adjust(Evas_Engine_GL_Context *gc, int *w, int *h)
71{
72 if (gc->shared->info.tex_npo2) return;
73 /*if (gc->shared->info.tex_rect) return;*/
74 *w = _nearest_pow2(*w);
75 *h = _nearest_pow2(*h);
76}
77
78static int
79_tex_round_slot(Evas_Engine_GL_Context *gc, int h)
80{
81 if (!gc->shared->info.tex_npo2)
82 h = _nearest_pow2(h);
83 return (h + gc->shared->info.tune.atlas.slot_size - 1) /
84 gc->shared->info.tune.atlas.slot_size;
85}
86
87static int
88_tex_format_index(GLuint format)
89{
90 switch (format)
91 {
92 case GL_RGBA:
93#ifdef GL_BGRA
94 case GL_BGRA:
95#endif
96 return 0;
97 case GL_RGB:
98 return 1;
99 case GL_ALPHA:
100 return 2;
101 case GL_LUMINANCE: // never used in atlas
102 return 3;
103 default:
104 return 0;
105 }
106 return 0;
107}
108
109static void
110_tex_2d(int intfmt, int w, int h, int fmt, int type)
111{
112#ifdef GL_TEXTURE_INTERNAL_FORMAT
113 int intfmtret = -1;
114#endif
115 glTexImage2D(GL_TEXTURE_2D, 0, intfmt, w, h, 0, fmt, type, NULL);
116 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
117#ifdef GL_TEXTURE_INTERNAL_FORMAT
118// this is not in opengles!!! hrrrm
119 glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
120 GL_TEXTURE_INTERNAL_FORMAT, &intfmtret);
121 if (intfmtret != intfmt)
122 {
123 ERR("Fail tex alloc %ix%i", w, h);
124// XXX send async err to evas
125 }
126#endif
127}
128
129static void
130_tex_sub_2d(int x, int y, int w, int h, int fmt, int type, const void *pix)
131{
132 glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h, fmt, type, pix);
133 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
134}
135
136static Evas_GL_Texture_Pool *
137_pool_tex_new(Evas_Engine_GL_Context *gc, int w, int h, int intformat, GLenum format)
138{
139 Evas_GL_Texture_Pool *pt;
140
141 pt = calloc(1, sizeof(Evas_GL_Texture_Pool));
142 if (!pt) return NULL;
143 h = _tex_round_slot(gc, h) * gc->shared->info.tune.atlas.slot_size;
144 _tex_adjust(gc, &w, &h);
145 pt->gc = gc;
146 pt->w = w;
147 pt->h = h;
148 pt->intformat = intformat;
149 pt->format = format;
150 pt->dataformat = GL_UNSIGNED_BYTE;
151 pt->references = 0;
152
153 if (format == alpha_fmt)
154 {
155 texinfo.a.num++;
156 texinfo.a.pix += pt->w * pt->h;
157 }
158 else if (format == lum_fmt)
159 {
160 texinfo.v.num++;
161 texinfo.v.pix += pt->w * pt->h;
162 }
163 else
164 {
165 texinfo.c.num++;
166 texinfo.c.pix += pt->w * pt->h;
167 }
168
169 _print_tex_count();
170
171 glGenTextures(1, &(pt->texture));
172 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
173 glBindTexture(GL_TEXTURE_2D, pt->texture);
174 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
175 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
176 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
177 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
178 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
179 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
180 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
181 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
182 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
183 _tex_2d(pt->intformat, w, h, pt->format, pt->dataformat);
184 glBindTexture(GL_TEXTURE_2D, gc->pipe[0].shader.cur_tex);
185 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
186 return pt;
187}
188
189static int
190_pool_tex_alloc(Evas_GL_Texture_Pool *pt, int w, int h __UNUSED__, int *u, int *v, Eina_List **l_after)
191{
192 Eina_List *l;
193 Evas_GL_Texture *tex, *tex2;
194 int nx, d, b;
195
196 if (pt->allocations)
197 {
198 tex = pt->allocations->data;
199 // if firest tex is not at left edge...
200 if (tex->x > (0 + 1))
201 {
202 if ((tex->x - 1) >= w)
203 {
204 *u = 0;
205 *v = 0;
206 *l_after = NULL;
207 return 1;
208 }
209 }
210 }
211 EINA_LIST_FOREACH(pt->allocations, l, tex)
212 {
213 b = tex->x + tex->w + 2;
214 if (l->next)
215 {
216 tex2 = l->next->data;
217 nx = tex2->x - 1;
218 }
219 else
220 nx = pt->w - 1;
221 d = nx - b;
222 if (d >= w)
223 {
224 *u = b;
225 *v = 0;
226 *l_after = l;
227 return 1;
228 }
229 }
230 *l_after = NULL;
231 return 0;
232}
233
234static Evas_GL_Texture_Pool *
235_pool_tex_find(Evas_Engine_GL_Context *gc, int w, int h,
236 int intformat, int format, int *u, int *v,
237 Eina_List **l_after, int atlas_w)
238{
239 Evas_GL_Texture_Pool *pt = NULL;
240 Eina_List *l;
241 int th, th2;
242
243 if (atlas_w > gc->shared->info.max_texture_size)
244 atlas_w = gc->shared->info.max_texture_size;
245 if ((w > gc->shared->info.tune.atlas.max_w) ||
246 (h > gc->shared->info.tune.atlas.max_h))
247 {
248 pt = _pool_tex_new(gc, w, h, intformat, format);
249 gc->shared->tex.whole = eina_list_prepend(gc->shared->tex.whole, pt);
250 pt->slot = -1;
251 pt->fslot = -1;
252 pt->whole = 1;
253 *u = 0;
254 *v = 0;
255 *l_after = NULL;
256 return pt;
257 }
258
259 th = _tex_round_slot(gc, h);
260 th2 = _tex_format_index(intformat);
261 EINA_LIST_FOREACH(gc->shared->tex.atlas[th][th2], l, pt)
262 {
263 if (_pool_tex_alloc(pt, w, h, u, v, l_after))
264 {
265 gc->shared->tex.atlas[th][th2] =
266 eina_list_remove_list(gc->shared->tex.atlas[th][th2], l);
267 gc->shared->tex.atlas[th][th2] =
268 eina_list_prepend(gc->shared->tex.atlas[th][th2], pt);
269 return pt;
270 }
271 }
272 pt = _pool_tex_new(gc, atlas_w, h, intformat, format);
273 gc->shared->tex.atlas[th][th2] =
274 eina_list_prepend(gc->shared->tex.atlas[th][th2], pt);
275 pt->slot = th;
276 pt->fslot = th2;
277 *u = 0;
278 *v = 0;
279 *l_after = NULL;
280 return pt;
281}
282
283Evas_GL_Texture *
284evas_gl_common_texture_new(Evas_Engine_GL_Context *gc, RGBA_Image *im)
285{
286 Evas_GL_Texture *tex;
287 Eina_List *l_after = NULL;
288 int u = 0, v = 0;
289
290 tex = calloc(1, sizeof(Evas_GL_Texture));
291 if (!tex) return NULL;
292
293 tex->gc = gc;
294 tex->references = 1;
295
296 if (im->cache_entry.flags.alpha)
297 {
298 if (gc->shared->info.bgra)
299 tex->pt = _pool_tex_find(gc, im->cache_entry.w + 2,
300 im->cache_entry.h + 1, bgra_ifmt, bgra_fmt,
301 &u, &v, &l_after,
302 gc->shared->info.tune.atlas.max_alloc_size);
303 else
304 tex->pt = _pool_tex_find(gc, im->cache_entry.w + 2,
305 im->cache_entry.h + 1, rgba_ifmt, rgba_fmt,
306 &u, &v, &l_after,
307 gc->shared->info.tune.atlas.max_alloc_size);
308 tex->alpha = 1;
309 }
310 else
311 {
312 if (gc->shared->info.bgra)
313 tex->pt = _pool_tex_find(gc, im->cache_entry.w + 3,
314 im->cache_entry.h + 1, bgr_ifmt, bgr_fmt,
315 &u, &v, &l_after,
316 gc->shared->info.tune.atlas.max_alloc_size);
317 else
318#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
319 tex->pt = _pool_tex_find(gc, im->cache_entry.w + 3,
320 im->cache_entry.h + 1, rgba_ifmt, rgba_fmt,
321 &u, &v, &l_after,
322 gc->shared->info.tune.atlas.max_alloc_size);
323#else
324 tex->pt = _pool_tex_find(gc, im->cache_entry.w + 3,
325 im->cache_entry.h + 1, rgb_ifmt, rgb_fmt,
326 &u, &v, &l_after,
327 gc->shared->info.tune.atlas.max_alloc_size);
328#endif
329 }
330 if (!tex->pt)
331 {
332 free(tex);
333 return NULL;
334 }
335 tex->x = u + 1;
336 tex->y = v;
337 tex->w = im->cache_entry.w;
338 tex->h = im->cache_entry.h;
339 if (l_after)
340 tex->pt->allocations =
341 eina_list_append_relative_list(tex->pt->allocations, tex, l_after);
342 else
343 tex->pt->allocations =
344 eina_list_prepend(tex->pt->allocations, tex);
345 tex->pt->references++;
346 evas_gl_common_texture_update(tex, im);
347 return tex;
348}
349
350static Evas_GL_Texture_Pool *
351_pool_tex_render_new(Evas_Engine_GL_Context *gc, int w, int h, int intformat, int format)
352{
353 Evas_GL_Texture_Pool *pt;
354
355 pt = calloc(1, sizeof(Evas_GL_Texture_Pool));
356 if (!pt) return NULL;
357 h = _tex_round_slot(gc, h) * gc->shared->info.tune.atlas.slot_size;
358 _tex_adjust(gc, &w, &h);
359 pt->gc = gc;
360 pt->w = w;
361 pt->h = h;
362 pt->intformat = intformat;
363 pt->format = format;
364 pt->dataformat = GL_UNSIGNED_BYTE;
365 pt->render = 1;
366 pt->references = 0;
367#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
368# ifndef GL_FRAMEBUFFER
369# define GL_FRAMEBUFFER GL_FRAMEBUFFER_OES
370# endif
371# ifndef GL_COLOR_ATTACHMENT0
372# define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_OES
373# endif
374#else
375# ifndef GL_FRAMEBUFFER
376# define GL_FRAMEBUFFER GL_FRAMEBUFFER_EXT
377# endif
378# ifndef GL_COLOR_ATTACHMENT0
379# define GL_COLOR_ATTACHMENT0 GL_COLOR_ATTACHMENT0_EXT
380# endif
381#endif
382 texinfo.r.num++;
383 texinfo.r.pix += pt->w * pt->h;
384
385 _print_tex_count();
386
387 glGenTextures(1, &(pt->texture));
388 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
389 glBindTexture(GL_TEXTURE_2D, pt->texture);
390 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
391 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
392 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
393 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
394 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
395 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
396 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
397 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
398 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
399 _tex_2d(pt->intformat, w, h, pt->format, pt->dataformat);
400
401 glsym_glGenFramebuffers(1, &(pt->fb));
402 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
403 glsym_glBindFramebuffer(GL_FRAMEBUFFER, pt->fb);
404 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
405 glsym_glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, pt->texture, 0);
406 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
407 glsym_glBindFramebuffer(GL_FRAMEBUFFER, 0);
408 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
409
410 glBindTexture(GL_TEXTURE_2D, gc->pipe[0].shader.cur_tex);
411 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
412 return pt;
413}
414
415static Evas_GL_Texture_Pool *
416_pool_tex_native_new(Evas_Engine_GL_Context *gc, int w, int h, int intformat, int format, Evas_GL_Image *im)
417{
418 Evas_GL_Texture_Pool *pt;
419
420 pt = calloc(1, sizeof(Evas_GL_Texture_Pool));
421 if (!pt) return NULL;
422 pt->gc = gc;
423#ifdef GL_TEXTURE_RECTANGLE_ARB
424 if (im->native.target == GL_TEXTURE_RECTANGLE_ARB)
425 {
426 printf("REEEEEEEEECT\n");
427 pt->w = w;
428 pt->h = h;
429 }
430 else
431#endif
432 {
433 // FIXME: handle po2 only textures
434 pt->w = w;
435 pt->h = h;
436 }
437 pt->intformat = intformat;
438 pt->format = format;
439 pt->dataformat = GL_UNSIGNED_BYTE;
440 pt->references = 0;
441 pt->native = 1;
442 texinfo.n.num++;
443 texinfo.n.pix += pt->w * pt->h;
444
445 _print_tex_count();
446
447 glGenTextures(1, &(pt->texture));
448 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
449 glBindTexture(im->native.target, pt->texture);
450 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
451
452#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
453#else
454 if (im->native.loose)
455 {
456 if (im->native.func.bind)
457 im->native.func.bind(im->native.func.data, im);
458 }
459#endif
460
461 glTexParameteri(im->native.target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
462 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
463 glTexParameteri(im->native.target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
464 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
465 glTexParameteri(im->native.target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
466 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
467 glTexParameteri(im->native.target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
468 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
469 glBindTexture(im->native.target, 0);
470 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
471 glBindTexture(im->native.target, gc->pipe[0].shader.cur_tex);
472 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
473 return pt;
474}
475
476static Evas_GL_Texture_Pool *
477_pool_tex_dynamic_new(Evas_Engine_GL_Context *gc, int w, int h, int intformat, int format)
478{
479 Evas_GL_Texture_Pool *pt = NULL;
480
481#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
482 int fmt; // EGL_MAP_GL_TEXTURE_RGBA_SEC or EGL_MAP_GL_TEXTURE_RGB_SEC or bust
483 int pixtype; // EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC or bust
484 int attr[] =
485 {
486 EGL_MAP_GL_TEXTURE_WIDTH_SEC, 32,
487 EGL_MAP_GL_TEXTURE_HEIGHT_SEC, 32,
488 EGL_MAP_GL_TEXTURE_FORMAT_SEC, EGL_MAP_GL_TEXTURE_RGBA_SEC,
489 EGL_MAP_GL_TEXTURE_PIXEL_TYPE_SEC, EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC,
490 EGL_NONE
491 };
492 void *egldisplay;
493
494 if (intformat != format) return NULL;
495
496 switch (intformat)
497 {
498#ifdef EGL_MAP_GL_TEXTURE_LUMINANCE_SEC
499 case GL_LUMINANCE: attr[5] = EGL_MAP_GL_TEXTURE_LUMINANCE_SEC; break;
500#endif
501#ifdef EGL_MAP_GL_TEXTURE_LUMINANCE_ALPHA_SEC
502 case GL_LUMINANCE_ALPHA: attr[5] = EGL_MAP_GL_TEXTURE_LUMINANCE_ALPHA_SEC; break;
503#endif
504 case GL_RGBA: attr[5] = EGL_MAP_GL_TEXTURE_RGBA_SEC; break;
505 case GL_BGRA: attr[5] = EGL_MAP_GL_TEXTURE_BGRA_SEC; break;
506 default: fprintf(stderr, "unknown format\n"); return NULL;
507 }
508
509 pt = calloc(1, sizeof(Evas_GL_Texture_Pool));
510 if (!pt) return NULL;
511 h = _tex_round_slot(gc, h) * gc->shared->info.tune.atlas.slot_size;
512 _tex_adjust(gc, &w, &h);
513 pt->gc = gc;
514 pt->w = w;
515 pt->h = h;
516 pt->intformat = intformat;
517 pt->format = format;
518 pt->dataformat = GL_UNSIGNED_BYTE;
519 pt->render = 1;
520 pt->references = 0;
521 texinfo.d.num++;
522 texinfo.d.pix += pt->w * pt->h;
523
524 _print_tex_count();
525
526 glGenTextures(1, &(pt->texture));
527 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
528 glBindTexture(GL_TEXTURE_2D, pt->texture);
529 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
530 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
531 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
532 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
533 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
534 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
535 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
536 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
537 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
538
539 egldisplay = pt->gc->egldisp;
540
541 attr[1] = pt->w;
542 attr[3] = pt->h;
543
544 // FIXME: seems a bit slower than i'd like - maybe too many flushes?
545 // FIXME: YCbCr no support as yet
546 pt->dyn.img = secsym_eglCreateImage(egldisplay,
547 EGL_NO_CONTEXT,
548 EGL_MAP_GL_TEXTURE_2D_SEC,
549 0, attr);
550 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
551 if (!pt->dyn.img)
552 {
553 glBindTexture(GL_TEXTURE_2D, 0);
554 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
555 glDeleteTextures(1, &(pt->texture));
556 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
557 free(pt);
558 return NULL;
559 }
560 if (secsym_eglGetImageAttribSEC(egldisplay,
561 pt->dyn.img,
562 EGL_MAP_GL_TEXTURE_WIDTH_SEC,
563 &(pt->dyn.w)) != EGL_TRUE) goto error;
564 if (secsym_eglGetImageAttribSEC(egldisplay,
565 pt->dyn.img,
566 EGL_MAP_GL_TEXTURE_HEIGHT_SEC,
567 &(pt->dyn.h)) != EGL_TRUE) goto error;
568 if (secsym_eglGetImageAttribSEC(egldisplay,
569 pt->dyn.img,
570 EGL_MAP_GL_TEXTURE_STRIDE_IN_BYTES_SEC,
571 &(pt->dyn.stride)) != EGL_TRUE) goto error;
572 if (secsym_eglGetImageAttribSEC(egldisplay,
573 pt->dyn.img,
574 EGL_MAP_GL_TEXTURE_FORMAT_SEC,
575 &(fmt)) != EGL_TRUE) goto error;
576
577 if (secsym_eglGetImageAttribSEC(egldisplay,
578 pt->dyn.img,
579 EGL_MAP_GL_TEXTURE_PIXEL_TYPE_SEC,
580 &(pixtype)) != EGL_TRUE) goto error;
581
582 if (pixtype != EGL_MAP_GL_TEXTURE_UNSIGNED_BYTE_SEC) goto error;
583
584 glBindTexture(GL_TEXTURE_2D, gc->pipe[0].shader.cur_tex);
585 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
586#else
587 gc = NULL;
588 w = 0;
589 h = 0;
590 intformat = 0;
591 format = 0;
592#endif
593 return pt;
594
595/* ERROR HANDLING */
596#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
597error:
598 secsym_eglDestroyImage(egldisplay, pt->dyn.img);
599 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
600 pt->dyn.img = NULL;
601 glBindTexture(GL_TEXTURE_2D, 0);
602 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
603 glDeleteTextures(1, &(pt->texture));
604 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
605 free(pt);
606 return NULL;
607#endif
608}
609
610void
611evas_gl_texture_pool_empty(Evas_GL_Texture_Pool *pt)
612{
613 if (!pt->gc) return;
614
615 if (pt->format == alpha_fmt)
616 {
617 texinfo.a.num--;
618 texinfo.a.pix -= pt->w * pt->h;
619 }
620 else if (pt->format == lum_fmt)
621 {
622 texinfo.v.num--;
623 texinfo.v.pix -= pt->w * pt->h;
624 }
625 else if (pt->dyn.img)
626 {
627 texinfo.d.num--;
628 texinfo.d.pix -= pt->w * pt->h;
629 }
630 else if (pt->render)
631 {
632 texinfo.r.num--;
633 texinfo.r.pix -= pt->w * pt->h;
634 }
635 else if (pt->native)
636 {
637 texinfo.n.num--;
638 texinfo.n.pix -= pt->w * pt->h;
639 }
640 else
641 {
642 texinfo.c.num--;
643 texinfo.c.pix -= pt->w * pt->h;
644 }
645
646 _print_tex_count();
647
648#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
649 if (pt->dyn.img)
650 {
651 if (pt->dyn.checked_out > 0)
652 secsym_eglUnmapImageSEC(pt->gc->egldisp, pt->dyn.img);
653 secsym_eglDestroyImage(pt->gc->egldisp, pt->dyn.img);
654 pt->dyn.img = NULL;
655 pt->dyn.data = NULL;
656 pt->dyn.w = 0;
657 pt->dyn.h = 0;
658 pt->dyn.stride = 0;
659 pt->dyn.checked_out = 0;
660 }
661#endif
662
663 glDeleteTextures(1, &(pt->texture));
664 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
665 if (pt->fb)
666 {
667 glsym_glDeleteFramebuffers(1, &(pt->fb));
668 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
669 pt->fb = 0;
670 }
671 while (pt->allocations)
672 pt->allocations =
673 eina_list_remove_list(pt->allocations, pt->allocations);
674 pt->texture = 0;
675 pt->gc = NULL;
676 pt->w = 0;
677 pt->h = 0;
678}
679
680static void
681pt_unref(Evas_GL_Texture_Pool *pt)
682{
683 if (!pt) return;
684 if (!pt->gc) return;
685 pt->references--;
686 if (pt->references != 0) return;
687
688 if (!((pt->render) || (pt->native)))
689 {
690 if (pt->whole)
691 pt->gc->shared->tex.whole =
692 eina_list_remove(pt->gc->shared->tex.whole, pt);
693 else
694 pt->gc->shared->tex.atlas [pt->slot][pt->fslot] =
695 eina_list_remove(pt->gc->shared->tex.atlas[pt->slot][pt->fslot], pt);
696 }
697 evas_gl_texture_pool_empty(pt);
698 free(pt);
699}
700
701static void
702pt_link(Evas_Engine_GL_Context *gc, Evas_GL_Texture *tex, Evas_GL_Texture_Pool *pt)
703{
704 gc->shared->tex.whole = eina_list_prepend(gc->shared->tex.whole, pt);
705 pt->slot = -1;
706 pt->fslot = -1;
707 pt->whole = 1;
708 pt->allocations = eina_list_prepend(pt->allocations, tex);
709 pt->references++;
710}
711
712Evas_GL_Texture *
713evas_gl_common_texture_native_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha, Evas_GL_Image *im)
714{
715 Evas_GL_Texture *tex;
716
717 tex = calloc(1, sizeof(Evas_GL_Texture));
718 if (!tex) return NULL;
719
720 tex->gc = gc;
721 tex->references = 1;
722 tex->alpha = alpha;
723 if (alpha)
724 {
725 if (gc->shared->info.bgra)
726 tex->pt = _pool_tex_native_new(gc, w, h, rgba_ifmt, rgba_fmt, im);
727 else
728 tex->pt = _pool_tex_native_new(gc, w, h, rgba_ifmt, rgba_fmt, im);
729 }
730 else
731 {
732 if (gc->shared->info.bgra)
733 tex->pt = _pool_tex_native_new(gc, w, h, rgb_ifmt, rgb_fmt, im);
734 else
735 tex->pt = _pool_tex_native_new(gc, w, h, rgb_ifmt, rgb_fmt, im);
736 }
737 if (!tex->pt)
738 {
739 free(tex);
740 return NULL;
741 }
742 tex->x = 0;
743 tex->y = 0;
744 tex->w = w;
745 tex->h = h;
746 tex->pt->references++;
747 return tex;
748}
749
750Evas_GL_Texture *
751evas_gl_common_texture_render_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha)
752{
753 Evas_GL_Texture *tex;
754
755 tex = calloc(1, sizeof(Evas_GL_Texture));
756 if (!tex) return NULL;
757
758 tex->gc = gc;
759 tex->references = 1;
760 tex->alpha = alpha;
761 if (alpha)
762 {
763 if (gc->shared->info.bgra)
764 tex->pt = _pool_tex_render_new(gc, w, h, rgba_ifmt, rgba_fmt);
765 else
766 tex->pt = _pool_tex_render_new(gc, w, h, rgba_ifmt, rgba_fmt);
767 }
768 else
769 {
770 if (gc->shared->info.bgra)
771 tex->pt = _pool_tex_render_new(gc, w, h, rgb_ifmt, rgb_fmt);
772 else
773 tex->pt = _pool_tex_render_new(gc, w, h, rgb_ifmt, rgb_fmt);
774 }
775 if (!tex->pt)
776 {
777 free(tex);
778 return NULL;
779 }
780 tex->x = 0;
781 tex->y = 0;
782 tex->w = w;
783 tex->h = h;
784 tex->pt->references++;
785 return tex;
786}
787
788Evas_GL_Texture *
789evas_gl_common_texture_dynamic_new(Evas_Engine_GL_Context *gc, Evas_GL_Image *im)
790{
791 Evas_GL_Texture *tex;
792
793 tex = calloc(1, sizeof(Evas_GL_Texture));
794 if (!tex) return NULL;
795
796 tex->gc = gc;
797 tex->references = 1;
798 tex->alpha = im->alpha;
799 tex->x = 0;
800 tex->y = 0;
801 tex->w = im->w;
802 tex->h = im->h;
803 if (tex->alpha)
804 {
805 if (gc->shared->info.bgra)
806 tex->pt = _pool_tex_dynamic_new(gc, tex->w, tex->h, bgra_ifmt, bgra_fmt);
807 else
808 tex->pt = _pool_tex_dynamic_new(gc, tex->w, tex->h, bgra_ifmt, bgra_fmt);
809 }
810 else
811 {
812 if (gc->shared->info.bgra)
813 tex->pt = _pool_tex_dynamic_new(gc, tex->w, tex->h, bgra_ifmt, bgra_fmt);
814 else
815 tex->pt = _pool_tex_dynamic_new(gc, tex->w, tex->h, bgra_ifmt, bgra_fmt);
816 }
817 if (!tex->pt)
818 {
819 free(tex);
820 return NULL;
821 }
822 tex->pt->references++;
823 return tex;
824}
825
826void
827evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
828{
829 GLuint fmt;
830
831 if (tex->alpha != im->cache_entry.flags.alpha)
832 {
833 tex->pt->allocations = eina_list_remove(tex->pt->allocations, tex);
834 pt_unref(tex->pt);
835 tex->alpha = im->cache_entry.flags.alpha;
836 if (tex->alpha)
837 {
838 if (tex->gc->shared->info.bgra)
839 tex->pt = _pool_tex_render_new(tex->gc, tex->w, tex->h, bgra_ifmt, bgra_fmt);
840 else
841 tex->pt = _pool_tex_render_new(tex->gc, tex->w, tex->h, rgba_ifmt, rgba_fmt);
842 }
843 else
844 {
845 if (tex->gc->shared->info.bgra)
846 tex->pt = _pool_tex_render_new(tex->gc, tex->w, tex->h, bgr_ifmt, bgr_fmt);
847 else
848 tex->pt = _pool_tex_render_new(tex->gc, tex->w, tex->h, rgb_ifmt, rgb_fmt);
849 }
850 }
851 if (!tex->pt) return;
852 if (!im->image.data) return;
853
854 fmt = tex->pt->format;
855 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
856 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
857#ifdef GL_UNPACK_ROW_LENGTH
858 glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
859 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
860#endif
861 glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
862 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
863
864// printf("tex upload %ix%i\n", im->cache_entry.w, im->cache_entry.h);
865 // +-+
866 // +-+
867 //
868 _tex_sub_2d(tex->x, tex->y,
869 im->cache_entry.w, im->cache_entry.h,
870 fmt, tex->pt->dataformat,
871 im->image.data);
872 // xxx
873 // xxx
874 // ---
875 _tex_sub_2d(tex->x, tex->y + im->cache_entry.h,
876 im->cache_entry.w, 1,
877 fmt, tex->pt->dataformat,
878 im->image.data + ((im->cache_entry.h - 1) * im->cache_entry.w));
879 // xxx
880 // xxx
881 // o
882 _tex_sub_2d(tex->x - 1, tex->y + im->cache_entry.h,
883 1, 1,
884 fmt, tex->pt->dataformat,
885 im->image.data + ((im->cache_entry.h - 1) * im->cache_entry.w));
886 // xxx
887 // xxx
888 // o
889 _tex_sub_2d(tex->x + im->cache_entry.w, tex->y + im->cache_entry.h,
890 1, 1,
891 fmt, tex->pt->dataformat,
892 im->image.data + ((im->cache_entry.h - 1) * im->cache_entry.w) + (im->cache_entry.w - 1));
893#ifdef GL_UNPACK_ROW_LENGTH
894 glPixelStorei(GL_UNPACK_ROW_LENGTH, im->cache_entry.w);
895 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
896 // |xxx
897 // |xxx
898 //
899 _tex_sub_2d(tex->x - 1, tex->y,
900 1, im->cache_entry.h,
901 fmt, tex->pt->dataformat,
902 im->image.data);
903 // xxx|
904 // xxx|
905 //
906 _tex_sub_2d(tex->x + im->cache_entry.w, tex->y,
907 1, im->cache_entry.h,
908 fmt, tex->pt->dataformat,
909 im->image.data + (im->cache_entry.w - 1));
910#else
911 {
912 DATA32 *tpix, *ps, *pd;
913 int i;
914
915 tpix = alloca(im->cache_entry.h * sizeof(DATA32));
916 pd = tpix;
917 ps = im->image.data;
918 for (i = 0; i < (int)im->cache_entry.h; i++)
919 {
920 *pd = *ps;
921 pd++;
922 ps += im->cache_entry.w;
923 }
924 // |xxx
925 // |xxx
926 //
927 _tex_sub_2d(tex->x - 1, tex->y,
928 1, im->cache_entry.h,
929 fmt, tex->pt->dataformat,
930 tpix);
931 pd = tpix;
932 ps = im->image.data + (im->cache_entry.w - 1);
933 for (i = 0; i < (int)im->cache_entry.h; i++)
934 {
935 *pd = *ps;
936 pd++;
937 ps += im->cache_entry.w;
938 }
939 // xxx|
940 // xxx|
941 //
942 _tex_sub_2d(tex->x + im->cache_entry.w, tex->y,
943 1, im->cache_entry.h,
944 fmt, tex->pt->dataformat,
945 tpix);
946 }
947#endif
948 if (tex->pt->texture != tex->gc->pipe[0].shader.cur_tex)
949 {
950 glBindTexture(GL_TEXTURE_2D, tex->gc->pipe[0].shader.cur_tex);
951 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
952 }
953}
954
955void
956evas_gl_common_texture_free(Evas_GL_Texture *tex)
957{
958 if (!tex) return;
959 tex->references--;
960 if (tex->references != 0) return;
961 if (tex->double_buffer.pt[0])
962 {
963 tex->double_buffer.pt[0]->allocations = eina_list_remove(tex->double_buffer.pt[0]->allocations, tex);
964 tex->double_buffer.pt[1]->allocations = eina_list_remove(tex->double_buffer.pt[1]->allocations, tex);
965 tex->double_buffer.ptuv[0]->allocations = eina_list_remove(tex->double_buffer.ptuv[0]->allocations, tex);
966 tex->double_buffer.ptuv[1]->allocations = eina_list_remove(tex->double_buffer.ptuv[1]->allocations, tex);
967 }
968 else
969 {
970 if (tex->pt)
971 {
972 tex->pt->allocations = eina_list_remove(tex->pt->allocations, tex);
973 pt_unref(tex->pt);
974 }
975 if (tex->ptu)
976 {
977 tex->ptu->allocations = eina_list_remove(tex->ptu->allocations, tex);
978 pt_unref(tex->ptu);
979 }
980 if (tex->ptv)
981 {
982 tex->ptv->allocations = eina_list_remove(tex->ptv->allocations, tex);
983 pt_unref(tex->ptv);
984 }
985 if (tex->ptuv)
986 {
987 tex->ptuv->allocations = eina_list_remove(tex->ptuv->allocations, tex);
988 pt_unref(tex->ptuv);
989 }
990 }
991 free(tex);
992}
993
994Evas_GL_Texture *
995evas_gl_common_texture_alpha_new(Evas_Engine_GL_Context *gc, DATA8 *pixels,
996 unsigned int w, unsigned int h, int fh)
997{
998 Evas_GL_Texture *tex;
999 Eina_List *l_after = NULL;
1000 int u = 0, v = 0;
1001
1002 tex = calloc(1, sizeof(Evas_GL_Texture));
1003 if (!tex) return NULL;
1004
1005 tex->gc = gc;
1006 tex->references = 1;
1007 tex->pt = _pool_tex_find(gc, w + 3, fh, alpha_ifmt, alpha_fmt, &u, &v,
1008 &l_after,
1009 gc->shared->info.tune.atlas.max_alloc_alpha_size);
1010 if (!tex->pt)
1011 {
1012 free(tex);
1013 return NULL;
1014 }
1015 tex->x = u + 1;
1016 tex->y = v;
1017 tex->w = w;
1018 tex->h = h;
1019 if (l_after)
1020 tex->pt->allocations =
1021 eina_list_append_relative_list(tex->pt->allocations, tex, l_after);
1022 else
1023 tex->pt->allocations = eina_list_prepend(tex->pt->allocations, tex);
1024 tex->pt->references++;
1025 evas_gl_common_texture_alpha_update(tex, pixels, w, h, fh);
1026 return tex;
1027}
1028
1029void
1030evas_gl_common_texture_alpha_update(Evas_GL_Texture *tex, DATA8 *pixels,
1031 unsigned int w, unsigned int h, int fh __UNUSED__)
1032{
1033 if (!tex->pt) return;
1034 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
1035 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1036#ifdef GL_UNPACK_ROW_LENGTH
1037 glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
1038 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1039#endif
1040 glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
1041 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1042 _tex_sub_2d(tex->x, tex->y, w, h, tex->pt->format, tex->pt->dataformat,
1043 pixels);
1044 if (tex->pt->texture != tex->gc->pipe[0].shader.cur_tex)
1045 {
1046 glBindTexture(GL_TEXTURE_2D, tex->gc->pipe[0].shader.cur_tex);
1047 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1048 }
1049}
1050
1051Evas_GL_Texture *
1052evas_gl_common_texture_yuv_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h)
1053{
1054 Evas_GL_Texture *tex;
1055
1056 tex = calloc(1, sizeof(Evas_GL_Texture));
1057 if (!tex) return NULL;
1058
1059 tex->gc = gc;
1060 tex->references = 1;
1061 tex->ptu = _pool_tex_new(gc, w / 2 + 1, h / 2 + 1, lum_ifmt, lum_fmt);
1062 if (!tex->ptu)
1063 {
1064 free(tex);
1065 return NULL;
1066 }
1067 gc->shared->tex.whole = eina_list_prepend(gc->shared->tex.whole, tex->ptu);
1068 tex->ptu->slot = -1;
1069 tex->ptu->fslot = -1;
1070 tex->ptu->whole = 1;
1071 tex->ptv = _pool_tex_new(gc, tex->ptu->w, tex->ptu->h, lum_ifmt, lum_fmt);
1072 if (!tex->ptv)
1073 {
1074 pt_unref(tex->pt);
1075 pt_unref(tex->ptu);
1076 free(tex);
1077 return NULL;
1078 }
1079 gc->shared->tex.whole = eina_list_prepend(gc->shared->tex.whole, tex->ptv);
1080 tex->ptv->slot = -1;
1081 tex->ptv->fslot = -1;
1082 tex->ptv->whole = 1;
1083 tex->pt = _pool_tex_new(gc, tex->ptu->w * 2, tex->ptu->h * 2, lum_ifmt, lum_fmt);
1084 if (!tex->pt)
1085 {
1086 free(tex);
1087 return NULL;
1088 }
1089 gc->shared->tex.whole = eina_list_prepend(gc->shared->tex.whole, tex->pt);
1090 tex->pt->slot = -1;
1091 tex->pt->fslot = -1;
1092 tex->pt->whole = 1;
1093 tex->x = 0;
1094 tex->y = 0;
1095 tex->w = w;
1096 tex->h = h;
1097 tex->pt->allocations = eina_list_prepend(tex->pt->allocations, tex);
1098 tex->ptu->allocations = eina_list_prepend(tex->ptu->allocations, tex);
1099 tex->ptv->allocations = eina_list_prepend(tex->ptv->allocations, tex);
1100 tex->pt->references++;
1101 tex->ptu->references++;
1102 tex->ptv->references++;
1103 evas_gl_common_texture_yuv_update(tex, rows, w, h);
1104 return tex;
1105}
1106
1107void
1108evas_gl_common_texture_yuv_update(Evas_GL_Texture *tex, DATA8 **rows, unsigned int w, unsigned int h)
1109{
1110 if (!tex->pt) return;
1111 // FIXME: works on lowest size 4 pixel high buffers. must also be multiple of 2
1112#ifdef GL_UNPACK_ROW_LENGTH
1113 glPixelStorei(GL_UNPACK_ROW_LENGTH, rows[1] - rows[0]);
1114 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1115 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
1116 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1117 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
1118 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1119 _tex_2d(tex->pt->intformat, w, h, tex->pt->format, tex->pt->dataformat);
1120 _tex_sub_2d(0, 0, w, h, tex->pt->format, tex->pt->dataformat, rows[0]);
1121 glBindTexture(GL_TEXTURE_2D, tex->ptu->texture);
1122 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1123 glPixelStorei(GL_UNPACK_ROW_LENGTH, rows[h + 1] - rows[h]);
1124 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1125 _tex_2d(tex->ptu->intformat, w / 2, h / 2, tex->ptu->format, tex->ptu->dataformat);
1126 _tex_sub_2d(0, 0, w / 2, h / 2, tex->ptu->format, tex->ptu->dataformat, rows[h]);
1127 glBindTexture(GL_TEXTURE_2D, tex->ptv->texture);
1128 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1129 glPixelStorei(GL_UNPACK_ROW_LENGTH, rows[h + (h / 2) + 1] - rows[h + (h / 2)]);
1130 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1131 _tex_2d(tex->ptv->intformat, w / 2, h / 2, tex->ptv->format, tex->ptv->dataformat);
1132 _tex_sub_2d(0, 0, w / 2, h / 2, tex->ptv->format, tex->ptv->dataformat, rows[h + (h / 2)]);
1133#else
1134 unsigned int y;
1135
1136 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
1137 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1138 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
1139 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1140 _tex_2d(tex->pt->intformat, w, h, tex->pt->format, tex->pt->dataformat);
1141 if ((rows[1] - rows[0]) == (int)w)
1142 _tex_sub_2d(0, 0, w, h, tex->pt->format, tex->pt->dataformat, rows[0]);
1143 else
1144 {
1145 for (y = 0; y < h; y++)
1146 _tex_sub_2d(0, y, w, 1, tex->pt->format, tex->pt->dataformat, rows[y]);
1147 }
1148
1149 glBindTexture(GL_TEXTURE_2D, tex->ptu->texture);
1150 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1151 _tex_2d(tex->ptu->intformat, w / 2, h / 2, tex->ptu->format, tex->ptu->dataformat);
1152 if ((rows[h + 1] - rows[h]) == (int)(w / 2))
1153 _tex_sub_2d(0, 0, w / 2, h / 2, tex->ptu->format, tex->ptu->dataformat, rows[h]);
1154 else
1155 {
1156 for (y = 0; y < (h / 2); y++)
1157 _tex_sub_2d(0, y, w / 2, 1, tex->ptu->format, tex->ptu->dataformat, rows[h + y]);
1158 }
1159
1160 glBindTexture(GL_TEXTURE_2D, tex->ptv->texture);
1161 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1162 _tex_2d(tex->ptv->intformat, w / 2, h / 2, tex->ptv->format, tex->ptv->dataformat);
1163 if ((rows[h + (h / 2) + 1] - rows[h + (h / 2)]) == (int)(w / 2))
1164 _tex_sub_2d(0, 0, w / 2, h / 2, tex->ptv->format, tex->ptv->dataformat, rows[h + (h / 2)]);
1165 else
1166 {
1167 for (y = 0; y < (h / 2); y++)
1168 _tex_sub_2d(0, y, w / 2, 1, tex->ptv->format, tex->ptv->dataformat, rows[h + (h / 2) + y]);
1169 }
1170#endif
1171 if (tex->pt->texture != tex->gc->pipe[0].shader.cur_tex)
1172 {
1173 glBindTexture(GL_TEXTURE_2D, tex->gc->pipe[0].shader.cur_tex);
1174 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1175 }
1176}
1177
1178static Evas_GL_Texture *
1179_evas_gl_common_texture_y2uv_new(Evas_Engine_GL_Context *gc,
1180 unsigned int yw, unsigned int yh,
1181 Eina_Bool uv2w, Eina_Bool uv2h,
1182 GLenum y_ifmt, GLenum y_fmt,
1183 GLenum uv_ifmt, GLenum uv_fmt,
1184 Eina_Bool dynamic)
1185{
1186 Evas_GL_Texture_Pool *pt[2] = { NULL, NULL };
1187 Evas_GL_Texture_Pool *ptuv[2] = { NULL, NULL };
1188 Evas_GL_Texture *tex;
1189 unsigned int uvw, uvh;
1190
1191 uvw = uv2w ? yw / 2 + 1 : yw + 1;
1192 uvh = uv2h ? yh / 2 + 1 : yh + 1;
1193
1194 if (!dynamic)
1195 {
1196 ptuv[0] = _pool_tex_new(gc, uvw, uvh, uv_ifmt, uv_fmt);
1197 ptuv[1] = _pool_tex_new(gc, uvw, uvh, uv_ifmt, uv_fmt);
1198
1199 if (ptuv[0] && ptuv[1])
1200 {
1201 pt[0] = _pool_tex_new(gc,
1202 ptuv[0]->w * (uv2w ? 2 : 1),
1203 ptuv[0]->h * (uv2h ? 2 : 1),
1204 y_ifmt, y_fmt);
1205 pt[1] = _pool_tex_new(gc,
1206 ptuv[1]->w * (uv2w ? 2 : 1),
1207 ptuv[1]->h * (uv2h ? 2 : 1),
1208 y_ifmt, y_fmt);
1209 }
1210 }
1211 else
1212 {
1213 ptuv[0] = _pool_tex_dynamic_new(gc, uvw, uvh, uv_ifmt, uv_fmt);
1214 ptuv[1] = _pool_tex_dynamic_new(gc, uvw, uvh, uv_ifmt, uv_fmt);
1215
1216 if (ptuv[0] && ptuv[1])
1217 {
1218 pt[0] = _pool_tex_dynamic_new(gc,
1219 ptuv[0]->w * (uv2w ? 2 : 1),
1220 ptuv[0]->h * (uv2h ? 2 : 1),
1221 y_ifmt, y_fmt);
1222 pt[1] = _pool_tex_dynamic_new(gc,
1223 ptuv[1]->w * (uv2w ? 2 : 1),
1224 ptuv[1]->h * (uv2h ? 2 : 1),
1225 y_ifmt, y_fmt);
1226 }
1227 }
1228
1229 if (!pt[0] || !pt[1] || !ptuv[0] || !ptuv[1])
1230 goto on_error;
1231
1232 INF("YUV [%i, %i] => Y[%i, %i], UV[%i, %i]",
1233 yw, yh,
1234 pt[0]->w, pt[0]->h,
1235 ptuv[0]->w, ptuv[0]->h);
1236 tex = calloc(1, sizeof(Evas_GL_Texture));
1237 if (!tex)
1238 goto on_error;
1239
1240 tex->gc = gc;
1241 tex->references = 1;
1242 tex->pt = pt[0];
1243 tex->ptuv = ptuv[0];
1244 tex->dyn = dynamic;
1245
1246 pt_link(gc, tex, pt[0]);
1247 pt_link(gc, tex, pt[1]);
1248 pt_link(gc, tex, ptuv[0]);
1249 pt_link(gc, tex, ptuv[1]);
1250
1251 tex->x = 0;
1252 tex->y = 0;
1253 tex->w = yw;
1254 tex->h = yh;
1255 tex->double_buffer.source = 0;
1256 memcpy(tex->double_buffer.pt, pt, sizeof (Evas_GL_Texture_Pool *) * 2);
1257 memcpy(tex->double_buffer.ptuv, ptuv, sizeof (Evas_GL_Texture_Pool *) * 2);
1258
1259 return tex;
1260
1261 on_error:
1262 pt_unref(pt[0]);
1263 pt_unref(pt[1]);
1264 pt_unref(ptuv[0]);
1265 pt_unref(ptuv[1]);
1266 return NULL;
1267}
1268
1269Evas_GL_Texture *
1270evas_gl_common_texture_yuy2_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h)
1271{
1272 Evas_GL_Texture *tex;
1273
1274 tex = _evas_gl_common_texture_y2uv_new(gc, w, h, EINA_TRUE, EINA_FALSE, lum_alpha_ifmt, lum_alpha_fmt, rgba8_ifmt, rgba8_fmt, 0);
1275 evas_gl_common_texture_yuy2_update(tex, rows, w, h);
1276 return tex;
1277}
1278
1279Evas_GL_Texture *
1280evas_gl_common_texture_nv12_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h)
1281{
1282 Evas_GL_Texture *tex;
1283
1284#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1285 tex = _evas_gl_common_texture_y2uv_new(gc, w, h, EINA_TRUE, EINA_TRUE, lum_ifmt, lum_fmt, lum_alpha_ifmt, lum_alpha_fmt, 1);
1286 if (!tex)
1287#endif
1288 tex = _evas_gl_common_texture_y2uv_new(gc, w, h, EINA_TRUE, EINA_TRUE, lum_ifmt, lum_fmt, lum_alpha_ifmt, lum_alpha_fmt, 0);
1289
1290 evas_gl_common_texture_nv12_update(tex, rows, w, h);
1291 return tex;
1292}
1293
1294Evas_GL_Texture *
1295evas_gl_common_texture_nv12tiled_new(Evas_Engine_GL_Context *gc, DATA8 **rows, unsigned int w, unsigned int h)
1296{
1297 Evas_GL_Texture *tex = NULL;
1298
1299#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1300 tex = _evas_gl_common_texture_y2uv_new(gc, w, h, EINA_TRUE, EINA_TRUE, lum_ifmt, lum_fmt, lum_alpha_ifmt, lum_alpha_fmt, 1);
1301 if (!tex)
1302#endif
1303 tex = _evas_gl_common_texture_y2uv_new(gc, w, h, EINA_TRUE, EINA_TRUE, lum_ifmt, lum_fmt, lum_alpha_ifmt, lum_alpha_fmt, 0);
1304
1305 evas_gl_common_texture_nv12tiled_update(tex, rows, w, h);
1306 return tex;
1307}
1308
1309void
1310evas_gl_common_texture_yuy2_update(Evas_GL_Texture *tex, DATA8 **rows, unsigned int w, unsigned int h)
1311{
1312 if (!tex->pt) return;
1313 // FIXME: works on lowest size 4 pixel high buffers. must also be multiple of 2
1314 unsigned int y;
1315
1316 tex->double_buffer.source = 1 - tex->double_buffer.source;
1317 tex->pt = tex->double_buffer.pt[tex->double_buffer.source];
1318 tex->ptuv = tex->double_buffer.ptuv[tex->double_buffer.source];
1319
1320 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
1321 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1322 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
1323 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1324 _tex_2d(tex->pt->intformat, w, h, tex->pt->format, tex->pt->dataformat);
1325 if ((rows[1] - rows[0]) == (int)w * 4)
1326 _tex_sub_2d(0, 0, w, h, tex->pt->format, tex->pt->dataformat, rows[0]);
1327 else
1328 {
1329 for (y = 0; y < h; y++)
1330 _tex_sub_2d(0, y, w, 1, tex->pt->format, tex->pt->dataformat, rows[y]);
1331 }
1332
1333 glBindTexture(GL_TEXTURE_2D, tex->ptuv->texture);
1334 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1335 _tex_2d(tex->ptuv->intformat, w / 2, h, tex->ptuv->format, tex->ptuv->dataformat);
1336#if 0
1337 /*
1338 FIXME: this piece of code doesn't work anymore since texture width
1339 is not anymore exactly w / 2. I don't understand why.
1340 */
1341 if ((rows[1] - rows[0]) == (int)(w * 2))
1342 _tex_sub_2d(0, 0, w / 2, h, tex->ptuv->format, tex->ptuv->dataformat, rows[0]);
1343 else
1344#endif
1345 {
1346 for (y = 0; y < h; y++)
1347 _tex_sub_2d(0, y, w / 2, 1, tex->ptuv->format, tex->ptuv->dataformat, rows[y]);
1348 }
1349
1350 if (tex->pt->texture != tex->gc->pipe[0].shader.cur_tex)
1351 {
1352 glBindTexture(GL_TEXTURE_2D, tex->gc->pipe[0].shader.cur_tex);
1353 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1354 }
1355}
1356
1357void
1358evas_gl_common_texture_nv12_update(Evas_GL_Texture *tex, DATA8 **rows, unsigned int w, unsigned int h)
1359{
1360 if (!tex->pt) return;
1361
1362 tex->double_buffer.source = 1 - tex->double_buffer.source;
1363 tex->pt = tex->double_buffer.pt[tex->double_buffer.source];
1364 tex->ptuv = tex->double_buffer.ptuv[tex->double_buffer.source];
1365
1366 // FIXME: works on lowest size 4 pixel high buffers. must also be multiple of 2
1367#ifdef GL_UNPACK_ROW_LENGTH
1368 glPixelStorei(GL_UNPACK_ROW_LENGTH, rows[1] - rows[0]);
1369 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1370 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
1371 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1372 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
1373 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1374 _tex_2d(tex->pt->intformat, w, h, tex->pt->format, tex->pt->dataformat);
1375 _tex_sub_2d(0, 0, w, h, tex->pt->format, tex->pt->dataformat, rows[0]);
1376 glBindTexture(GL_TEXTURE_2D, tex->ptuv->texture);
1377 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1378 glPixelStorei(GL_UNPACK_ROW_LENGTH, rows[h + 1] - rows[h]);
1379 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1380 _tex_2d(tex->ptuv->intformat, w / 2, h / 2, tex->ptuv->format, tex->ptuv->dataformat);
1381 _tex_sub_2d(0, 0, w / 2, h / 2, tex->ptuv->format, tex->ptuv->dataformat, rows[h]);
1382#else
1383 unsigned int y;
1384
1385 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
1386 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1387 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
1388 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1389 _tex_2d(tex->pt->intformat, w, h, tex->pt->format, tex->pt->dataformat);
1390 if ((rows[1] - rows[0]) == (int)w)
1391 _tex_sub_2d(0, 0, w, h, tex->pt->format, tex->pt->dataformat, rows[0]);
1392 else
1393 {
1394 for (y = 0; y < h; y++)
1395 _tex_sub_2d(0, y, w, 1, tex->pt->format, tex->pt->dataformat, rows[y]);
1396 }
1397
1398 glBindTexture(GL_TEXTURE_2D, tex->ptuv->texture);
1399 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1400 _tex_2d(tex->ptuv->intformat, w / 2, h / 2, tex->ptuv->format, tex->ptuv->dataformat);
1401 if ((rows[h + 1] - rows[h]) == (int)(w / 2))
1402 _tex_sub_2d(0, 0, w / 2, h / 2, tex->ptuv->format, tex->ptuv->dataformat, rows[h]);
1403 else
1404 {
1405 for (y = 0; y < (h / 2); y++)
1406 _tex_sub_2d(0, y, w / 2, 1, tex->ptuv->format, tex->ptuv->dataformat, rows[h + y]);
1407 }
1408#endif
1409 if (tex->pt->texture != tex->gc->pipe[0].shader.cur_tex)
1410 {
1411 glBindTexture(GL_TEXTURE_2D, tex->gc->pipe[0].shader.cur_tex);
1412 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1413 }
1414}
1415
1416void
1417evas_gl_common_texture_nv12tiled_update(Evas_GL_Texture *tex, DATA8 **rows, unsigned int w, unsigned int h)
1418{
1419 unsigned int mb_x, mb_y, mb_w, mb_h;
1420 unsigned int base_h;
1421
1422 if (!tex->pt) return;
1423
1424 tex->double_buffer.source = 1 - tex->double_buffer.source;
1425 tex->pt = tex->double_buffer.pt[tex->double_buffer.source];
1426 tex->ptuv = tex->double_buffer.ptuv[tex->double_buffer.source];
1427
1428 mb_w = w / 64 + (w % 64 ? 1 : 0);
1429 mb_h = h / 32 + (h % 32 ? 1 : 0);
1430
1431#if ( defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX) )
1432 if (tex->dyn)
1433 {
1434 char *texture_addr;
1435 char *tmp;
1436
1437 texture_addr = secsym_eglMapImageSEC(tex->gc->egldisp, tex->pt->dyn.img);
1438
1439 /* Iterate each Y macroblock like we do in evas_convert_yuv.c */
1440 for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++)
1441 {
1442 int step = 2;
1443 int offset = 0;
1444 int x = 0;
1445 int rmb_x = 0;
1446 int ry[2];
1447
1448 ry[0] = mb_y * 2 * 32 * tex->pt->dyn.stride;
1449 ry[1] = ry[0] + 32 * tex->pt->dyn.stride;
1450
1451 for (mb_x = 0; mb_x < mb_w * 2; mb_x++, rmb_x += 64 * 32)
1452 {
1453 unsigned int i;
1454
1455 tmp = texture_addr + x + ry[offset];
1456
1457 for (i = 0; i < 32 * 64; i += 64, tmp += tex->pt->dyn.stride)
1458 memcpy(tmp, rows[mb_y] + rmb_x + i, 64);
1459
1460 step++;
1461 if ((step & 0x3) == 0)
1462 {
1463 offset = 1 - offset;
1464 x -= 64;
1465 }
1466 else
1467 {
1468 x += 64;
1469 }
1470 }
1471 }
1472
1473 if (mb_h & 0x1)
1474 {
1475 int rmb_x = 0;
1476 int x = 0;
1477 int ry;
1478
1479 ry = mb_y * 2 * 32 * tex->pt->dyn.stride;
1480
1481 for (mb_x = 0; mb_x < mb_w; mb_x++, x += 64, rmb_x += 64 * 32)
1482 {
1483 unsigned int i;
1484
1485 tmp = texture_addr + x + ry;
1486
1487 for (i = 0; i < 32 * 64; i += 64, tmp += tex->pt->dyn.stride)
1488 memcpy(tmp, rows[mb_y] + rmb_x + i, 64);
1489 }
1490 }
1491
1492 secsym_eglUnmapImageSEC(tex->gc->egldisp, tex->pt->dyn.img);
1493
1494 texture_addr = secsym_eglMapImageSEC(tex->gc->egldisp, tex->ptuv->dyn.img);
1495
1496 /* Iterate each UV macroblock like we do in evas_convert_yuv.c */
1497 base_h = (mb_h >> 1) + (mb_h & 0x1);
1498
1499 /* h is always a multiple of 32 */
1500 mb_h = h / 2;
1501 mb_h = (mb_h / 32 + (mb_h % 32 ? 1 : 0));
1502
1503 mb_w = w / 2;
1504 mb_w = (mb_w / 32 + (mb_w % 32 ? 1 : 0));
1505
1506 for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++)
1507 {
1508 int step = 2;
1509 int offset = 0;
1510 int x = 0;
1511 int rmb_x = 0;
1512 int ry[2];
1513
1514 ry[0] = mb_y * 2 * 32 * tex->ptuv->dyn.stride;
1515 ry[1] = ry[0] + 32 * tex->ptuv->dyn.stride;
1516
1517 for (mb_x = 0; mb_x < mb_w * 4; mb_x++, rmb_x += 64 * 32)
1518 {
1519 unsigned int i = 0;
1520
1521 tmp = texture_addr + x + ry[offset];
1522
1523 for (i = 0; i < 32 * 64; i += 64, tmp += tex->ptuv->dyn.stride)
1524 memcpy(tmp, rows[mb_y + base_h] + rmb_x + i, 64);
1525
1526 step++;
1527 if ((step & 0x3) == 0)
1528 {
1529 offset = 1 - offset;
1530 x -= 64;
1531 }
1532 else
1533 {
1534 x += 64;
1535 }
1536 }
1537 }
1538
1539 if (mb_h & 0x1)
1540 {
1541 int rmb_x = 0;
1542 int x = 0;
1543 int ry;
1544
1545 ry = mb_y * 2 * 32 * tex->ptuv->dyn.stride;
1546
1547 for (mb_x = 0; mb_x < mb_w * 2; mb_x++, x += 64, rmb_x += 64 * 32)
1548 {
1549 unsigned int i;
1550
1551 tmp = texture_addr + x + ry;
1552
1553 /* It has horizontaly half the pixels, but they are double the size*/
1554 for (i = 0; i < 32 * 64; i += 64, tmp += tex->ptuv->dyn.stride)
1555 memcpy(tmp, rows[mb_y + base_h] + rmb_x + i, 64);
1556 }
1557 }
1558
1559 secsym_eglUnmapImageSEC(tex->gc->egldisp, tex->ptuv->dyn.img);
1560 return ;
1561 }
1562#endif
1563
1564 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
1565 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1566
1567 glBindTexture(GL_TEXTURE_2D, tex->pt->texture);
1568 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1569
1570 // We are telling the driver to not swizzle back the buffer as we are going to replace all pixel
1571 _tex_2d(tex->pt->intformat, w, h, tex->pt->format, tex->pt->dataformat);
1572
1573 /* Iterate each Y macroblock like we do in evas_convert_yuv.c */
1574 for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++)
1575 {
1576 int step = 2;
1577 int offset = 0;
1578 int x = 0;
1579 int rmb_x = 0;
1580 int ry[2];
1581
1582 ry[0] = mb_y * 2 * 32;
1583 ry[1] = ry[0] + 32;
1584
1585 for (mb_x = 0; mb_x < mb_w * 2; mb_x++, rmb_x += 64 * 32)
1586 {
1587 _tex_sub_2d(x, ry[offset], 64, 32, tex->pt->format, tex->pt->dataformat, rows[mb_y] + rmb_x);
1588
1589 step++;
1590 if ((step & 0x3) == 0)
1591 {
1592 offset = 1 - offset;
1593 x -= 64;
1594 }
1595 else
1596 {
1597 x += 64;
1598 }
1599 }
1600 }
1601
1602 if (mb_h & 0x1)
1603 {
1604 int rmb_x = 0;
1605 int x = 0;
1606 int ry;
1607
1608 ry = mb_y * 2 * 32;
1609
1610 for (mb_x = 0; mb_x < mb_w; mb_x++, x += 64, rmb_x += 64 * 32)
1611 _tex_sub_2d(x, ry, 64, 32, tex->pt->format, tex->pt->dataformat, rows[mb_y] + rmb_x);
1612 }
1613
1614 glBindTexture(GL_TEXTURE_2D, tex->ptuv->texture);
1615 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1616
1617 _tex_2d(tex->ptuv->intformat, w, h, tex->ptuv->format, tex->ptuv->dataformat);
1618
1619 /* Iterate each UV macroblock like we do in evas_convert_yuv.c */
1620 base_h = (mb_h >> 1) + (mb_h & 0x1);
1621
1622 /* h is always a multiple of 32 */
1623 mb_h = h / 2;
1624 mb_h = (mb_h / 32 + (mb_h % 32 ? 1 : 0));
1625
1626 mb_w = w / 2;
1627 mb_w = (mb_w / 32 + (mb_w % 32 ? 1 : 0));
1628
1629 for (mb_y = 0; mb_y < (mb_h >> 1); mb_y++)
1630 {
1631 int step = 2;
1632 int offset = 0;
1633 int x = 0;
1634 int rmb_x = 0;
1635 int ry[2];
1636
1637 ry[0] = mb_y * 2 * 32;
1638 ry[1] = ry[0] + 32;
1639
1640 for (mb_x = 0; mb_x < mb_w * 2; mb_x++, rmb_x += 64 * 32)
1641 {
1642 _tex_sub_2d(x, ry[offset], 32, 32,
1643 tex->ptuv->format, tex->ptuv->dataformat,
1644 rows[mb_y + base_h] + rmb_x);
1645 step++;
1646 if ((step & 0x3) == 0)
1647 {
1648 offset = 1 - offset;
1649 x -= 32;
1650 }
1651 else
1652 {
1653 x += 32;
1654 }
1655 }
1656 }
1657
1658 if (mb_h & 0x1)
1659 {
1660 int rmb_x = 0;
1661 int x = 0;
1662 int ry;
1663
1664 ry = mb_y * 2 * 32;
1665
1666 for (mb_x = 0; mb_x < mb_w; mb_x++, x += 32, rmb_x += 64 * 32)
1667 _tex_sub_2d(x, ry, 64, 32, tex->ptuv->format, tex->ptuv->dataformat, rows[mb_y + base_h] + rmb_x);
1668 }
1669}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/compile-s3c6410.sh b/libraries/evas/src/modules/engines/gl_common/shader/compile-s3c6410.sh
deleted file mode 100755
index 450e5de..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/compile-s3c6410.sh
+++ /dev/null
@@ -1,47 +0,0 @@
1#!/bin/sh
2ORIONEXE=/home/raster/Data/orion/orion.exe
3OPTS="-O --nolodcalc -lp"
4
5function compile()
6{
7 F=$1
8
9 make-c-str.sh $F"_frag.shd" > $F"_frag.h"
10 if test -f $F"_frag_s3c6410.asm"; then
11 wine $ORIONEXE -a $OPTS -f $F"_frag_s3c6410.asm"
12 make-c-bin.sh $F"_frag_s3c6410.bin" > $F"_frag_bin_s3c6410.h"
13 rm -f $F"_frag_s3c6410.bin" $F"_frag_s3c6410.h"
14 else
15 wine $ORIONEXE $OPTS -f $F"_frag.shd"
16 make-c-bin.sh $F"_frag.shd.bin" > $F"_frag_bin_s3c6410.h"
17 rm -f $F"_frag.shd.bin" $F"_frag.shd.asm" $F"_frag.shd.h"
18 fi
19
20 make-c-str.sh $F"_vert.shd" > $F"_vert.h"
21 if test -f $F"_vert_s3c6410.asm"; then
22 wine $ORIONEXE -a $OPTS -v $F"_vert_s3c6410.asm"
23 make-c-bin.sh $F"_vert_s3c6410.bin" > $F"_vert_bin_s3c6410.h"
24 rm -f $F"_vert_s3c6410.bin" $F"_vert_s3c6410.h"
25 else
26 wine $ORIONEXE $OPTS -v $F"_vert.shd"
27 make-c-bin.sh $F"_vert.shd.bin" > $F"_vert_bin_s3c6410.h"
28 rm -f $F"_vert.shd.bin" $F"_vert.shd.asm" $F"_vert.shd.h"
29 fi
30}
31
32compile rect
33compile font
34compile img
35compile img_nomul
36compile img_bgra
37compile img_bgra_nomul
38compile img_mask
39compile yuv
40compile yuv_nomul
41compile tex
42compile tex_nomul
43compile nv12
44compile nv12_nomul
45compile yuy2
46compile yuy2_nomul
47## FIXME: compile filter_*
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/compile-sgx.sh b/libraries/evas/src/modules/engines/gl_common/shader/compile-sgx.sh
deleted file mode 100755
index a96b58c..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/compile-sgx.sh
+++ /dev/null
@@ -1,48 +0,0 @@
1#!/bin/bash
2function compile()
3{
4 F=$1
5
6 if [ -f $F".shd" ]; then
7 make-c-str.sh $F".shd" > $F".h"
8 fi
9 if [ -f $F"_frag.shd" ]; then
10 make-c-str.sh $F"_frag.shd" > $F"_frag.h"
11 fi
12 if [ -f $F"_vert.shd" ]; then
13 make-c-str.sh $F"_vert.shd" > $F"_vert.h"
14 fi
15}
16
17compile rect
18compile font
19compile img
20compile img_nomul
21compile img_bgra
22compile img_bgra_nomul
23compile img_mask
24compile yuv
25compile yuv_nomul
26compile tex
27compile tex_nomul
28compile filter_blur_bgra
29compile filter_blur_bgra_nomul
30compile filter_blur
31compile filter_blur_nomul
32compile filter_greyscale_bgra
33compile filter_greyscale_bgra_nomul
34compile filter_greyscale
35compile filter_greyscale_nomul
36compile filter_invert_bgra
37compile filter_invert_bgra_nomul
38compile filter_invert
39compile filter_invert_nomul
40compile filter_sepia_bgra
41compile filter_sepia_bgra_nomul
42compile filter_sepia
43compile filter_sepia_nomul
44compile nv12
45compile nv12_nomul
46compile yuy2
47compile yuy2_nomul
48
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur.h
deleted file mode 100644
index 7c3a369..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur.h
+++ /dev/null
@@ -1,24 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"uniform sampler1D gaussian;\n"
10"varying vec4 col;\n"
11"varying vec2 tex_c;\n"
12"varying weight;\n"
13"uniform radius;\n"
14"void main()\n"
15"{\n"
16" int i;\n"
17" vec4 fc = vec4(0,0,0,0);\n"
18" \n"
19" for (i = 0 ; i < radius ; i ++){\n"
20" fc += texture2D(tex, tex_c.xy).rgba *\n"
21" texture1D(gaussian,i/radius).aaaa;\n"
22" }\n"
23" gl_FragColor = fc / 4 * col;\n"
24"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur.shd
deleted file mode 100644
index 5f13a47..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur.shd
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9uniform sampler1D gaussian;
10varying vec4 col;
11varying vec2 tex_c;
12varying weight;
13uniform radius;
14void main()
15{
16 int i;
17 vec4 fc = vec4(0,0,0,0);
18
19 for (i = 0 ; i < radius ; i ++){
20 fc += texture2D(tex, tex_c.xy).rgba *
21 texture1D(gaussian,i/radius).aaaa;
22 }
23 gl_FragColor = fc / 4 * col;
24}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.h
deleted file mode 100644
index 0862e4f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.h
+++ /dev/null
@@ -1,24 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"uniform sampler1D gaussian;\n"
10"varying vec4 col;\n"
11"varying vec2 tex_c;\n"
12"varying weight;\n"
13"uniform radius;\n"
14"void main()\n"
15"{\n"
16" int i;\n"
17" vec4 fc = vec4(0,0,0,0);\n"
18" \n"
19" for (i = 0 ; i < radius ; i ++){\n"
20" fc += texture2D(tex, tex_c.xy).rgba *\n"
21" texture1D(gaussian,i/radius).aaaa;\n"
22" }\n"
23" gl_FragColor = fc / 4;\n"
24"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.shd
deleted file mode 100644
index a9134df..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra.shd
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9uniform sampler1D gaussian;
10varying vec4 col;
11varying vec2 tex_c;
12varying weight;
13uniform radius;
14void main()
15{
16 int i;
17 vec4 fc = vec4(0,0,0,0);
18
19 for (i = 0 ; i < radius ; i ++){
20 fc += texture2D(tex, tex_c.xy).rgba *
21 texture1D(gaussian,i/radius).aaaa;
22 }
23 gl_FragColor = fc / 4;
24}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.h
deleted file mode 100644
index 0862e4f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.h
+++ /dev/null
@@ -1,24 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"uniform sampler1D gaussian;\n"
10"varying vec4 col;\n"
11"varying vec2 tex_c;\n"
12"varying weight;\n"
13"uniform radius;\n"
14"void main()\n"
15"{\n"
16" int i;\n"
17" vec4 fc = vec4(0,0,0,0);\n"
18" \n"
19" for (i = 0 ; i < radius ; i ++){\n"
20" fc += texture2D(tex, tex_c.xy).rgba *\n"
21" texture1D(gaussian,i/radius).aaaa;\n"
22" }\n"
23" gl_FragColor = fc / 4;\n"
24"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.shd
deleted file mode 100644
index a9134df..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_bgra_nomul.shd
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9uniform sampler1D gaussian;
10varying vec4 col;
11varying vec2 tex_c;
12varying weight;
13uniform radius;
14void main()
15{
16 int i;
17 vec4 fc = vec4(0,0,0,0);
18
19 for (i = 0 ; i < radius ; i ++){
20 fc += texture2D(tex, tex_c.xy).rgba *
21 texture1D(gaussian,i/radius).aaaa;
22 }
23 gl_FragColor = fc / 4;
24}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.h
deleted file mode 100644
index 0862e4f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.h
+++ /dev/null
@@ -1,24 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"uniform sampler1D gaussian;\n"
10"varying vec4 col;\n"
11"varying vec2 tex_c;\n"
12"varying weight;\n"
13"uniform radius;\n"
14"void main()\n"
15"{\n"
16" int i;\n"
17" vec4 fc = vec4(0,0,0,0);\n"
18" \n"
19" for (i = 0 ; i < radius ; i ++){\n"
20" fc += texture2D(tex, tex_c.xy).rgba *\n"
21" texture1D(gaussian,i/radius).aaaa;\n"
22" }\n"
23" gl_FragColor = fc / 4;\n"
24"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.shd
deleted file mode 100644
index a9134df..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_blur_nomul.shd
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9uniform sampler1D gaussian;
10varying vec4 col;
11varying vec2 tex_c;
12varying weight;
13uniform radius;
14void main()
15{
16 int i;
17 vec4 fc = vec4(0,0,0,0);
18
19 for (i = 0 ; i < radius ; i ++){
20 fc += texture2D(tex, tex_c.xy).rgba *
21 texture1D(gaussian,i/radius).aaaa;
22 }
23 gl_FragColor = fc / 4;
24}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.h
deleted file mode 100644
index 850538a..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" float inten = dot(texture2D(tex,tex_c.xy).agb,vec3(.3, .59, .11));\n"
14" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r) * col;\n"
15"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd
deleted file mode 100644
index 78ecf08..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale.shd
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 float inten = dot(texture2D(tex,tex_c.xy).agb,vec3(.3, .59, .11));
14 gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r) * col;
15}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h
deleted file mode 100644
index 3caef35..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));\n"
14" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a) * col;\n"
15"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd
deleted file mode 100644
index 5dca381..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra.shd
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));
14 gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a) * col;
15}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h
deleted file mode 100644
index 4cb36a8..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));\n"
13" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a);\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd
deleted file mode 100644
index a077eea..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_bgra_nomul.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec2 tex_c;
10void main()
11{
12 float inten = dot(texture2D(tex,tex_c.xy).rgb,vec3(.3, .59, .11));
13 gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).a);
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h
deleted file mode 100644
index f501a02..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" float inten = dot(texture2D(tex,tex_c.xy).abg,vec3(.3, .59, .11));\n"
13" gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r);\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd
deleted file mode 100644
index b5b8ec6..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_greyscale_nomul.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec2 tex_c;
10void main()
11{
12 float inten = dot(texture2D(tex,tex_c.xy).abg,vec3(.3, .59, .11));
13 gl_FragColor = vec4(inten, inten, inten, texture2D(tex,tex_c.xy).r);
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert.h
deleted file mode 100644
index 46373e0..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert.shd
deleted file mode 100644
index a75b058..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h
deleted file mode 100644
index 3e3011d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = (vec4(1.0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy))*col;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd
deleted file mode 100644
index 8d7df2d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 gl_FragColor = (vec4(1.0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy))*col;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h
deleted file mode 100644
index b9f1e25..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" vec3 inv = vec3(1.0, 1.0, 1.0) - texture2D(tex,tex_c.xy).rgb;\n"
14" gl_FragColor = vec4(inv.r, inv.g, inv.b, 1.0);\n"
15"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd
deleted file mode 100644
index 682acb2..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_bgra_nomul.shd
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 vec3 inv = vec3(1.0, 1.0, 1.0) - texture2D(tex,tex_c.xy).rgb;
14 gl_FragColor = vec4(inv.r, inv.g, inv.b, 1.0);
15}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h
deleted file mode 100644
index 46373e0..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd
deleted file mode 100644
index a75b058..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_invert_nomul.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 gl_FragColor = (vec4(0, 1.0, 1.0, 1.0) - texture2D(tex, tex_c.xy).bgra)*col;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.h
deleted file mode 100644
index 50fbf12..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.h
+++ /dev/null
@@ -1,20 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" vec3 inp = texture2D(tex,tex_c.xy).abg;\n"
14" vec4 sep;\n"
15" sep.r = dot(inp, vec3(.393, .769, .189));\n"
16" sep.g = dot(inp, vec3(.349, .686, .168));\n"
17" sep.b = dot(inp, vec3(.272, .534, .131));\n"
18" sep.a = texture2D(tex,tex_c.xy).r;\n"
19" gl_FragColor = sep * col;\n"
20"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.shd
deleted file mode 100644
index 027ecfb..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia.shd
+++ /dev/null
@@ -1,20 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 vec3 inp = texture2D(tex,tex_c.xy).abg;
14 vec4 sep;
15 sep.r = dot(inp, vec3(.393, .769, .189));
16 sep.g = dot(inp, vec3(.349, .686, .168));
17 sep.b = dot(inp, vec3(.272, .534, .131));
18 sep.a = texture2D(tex,tex_c.xy).r;
19 gl_FragColor = sep * col;
20}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h
deleted file mode 100644
index 41e4283..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.h
+++ /dev/null
@@ -1,20 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" vec3 inp = texture2D(tex,tex_c.xy).rgb;\n"
14" vec4 sep;\n"
15" sep.r = dot(inp, vec3(.393, .769, .189));\n"
16" sep.g = dot(inp, vec3(.349, .686, .168));\n"
17" sep.b = dot(inp, vec3(.272, .534, .131));\n"
18" sep.a = texture2D(tex,tex_c.xy).a;\n"
19" gl_FragColor = sep * col;\n"
20"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd
deleted file mode 100644
index caed378..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra.shd
+++ /dev/null
@@ -1,20 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 vec3 inp = texture2D(tex,tex_c.xy).rgb;
14 vec4 sep;
15 sep.r = dot(inp, vec3(.393, .769, .189));
16 sep.g = dot(inp, vec3(.349, .686, .168));
17 sep.b = dot(inp, vec3(.272, .534, .131));
18 sep.a = texture2D(tex,tex_c.xy).a;
19 gl_FragColor = sep * col;
20}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h
deleted file mode 100644
index 0c4fe1b..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.h
+++ /dev/null
@@ -1,18 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" vec3 inp = texture2D(tex,tex_c.xy).rgb;\n"
14" gl_FragColor.r = dot(inp, vec3(.393, .769, .189));\n"
15" gl_FragColor.g = dot(inp, vec3(.349, .686, .168));\n"
16" gl_FragColor.b = dot(inp, vec3(.272, .534, .131));\n"
17" gl_FragColor.a = texture2D(tex,tex_c.xy).a;\n"
18"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd
deleted file mode 100644
index 9c6c1d4..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_bgra_nomul.shd
+++ /dev/null
@@ -1,18 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 vec3 inp = texture2D(tex,tex_c.xy).rgb;
14 gl_FragColor.r = dot(inp, vec3(.393, .769, .189));
15 gl_FragColor.g = dot(inp, vec3(.349, .686, .168));
16 gl_FragColor.b = dot(inp, vec3(.272, .534, .131));
17 gl_FragColor.a = texture2D(tex,tex_c.xy).a;
18}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h
deleted file mode 100644
index 23af9ec..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.h
+++ /dev/null
@@ -1,18 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" vec3 inp = texture2D(tex,tex_c.xy).abg;\n"
14" gl_FragColor.r = dot(inp, vec3(.393, .769, .189));\n"
15" gl_FragColor.g = dot(inp, vec3(.349, .686, .168));\n"
16" gl_FragColor.b = dot(inp, vec3(.272, .534, .131));\n"
17" gl_FragColor.a = texture2D(tex,tex_c.xy).r;\n"
18"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd b/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd
deleted file mode 100644
index f9871bd..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/filter_sepia_nomul.shd
+++ /dev/null
@@ -1,18 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 vec3 inp = texture2D(tex,tex_c.xy).abg;
14 gl_FragColor.r = dot(inp, vec3(.393, .769, .189));
15 gl_FragColor.g = dot(inp, vec3(.349, .686, .168));
16 gl_FragColor.b = dot(inp, vec3(.272, .534, .131));
17 gl_FragColor.a = texture2D(tex,tex_c.xy).r;
18}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/font_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/font_frag.h
deleted file mode 100644
index f27dcdc..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/font_frag.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = texture2D(tex, tex_c.xy).aaaa * col;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/font_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/font_frag.shd
deleted file mode 100644
index a8eb9b7..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/font_frag.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 gl_FragColor = texture2D(tex, tex_c.xy).aaaa * col;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/font_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/font_frag_bin_s3c6410.h
deleted file mode 100644
index daca692..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/font_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,9 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000003, 0x00000000,
20x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000001,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000e, 0x00000000,
40x00000000, 0x0000e407, 0x307820e4, 0x00000000, 0x01000000, 0x0100e400,
50x237a10ff, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
60x00000004, 0x00000003, 0x00000009, 0x00000000, 0x00000004, 0x00000008,
70x00000005, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
80x0000000f, 0x00030005, 0x00000000, 0x00786574, 0x006c6f63, 0x5f786574,
90x00000063, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/font_frag_s3c6410.asm b/libraries/evas/src/modules/engines/gl_common/shader/font_frag_s3c6410.asm
deleted file mode 100644
index 4ed116f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/font_frag_s3c6410.asm
+++ /dev/null
@@ -1,26 +0,0 @@
1#-------------------------------------------------
2# ORION - OpenGL ES 2.0 Shading Language Compiler
3# SAMSUNG INDIA SOFTWARE OPERATIONS PVT. LTD.
4# Compiler Version : v04.00.09
5# Release Date : 19.01.2009
6# FIMG VERSION : FIMGv1.5
7# Optimizer Options : -O --nolodcalc
8#-------------------------------------------------
9
10# hand optimised - removed useless ops
11
12ps_3_0
13
14fimg_version 0x01020000
15
16dcl_s2_tex s0
17dcl_f4_col v1.x
18dcl_f2_tex_c v0.x
19
20label start
21label main_
22texld r0.xyzw, v0.xyzw, s0 # tex=s0
23mul_sat oColor.xyzw, r0.wwww, v1.xyzw # gl_FragColor=oColor.xyzw, col=v1.xyzw
24label main_end
25ret
26# 4 instructions, 4 C regs, 1 R regs
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/font_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/font_vert.h
deleted file mode 100644
index 8921d9d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/font_vert.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/font_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/font_vert.shd
deleted file mode 100644
index 606c297..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/font_vert.shd
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord;
7uniform mat4 mvp;
8varying vec4 col;
9varying vec2 tex_c;
10void main()
11{
12 gl_Position = mvp * vertex;
13 col = color;
14 tex_c = tex_coord;
15}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/font_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/font_vert_bin_s3c6410.h
deleted file mode 100644
index 1402448..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/font_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,20 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000007, 0x00000006,
20x00000000, 0x00000000, 0x00000003, 0x00000003, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000031, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20f801e4, 0x00000000, 0x00000000, 0x00020000, 0x20980254, 0x00000000,
80x00000000, 0x00000000, 0x1e000000, 0x00000000, 0x00000000, 0x00000000,
90x00000000, 0x00000000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000c, 0x00000006,
130x00000009, 0x00000000, 0x00000000, 0x00000013, 0x00000005, 0x00000009,
140x00000000, 0x00000004, 0x00000019, 0x00000009, 0x00000003, 0x00000000,
150x00000008, 0x00000000, 0x0000000b, 0x00000009, 0x00010004, 0x00000000,
160x00000027, 0x00000003, 0x00000009, 0x00010004, 0x00000004, 0x0000002b,
170x00000005, 0x00000003, 0x00010004, 0x00000008, 0x00000023, 0x00000003,
180x0000000e, 0x00020001, 0x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69,
190x74726576, 0x63007865, 0x726f6c6f, 0x78657400, 0x6f6f635f, 0x6d006472,
200x63007076, 0x74006c6f, 0x635f7865, 0x00000000, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.h
deleted file mode 100644
index 1ced5e0..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = texture2D(tex, tex_c.xy) * col;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.shd
deleted file mode 100644
index 2bc8d79..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 gl_FragColor = texture2D(tex, tex_c.xy) * col;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag_bin_s3c6410.h
deleted file mode 100644
index feb5bf5..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,11 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000004, 0x00000003,
20x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000001,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000e, 0x00000000,
40x00000000, 0x02025400, 0x23782050, 0x00000000, 0x00000000, 0x0100e407,
50x307820e4, 0x00000000, 0x01000000, 0x0100e400, 0x237a10e4, 0x00000000,
60x00000000, 0x00000000, 0x1e000000, 0x00000000, 0x00000000, 0x00000000,
70x00000000, 0x00000000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
80x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
90x00000009, 0x00000000, 0x00000004, 0x00000008, 0x00000005, 0x00000003,
100x00000000, 0x00000000, 0x00000000, 0x00000003, 0x0000000f, 0x00030005,
110x00000000, 0x00786574, 0x006c6f63, 0x5f786574, 0x00000063,
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.h
deleted file mode 100644
index 459611f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.h
+++ /dev/null
@@ -1,13 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" gl_FragColor = texture2D(tex, tex_c.xy);\n"
13"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.shd
deleted file mode 100644
index 877df62..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag.shd
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec2 tex_c;
10void main()
11{
12 gl_FragColor = texture2D(tex, tex_c.xy);
13}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag_bin_s3c6410.h
deleted file mode 100644
index b89eeb1..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,10 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000003, 0x00000003,
20x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000a, 0x00000000,
40x00000000, 0x02025400, 0x23782050, 0x00000000, 0x00000000, 0x0100e407,
50x307a10e4, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
60x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
70x3f800000, 0x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000,
80x00000004, 0x00000005, 0x00000003, 0x00000000, 0x00000000, 0x00000000,
90x00000003, 0x0000000f, 0x00030005, 0x00000000, 0x00786574, 0x5f786574,
100x00000063, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.h
deleted file mode 100644
index 13d5edd..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.h
+++ /dev/null
@@ -1,12 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec2 tex_coord;\n"
6"uniform mat4 mvp;\n"
7"varying vec2 tex_c;\n"
8"void main()\n"
9"{\n"
10" gl_Position = mvp * vertex;\n"
11" tex_c = tex_coord;\n"
12"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.shd
deleted file mode 100644
index 74f3207..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert.shd
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec2 tex_coord;
6uniform mat4 mvp;
7varying vec2 tex_c;
8void main()
9{
10 gl_Position = mvp * vertex;
11 tex_c = tex_coord;
12}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert_bin_s3c6410.h
deleted file mode 100644
index 314b5f3..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_nomul_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,17 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000006, 0x00000006,
20x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000027, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20980154, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
80x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
90x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x0000000c, 0x00000006, 0x00000009, 0x00000000, 0x00000000, 0x00000013,
130x00000009, 0x00000003, 0x00000000, 0x00000004, 0x00000000, 0x0000000b,
140x00000009, 0x00010004, 0x00000000, 0x00000021, 0x00000005, 0x00000003,
150x00010004, 0x00000004, 0x0000001d, 0x00000003, 0x0000000e, 0x00020001,
160x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69, 0x74726576, 0x74007865,
170x635f7865, 0x64726f6f, 0x70766d00, 0x78657400, 0x0000635f,
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.h
deleted file mode 100644
index 8921d9d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.shd
deleted file mode 100644
index 606c297..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert.shd
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord;
7uniform mat4 mvp;
8varying vec4 col;
9varying vec2 tex_c;
10void main()
11{
12 gl_Position = mvp * vertex;
13 col = color;
14 tex_c = tex_coord;
15}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert_bin_s3c6410.h
deleted file mode 100644
index 1402448..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_bgra_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,20 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000007, 0x00000006,
20x00000000, 0x00000000, 0x00000003, 0x00000003, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000031, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20f801e4, 0x00000000, 0x00000000, 0x00020000, 0x20980254, 0x00000000,
80x00000000, 0x00000000, 0x1e000000, 0x00000000, 0x00000000, 0x00000000,
90x00000000, 0x00000000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000c, 0x00000006,
130x00000009, 0x00000000, 0x00000000, 0x00000013, 0x00000005, 0x00000009,
140x00000000, 0x00000004, 0x00000019, 0x00000009, 0x00000003, 0x00000000,
150x00000008, 0x00000000, 0x0000000b, 0x00000009, 0x00010004, 0x00000000,
160x00000027, 0x00000003, 0x00000009, 0x00010004, 0x00000004, 0x0000002b,
170x00000005, 0x00000003, 0x00010004, 0x00000008, 0x00000023, 0x00000003,
180x0000000e, 0x00020001, 0x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69,
190x74726576, 0x63007865, 0x726f6c6f, 0x78657400, 0x6f6f635f, 0x6d006472,
200x63007076, 0x74006c6f, 0x635f7865, 0x00000000, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/img_frag.h
deleted file mode 100644
index 0a95502..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_frag.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = texture2D(tex, tex_c.xy).bgra * col;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_frag.shd
deleted file mode 100644
index 9faa414..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_frag.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 gl_FragColor = texture2D(tex, tex_c.xy).bgra * col;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_frag_bin_s3c6410.h
deleted file mode 100644
index 3518e8d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,9 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000003, 0x00000000,
20x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000001,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000e, 0x00000000,
40x00000000, 0x0000e407, 0x307820e4, 0x00000000, 0x01000000, 0x0100e400,
50x237a10c6, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
60x00000004, 0x00000003, 0x00000009, 0x00000000, 0x00000004, 0x00000008,
70x00000005, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
80x0000000f, 0x00030005, 0x00000000, 0x00786574, 0x006c6f63, 0x5f786574,
90x00000063, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_frag_s3c6410.asm b/libraries/evas/src/modules/engines/gl_common/shader/img_frag_s3c6410.asm
deleted file mode 100644
index 3716bce..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_frag_s3c6410.asm
+++ /dev/null
@@ -1,26 +0,0 @@
1
2#-------------------------------------------------
3# ORION - OpenGL ES 2.0 Shading Language Compiler
4# SAMSUNG INDIA SOFTWARE OPERATIONS PVT. LTD.
5# Compiler Version : v04.00.09
6# Release Date : 19.01.2009
7# FIMG VERSION : FIMGv1.5
8# Optimizer Options : -O --nolodcalc
9#-------------------------------------------------
10
11# hand optimised - removed useless ops
12
13ps_3_0
14
15fimg_version 0x01020000
16
17dcl_s2_tex s0
18dcl_f4_col v1.x
19dcl_f2_tex_c v0.x
20
21label start
22label main_
23texld r0.xyzw, v0.xyzw, s0 # tex=s0
24mul_sat oColor.xyzw, r0.zyxw, v1.xyzw # gl_FragColor=oColor.xyzw, col=v1.xyzw
25label main_end
26ret
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_mask_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/img_mask_frag.h
deleted file mode 100644
index 1b28128..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_mask_frag.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texm;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c, tex_cm;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = texture2D(texm, tex_cm.xy).aaaa * texture2D(tex, tex_c.xy).rgba * col;\n"
14"}\n"
15"\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_mask_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/img_mask_vert.h
deleted file mode 100644
index 7508c98..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_mask_vert.h
+++ /dev/null
@@ -1,16 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord, tex_coordm;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c, tex_cm;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15" tex_cm = tex_coordm;\n"
16"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.h
deleted file mode 100644
index 0343b34..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.h
+++ /dev/null
@@ -1,13 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" gl_FragColor = texture2D(tex, tex_c.xy).bgra;\n"
13"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.shd
deleted file mode 100644
index 222d635..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag.shd
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec2 tex_c;
10void main()
11{
12 gl_FragColor = texture2D(tex, tex_c.xy).bgra;
13}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag_bin_s3c6410.h
deleted file mode 100644
index 61662c8..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,10 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000003, 0x00000003,
20x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000a, 0x00000000,
40x00000000, 0x02025400, 0x23782050, 0x00000000, 0x00000000, 0x0100e407,
50x307a10c6, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
60x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
70x3f800000, 0x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000,
80x00000004, 0x00000005, 0x00000003, 0x00000000, 0x00000000, 0x00000000,
90x00000003, 0x0000000f, 0x00030005, 0x00000000, 0x00786574, 0x5f786574,
100x00000063, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.h
deleted file mode 100644
index 13d5edd..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.h
+++ /dev/null
@@ -1,12 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec2 tex_coord;\n"
6"uniform mat4 mvp;\n"
7"varying vec2 tex_c;\n"
8"void main()\n"
9"{\n"
10" gl_Position = mvp * vertex;\n"
11" tex_c = tex_coord;\n"
12"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.shd
deleted file mode 100644
index 74f3207..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert.shd
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec2 tex_coord;
6uniform mat4 mvp;
7varying vec2 tex_c;
8void main()
9{
10 gl_Position = mvp * vertex;
11 tex_c = tex_coord;
12}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert_bin_s3c6410.h
deleted file mode 100644
index 314b5f3..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_nomul_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,17 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000006, 0x00000006,
20x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000027, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20980154, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
80x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
90x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x0000000c, 0x00000006, 0x00000009, 0x00000000, 0x00000000, 0x00000013,
130x00000009, 0x00000003, 0x00000000, 0x00000004, 0x00000000, 0x0000000b,
140x00000009, 0x00010004, 0x00000000, 0x00000021, 0x00000005, 0x00000003,
150x00010004, 0x00000004, 0x0000001d, 0x00000003, 0x0000000e, 0x00020001,
160x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69, 0x74726576, 0x74007865,
170x635f7865, 0x64726f6f, 0x70766d00, 0x78657400, 0x0000635f,
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/img_vert.h
deleted file mode 100644
index 8921d9d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_vert.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/img_vert.shd
deleted file mode 100644
index 606c297..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_vert.shd
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord;
7uniform mat4 mvp;
8varying vec4 col;
9varying vec2 tex_c;
10void main()
11{
12 gl_Position = mvp * vertex;
13 col = color;
14 tex_c = tex_coord;
15}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/img_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/img_vert_bin_s3c6410.h
deleted file mode 100644
index 1402448..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/img_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,20 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000007, 0x00000006,
20x00000000, 0x00000000, 0x00000003, 0x00000003, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000031, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20f801e4, 0x00000000, 0x00000000, 0x00020000, 0x20980254, 0x00000000,
80x00000000, 0x00000000, 0x1e000000, 0x00000000, 0x00000000, 0x00000000,
90x00000000, 0x00000000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000c, 0x00000006,
130x00000009, 0x00000000, 0x00000000, 0x00000013, 0x00000005, 0x00000009,
140x00000000, 0x00000004, 0x00000019, 0x00000009, 0x00000003, 0x00000000,
150x00000008, 0x00000000, 0x0000000b, 0x00000009, 0x00010004, 0x00000000,
160x00000027, 0x00000003, 0x00000009, 0x00010004, 0x00000004, 0x0000002b,
170x00000005, 0x00000003, 0x00010004, 0x00000008, 0x00000023, 0x00000003,
180x0000000e, 0x00020001, 0x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69,
190x74726576, 0x63007865, 0x726f6c6f, 0x78657400, 0x6f6f635f, 0x6d006472,
200x63007076, 0x74006c6f, 0x635f7865, 0x00000000, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/make-c-bin.sh b/libraries/evas/src/modules/engines/gl_common/shader/make-c-bin.sh
deleted file mode 100755
index 2902df6..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/make-c-bin.sh
+++ /dev/null
@@ -1,3 +0,0 @@
1#!/bin/sh
2od --width=4 -t x4 -v $1 | \
3awk '{ if (NF > 1) printf("0x%s, ", $2); L = L + 1; if (L > 5) { L = 0; printf("\n");}}'
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/make-c-str.sh b/libraries/evas/src/modules/engines/gl_common/shader/make-c-str.sh
deleted file mode 100755
index fe7e80a..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/make-c-str.sh
+++ /dev/null
@@ -1,3 +0,0 @@
1#!/bin/sh
2
3awk '{printf("\"%s\\n\"\n", $0);}' $1
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.h
deleted file mode 100644
index fec4b23..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.h
+++ /dev/null
@@ -1,31 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texuv;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c, tex_cuv;\n"
11"void main()\n"
12"{\n"
13" float y,u,v,vmu,r,g,b;\n"
14" y=texture2D(tex,tex_c).g;\n"
15" u=texture2D(texuv,tex_cuv).g;\n"
16" v=texture2D(texuv,tex_cuv).a;\n"
17"\n"
18" u=u-0.5;\n"
19" v=v-0.5;\n"
20" vmu=v*0.813+u*0.391;\n"
21" u=u*2.018;\n"
22" v=v*1.596;\n"
23" y=(y-0.062)*1.164;\n"
24"\n"
25" r=y+v;\n"
26" g=y-vmu;\n"
27" b=y+u;\n"
28"\n"
29" gl_FragColor=vec4(r,g,b,1.0) * col;\n"
30"}\n"
31"\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd
deleted file mode 100644
index 34748fc..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_frag.shd
+++ /dev/null
@@ -1,31 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex, texuv;
9varying vec4 col;
10varying vec2 tex_c, tex_cuv;
11void main()
12{
13 float y,u,v,vmu,r,g,b;
14 y=texture2D(tex,tex_c).g;
15 u=texture2D(texuv,tex_cuv).g;
16 v=texture2D(texuv,tex_cuv).a;
17
18 u=u-0.5;
19 v=v-0.5;
20 vmu=v*0.813+u*0.391;
21 u=u*2.018;
22 v=v*1.596;
23 y=(y-0.062)*1.164;
24
25 r=y+v;
26 g=y-vmu;
27 b=y+u;
28
29 gl_FragColor=vec4(r,g,b,1.0) * col;
30}
31
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.h
deleted file mode 100644
index df52d19..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.h
+++ /dev/null
@@ -1,31 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texuv;\n"
9"varying vec2 tex_c, tex_cuv;\n"
10"void main()\n"
11"{\n"
12" float y,u,v,vmu,r,g,b;\n"
13" y=texture2D(tex,tex_c).g;\n"
14" u=texture2D(texuv,tex_cuv).g;\n"
15" v=texture2D(texuv,tex_cuv).a;\n"
16"\n"
17" u=u-0.5;\n"
18" v=v-0.5;\n"
19" vmu=v*0.813+u*0.391;\n"
20" u=u*2.018;\n"
21" v=v*1.596;\n"
22" y=(y-0.062)*1.164;\n"
23"\n"
24" r=y+v;\n"
25" g=y-vmu;\n"
26" b=y+u;\n"
27"\n"
28" gl_FragColor=vec4(r,g,b,1.0);\n"
29"}\n"
30"\n"
31"\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.shd
deleted file mode 100644
index 6910933..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_frag.shd
+++ /dev/null
@@ -1,31 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex, texuv;
9varying vec2 tex_c, tex_cuv;
10void main()
11{
12 float y,u,v,vmu,r,g,b;
13 y=texture2D(tex,tex_c).g;
14 u=texture2D(texuv,tex_cuv).g;
15 v=texture2D(texuv,tex_cuv).a;
16
17 u=u-0.5;
18 v=v-0.5;
19 vmu=v*0.813+u*0.391;
20 u=u*2.018;
21 v=v*1.596;
22 y=(y-0.062)*1.164;
23
24 r=y+v;
25 g=y-vmu;
26 b=y+u;
27
28 gl_FragColor=vec4(r,g,b,1.0);
29}
30
31
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.h
deleted file mode 100644
index 6ff1040..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord, tex_coord2;\n"
7"uniform mat4 mvp;\n"
8"varying vec2 tex_c, tex_cuv;\n"
9"void main()\n"
10"{\n"
11" gl_Position = mvp * vertex;\n"
12" tex_c = tex_coord;\n"
13" tex_cuv = tex_coord2 * 0.25;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.shd
deleted file mode 100644
index 994f5e6..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_nomul_vert.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord, tex_coord2;
7uniform mat4 mvp;
8varying vec2 tex_c, tex_cuv;
9void main()
10{
11 gl_Position = mvp * vertex;
12 tex_c = tex_coord;
13 tex_cuv = tex_coord2 * 0.25;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.h
deleted file mode 100644
index 38d6d9e..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.h
+++ /dev/null
@@ -1,16 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord, tex_coord2;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c, tex_cuv;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15" tex_cuv = tex_coord2 * 0.25;\n"
16"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.shd
deleted file mode 100644
index eb7cc36..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/nv12_vert.shd
+++ /dev/null
@@ -1,16 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord, tex_coord2;
7uniform mat4 mvp;
8varying vec4 col;
9varying vec2 tex_c, tex_cuv;
10void main()
11{
12 gl_Position = mvp * vertex;
13 col = color;
14 tex_c = tex_coord;
15 tex_cuv = tex_coord2 * 0.25;
16}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/rect_frag.h
deleted file mode 100644
index 4a102a4..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag.h
+++ /dev/null
@@ -1,13 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"void main()\n"
11"{\n"
12" gl_FragColor = col;\n"
13"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/rect_frag.shd
deleted file mode 100644
index 02251ee..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag.shd
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10void main()
11{
12 gl_FragColor = col;
13}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/rect_frag_bin_s3c6410.h
deleted file mode 100644
index ee94467..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,6 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000002, 0x00000000,
20x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000000,
40x00000000, 0x00000000, 0x20fa10e4, 0x00000000, 0x00000000, 0x00000000,
50x1e000000, 0x00000000, 0x00000000, 0x00000003, 0x00000009, 0x00000000,
60x00000000, 0x006c6f63, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag_s3c6410.asm b/libraries/evas/src/modules/engines/gl_common/shader/rect_frag_s3c6410.asm
deleted file mode 100644
index 24c47ac..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/rect_frag_s3c6410.asm
+++ /dev/null
@@ -1,24 +0,0 @@
1
2#-------------------------------------------------
3# ORION - OpenGL ES 2.0 Shading Language Compiler
4# SAMSUNG INDIA SOFTWARE OPERATIONS PVT. LTD.
5# Compiler Version : v04.00.09
6# Release Date : 19.01.2009
7# FIMG VERSION : FIMGv1.5
8# Optimizer Options : -O --nolodcalc
9#-------------------------------------------------
10
11# hand optimised - removed useless ops
12
13ps_3_0
14
15fimg_version 0x01020000
16
17dcl_f4_col v0.x
18
19label start
20label main_
21label main_end
22mov_sat oColor.xyzw, v0.xyzw
23ret
24
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/rect_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/rect_vert.h
deleted file mode 100644
index 51d41aa..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/rect_vert.h
+++ /dev/null
@@ -1,12 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"uniform mat4 mvp;\n"
7"varying vec4 col;\n"
8"void main()\n"
9"{\n"
10" gl_Position = mvp * vertex;\n"
11" col = color;\n"
12"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/rect_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/rect_vert.shd
deleted file mode 100644
index 63fea5d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/rect_vert.shd
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6uniform mat4 mvp;
7varying vec4 col;
8void main()
9{
10 gl_Position = mvp * vertex;
11 col = color;
12}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/rect_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/rect_vert_bin_s3c6410.h
deleted file mode 100644
index 3130684..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/rect_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,17 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000006, 0x00000006,
20x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000021, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20f801e4, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
80x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
90x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x0000000c, 0x00000006, 0x00000009, 0x00000000, 0x00000000, 0x00000013,
130x00000005, 0x00000009, 0x00000000, 0x00000004, 0x00000000, 0x0000000b,
140x00000009, 0x00010004, 0x00000000, 0x0000001d, 0x00000003, 0x00000009,
150x00010004, 0x00000004, 0x00000019, 0x00000003, 0x0000000e, 0x00020001,
160x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69, 0x74726576, 0x63007865,
170x726f6c6f, 0x70766d00, 0x6c6f6300, 0x00000000, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_frag.h
deleted file mode 100644
index 1ced5e0..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c;\n"
11"void main()\n"
12"{\n"
13" gl_FragColor = texture2D(tex, tex_c.xy) * col;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/tex_frag.shd
deleted file mode 100644
index 2bc8d79..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec4 col;
10varying vec2 tex_c;
11void main()
12{
13 gl_FragColor = texture2D(tex, tex_c.xy) * col;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_frag_bin_s3c6410.h
deleted file mode 100644
index 24af537..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,9 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000003, 0x00000000,
20x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000001,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000e, 0x00000000,
40x00000000, 0x0000e407, 0x307820e4, 0x00000000, 0x01000000, 0x0100e400,
50x237a10e4, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
60x00000004, 0x00000003, 0x00000009, 0x00000000, 0x00000004, 0x00000008,
70x00000005, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
80x0000000f, 0x00030005, 0x00000000, 0x00786574, 0x006c6f63, 0x5f786574,
90x00000063, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag_s3c6410.asm b/libraries/evas/src/modules/engines/gl_common/shader/tex_frag_s3c6410.asm
deleted file mode 100644
index 14bbfa1..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_frag_s3c6410.asm
+++ /dev/null
@@ -1,26 +0,0 @@
1
2#-------------------------------------------------
3# ORION - OpenGL ES 2.0 Shading Language Compiler
4# SAMSUNG INDIA SOFTWARE OPERATIONS PVT. LTD.
5# Compiler Version : v04.00.09
6# Release Date : 19.01.2009
7# FIMG VERSION : FIMGv1.5
8# Optimizer Options : -O --nolodcalc
9#-------------------------------------------------
10
11# hand optimised - removed useless ops
12
13ps_3_0
14
15fimg_version 0x01020000
16
17dcl_s2_tex s0
18dcl_f4_col v1.x
19dcl_f2_tex_c v0.x
20
21label start
22label main_
23texld r0.xyzw, v0.xyzw, s0 # tex=s0
24mul_sat oColor.xyzw, r0.xyzw, v1.xyzw # gl_FragColor=oColor.xyzw, col=v1.xyzw
25label main_end
26ret
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.h
deleted file mode 100644
index 459611f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.h
+++ /dev/null
@@ -1,13 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" gl_FragColor = texture2D(tex, tex_c.xy);\n"
13"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.shd
deleted file mode 100644
index 877df62..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag.shd
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex;
9varying vec2 tex_c;
10void main()
11{
12 gl_FragColor = texture2D(tex, tex_c.xy);
13}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag_bin_s3c6410.h
deleted file mode 100644
index b89eeb1..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,10 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x00000003, 0x00000003,
20x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000a, 0x00000000,
40x00000000, 0x02025400, 0x23782050, 0x00000000, 0x00000000, 0x0100e407,
50x307a10e4, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
60x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
70x3f800000, 0x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000,
80x00000004, 0x00000005, 0x00000003, 0x00000000, 0x00000000, 0x00000000,
90x00000003, 0x0000000f, 0x00030005, 0x00000000, 0x00786574, 0x5f786574,
100x00000063, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.h
deleted file mode 100644
index 13d5edd..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.h
+++ /dev/null
@@ -1,12 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec2 tex_coord;\n"
6"uniform mat4 mvp;\n"
7"varying vec2 tex_c;\n"
8"void main()\n"
9"{\n"
10" gl_Position = mvp * vertex;\n"
11" tex_c = tex_coord;\n"
12"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.shd
deleted file mode 100644
index 74f3207..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert.shd
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec2 tex_coord;
6uniform mat4 mvp;
7varying vec2 tex_c;
8void main()
9{
10 gl_Position = mvp * vertex;
11 tex_c = tex_coord;
12}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert_bin_s3c6410.h
deleted file mode 100644
index 314b5f3..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_nomul_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,17 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000006, 0x00000006,
20x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000027, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20980154, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
80x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
90x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x0000000c, 0x00000006, 0x00000009, 0x00000000, 0x00000000, 0x00000013,
130x00000009, 0x00000003, 0x00000000, 0x00000004, 0x00000000, 0x0000000b,
140x00000009, 0x00010004, 0x00000000, 0x00000021, 0x00000005, 0x00000003,
150x00010004, 0x00000004, 0x0000001d, 0x00000003, 0x0000000e, 0x00020001,
160x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69, 0x74726576, 0x74007865,
170x635f7865, 0x64726f6f, 0x70766d00, 0x78657400, 0x0000635f,
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_vert.h
deleted file mode 100644
index 8921d9d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_vert.h
+++ /dev/null
@@ -1,15 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/tex_vert.shd
deleted file mode 100644
index 606c297..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_vert.shd
+++ /dev/null
@@ -1,15 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord;
7uniform mat4 mvp;
8varying vec4 col;
9varying vec2 tex_c;
10void main()
11{
12 gl_Position = mvp * vertex;
13 col = color;
14 tex_c = tex_coord;
15}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/tex_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/tex_vert_bin_s3c6410.h
deleted file mode 100644
index 1402448..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/tex_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,20 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000007, 0x00000006,
20x00000000, 0x00000000, 0x00000003, 0x00000003, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000031, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20f801e4, 0x00000000, 0x00000000, 0x00020000, 0x20980254, 0x00000000,
80x00000000, 0x00000000, 0x1e000000, 0x00000000, 0x00000000, 0x00000000,
90x00000000, 0x00000000, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000c, 0x00000006,
130x00000009, 0x00000000, 0x00000000, 0x00000013, 0x00000005, 0x00000009,
140x00000000, 0x00000004, 0x00000019, 0x00000009, 0x00000003, 0x00000000,
150x00000008, 0x00000000, 0x0000000b, 0x00000009, 0x00010004, 0x00000000,
160x00000027, 0x00000003, 0x00000009, 0x00010004, 0x00000004, 0x0000002b,
170x00000005, 0x00000003, 0x00010004, 0x00000008, 0x00000023, 0x00000003,
180x0000000e, 0x00020001, 0x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69,
190x74726576, 0x63007865, 0x726f6c6f, 0x78657400, 0x6f6f635f, 0x6d006472,
200x63007076, 0x74006c6f, 0x635f7865, 0x00000000, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h
deleted file mode 100644
index 87f4095..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.h
+++ /dev/null
@@ -1,24 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texu, texv;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c, tex_c2, tex_c3;\n"
11"void main()\n"
12"{\n"
13" float r, g, b, y, u, v;\n"
14" y = texture2D(tex, tex_c.xy).r;\n"
15" u = texture2D(texu, tex_c2.xy).r;\n"
16" v = texture2D(texv, tex_c3.xy).r;\n"
17" y = (y - 0.0625) * 1.164;\n"
18" u = u - 0.5;\n"
19" v = v - 0.5;\n"
20" r = y + (1.402 * v);\n"
21" g = y - (0.34414 * u) - (0.71414 * v);\n"
22" b = y + (1.772 * u);\n"
23" gl_FragColor = vec4(r, g, b, 1.0) * col;\n"
24"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.shd
deleted file mode 100644
index 367fb55..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag.shd
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex, texu, texv;
9varying vec4 col;
10varying vec2 tex_c, tex_c2, tex_c3;
11void main()
12{
13 float r, g, b, y, u, v;
14 y = texture2D(tex, tex_c.xy).r;
15 u = texture2D(texu, tex_c2.xy).r;
16 v = texture2D(texv, tex_c3.xy).r;
17 y = (y - 0.0625) * 1.164;
18 u = u - 0.5;
19 v = v - 0.5;
20 r = y + (1.402 * v);
21 g = y - (0.34414 * u) - (0.71414 * v);
22 b = y + (1.772 * u);
23 gl_FragColor = vec4(r, g, b, 1.0) * col;
24}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_bin_s3c6410.h
deleted file mode 100644
index cd301dc..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,24 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x0000000d, 0x00000007,
20x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000003,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000026, 0x00000000,
40x00000000, 0x02065400, 0x23782050, 0x00000000, 0x00000000, 0x0100e407,
50x307820e4, 0x00000000, 0x01000000, 0x02065400, 0x23782150, 0x00000000,
60x01000000, 0x0101e407, 0x307821e4, 0x00000000, 0x02000000, 0x02065400,
70x23782250, 0x00000000, 0x02000000, 0x0102e407, 0x307822e4, 0x00000000,
80x00000000, 0x02020001, 0x237823e4, 0x00000000, 0x01e40103, 0x02030001,
90x2ef823e4, 0x00000000, 0x02e40103, 0x02040001, 0x2ef823e4, 0x00000000,
100x00000000, 0x02050000, 0x20f824e4, 0x00000000, 0x06e40103, 0x01040002,
110x2ef823e4, 0x00000000, 0x03000000, 0x0103e400, 0x237a10e4, 0x00000000,
120x00000000, 0x00000000, 0x1e000000, 0x00000000, 0x00000000, 0x00000000,
130x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
140x3f94fdf4, 0x3f94fdf4, 0x3f94fdf4, 0x00000000, 0x00000000, 0xbeb02de0,
150x3fe2d0e5, 0x00000000, 0x3fb374bc, 0xbf36cf42, 0x00000000, 0x00000000,
160xbf4617c2, 0x3ee9a027, 0xbf7573eb, 0x3f800000, 0x3f800000, 0x00000000,
170x00000000, 0x00000000, 0x0000000e, 0x00000003, 0x00000009, 0x00000000,
180x0000000c, 0x00000012, 0x00000005, 0x00000003, 0x00000000, 0x00000000,
190x00000018, 0x00000006, 0x00000003, 0x00000000, 0x00000004, 0x0000001f,
200x00000006, 0x00000003, 0x00000000, 0x00000008, 0x00000000, 0x00000003,
210x0000000f, 0x00030005, 0x00000000, 0x00000004, 0x00000004, 0x0000000f,
220x00030005, 0x00000004, 0x00000009, 0x00000004, 0x0000000f, 0x00030005,
230x00000008, 0x00786574, 0x75786574, 0x78657400, 0x6f630076, 0x6574006c,
240x00635f78, 0x5f786574, 0x74003263, 0x635f7865, 0x00000033,
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_s3c6410.asm b/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_s3c6410.asm
deleted file mode 100644
index 9a10bf0..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_frag_s3c6410.asm
+++ /dev/null
@@ -1,46 +0,0 @@
1
2#-------------------------------------------------
3# ORION - OpenGL ES 2.0 Shading Language Compiler
4# SAMSUNG INDIA SOFTWARE OPERATIONS PVT. LTD.
5# Compiler Version : v04.00.09
6# Release Date : 19.01.2009
7# FIMG VERSION : FIMGv1.5
8# Optimizer Options : -O --nolodcalc
9#-------------------------------------------------
10
11# hand optimised - removed useless ops
12
13ps_3_0
14
15fimg_version 0x01020000
16
17dcl_s2_tex s0
18dcl_s2_texu s1
19dcl_s2_texv s2
20dcl_f4_col v3.x
21dcl_f2_tex_c v0.x
22dcl_f2_tex_c2 v1.x
23dcl_f2_tex_c3 v2.x
24
25def c2, 1.164000, 1.164000, 1.164000, 0.000000
26def c3, 0.000000, -0.344100, 1.772000, 0.000000
27def c4, 1.402000, -0.714100, 0.000000, 0.000000
28def c5, -0.773800, 0.456300, -0.958800, 1.000000
29def c6, 1.000000, 0.000000, 0.000000, 0.000000
30
31label start
32label main_
33mul r0.xyzw, c6.xxyy, v0.xyyy # tex_c=v0.xyyy
34texld r0.xyzw, r0.xyzw, s0 # tex=s0
35mul r1.xyzw, c6.xxyy, v1.xyyy # tex_c2=v1.xyyy
36texld r1.xyzw, r1.xyzw, s1 # texu=s1
37mul r2.xyzw, c6.xxyy, v2.xyyy # tex_c3=v2.xyyy
38texld r2.xyzw, r2.xyzw, s2 # texv=s2
39mul r3.xyzw, c2.xyzw, r0.xxxx # yuv=r0.xxxx
40mad r3.xyzw, c3.xyzw, r1.xxxx, r3.xyzw # yuv=r1.xxxx
41mad r3.xyzw, c4.xyzw, r2.xxxx, r3.xyzw # yuv=r2.xxxx
42mov r4.xyzw, c5.xyzw
43mad r3.xyzw, r4.xyzw, c6.xxxx, r3.xyzw # yuv=c6.xxxx
44mul_sat oColor.xyzw, r3.xyzw, v3.xyzw # gl_FragColor=oColor.xyzw, col=v3.xyzw
45label main_end
46ret
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.h
deleted file mode 100644
index 0df4b97..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.h
+++ /dev/null
@@ -1,23 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texu, texv;\n"
9"varying vec2 tex_c, tex_c2, tex_c3;\n"
10"void main()\n"
11"{\n"
12" float r, g, b, y, u, v;\n"
13" y = texture2D(tex, tex_c.xy).r;\n"
14" u = texture2D(texu, tex_c2.xy).r;\n"
15" v = texture2D(texv, tex_c3.xy).r;\n"
16" y = (y - 0.0625) * 1.164;\n"
17" u = u - 0.5;\n"
18" v = v - 0.5;\n"
19" r = y + (1.402 * v);\n"
20" g = y - (0.34414 * u) - (0.71414 * v);\n"
21" b = y + (1.772 * u);\n"
22" gl_FragColor = vec4(r, g, b, 1.0);\n"
23"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.shd
deleted file mode 100644
index ce24622..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag.shd
+++ /dev/null
@@ -1,23 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex, texu, texv;
9varying vec2 tex_c, tex_c2, tex_c3;
10void main()
11{
12 float r, g, b, y, u, v;
13 y = texture2D(tex, tex_c.xy).r;
14 u = texture2D(texu, tex_c2.xy).r;
15 v = texture2D(texv, tex_c3.xy).r;
16 y = (y - 0.0625) * 1.164;
17 u = u - 0.5;
18 v = v - 0.5;
19 r = y + (1.402 * v);
20 g = y - (0.34414 * u) - (0.71414 * v);
21 b = y + (1.772 * u);
22 gl_FragColor = vec4(r, g, b, 1.0);
23}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag_bin_s3c6410.h
deleted file mode 100644
index 45aa66d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_frag_bin_s3c6410.h
+++ /dev/null
@@ -1,23 +0,0 @@
10x20205350, 0xffff0008, 0x00000048, 0x01020000, 0x0000000c, 0x00000007,
20x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000003,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000022, 0x00000000,
40x00000000, 0x02065400, 0x23782050, 0x00000000, 0x00000000, 0x0100e407,
50x307820e4, 0x00000000, 0x01000000, 0x02065400, 0x23782150, 0x00000000,
60x01000000, 0x0101e407, 0x307821e4, 0x00000000, 0x02000000, 0x02065400,
70x23782250, 0x00000000, 0x02000000, 0x0102e407, 0x307822e4, 0x00000000,
80x00000000, 0x02020001, 0x237823e4, 0x00000000, 0x01e40103, 0x02030001,
90x2ef823e4, 0x00000000, 0x02e40103, 0x02040001, 0x2ef823e4, 0x00000000,
100x00000000, 0x02050000, 0x20f824e4, 0x00000000, 0x06e40103, 0x01040002,
110x2efa10e4, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
120x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
130x3f800000, 0x3f800000, 0x3f94fdf4, 0x3f94fdf4, 0x3f94fdf4, 0x00000000,
140x00000000, 0xbeb02de0, 0x3fe2d0e5, 0x00000000, 0x3fb374bc, 0xbf36cf42,
150x00000000, 0x00000000, 0xbf4617c2, 0x3ee9a027, 0xbf7573eb, 0x3f800000,
160x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x0000000e, 0x00000005,
170x00000003, 0x00000000, 0x00000000, 0x00000014, 0x00000006, 0x00000003,
180x00000000, 0x00000004, 0x0000001b, 0x00000006, 0x00000003, 0x00000000,
190x00000008, 0x00000000, 0x00000003, 0x0000000f, 0x00030005, 0x00000000,
200x00000004, 0x00000004, 0x0000000f, 0x00030005, 0x00000004, 0x00000009,
210x00000004, 0x0000000f, 0x00030005, 0x00000008, 0x00786574, 0x75786574,
220x78657400, 0x65740076, 0x00635f78, 0x5f786574, 0x74003263, 0x635f7865,
230x00000033, \ No newline at end of file
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.h
deleted file mode 100644
index c3f585f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.h
+++ /dev/null
@@ -1,14 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec2 tex_coord, tex_coord2, tex_coord3;\n"
6"uniform mat4 mvp;\n"
7"varying vec2 tex_c, tex_c2, tex_c3;\n"
8"void main()\n"
9"{\n"
10" gl_Position = mvp * vertex;\n"
11" tex_c = tex_coord;\n"
12" tex_c2 = tex_coord2;\n"
13" tex_c3 = tex_coord3;\n"
14"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.shd
deleted file mode 100644
index a83d505..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert.shd
+++ /dev/null
@@ -1,14 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec2 tex_coord, tex_coord2, tex_coord3;
6uniform mat4 mvp;
7varying vec2 tex_c, tex_c2, tex_c3;
8void main()
9{
10 gl_Position = mvp * vertex;
11 tex_c = tex_coord;
12 tex_c2 = tex_coord2;
13 tex_c3 = tex_coord3;
14}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert_bin_s3c6410.h
deleted file mode 100644
index 5942b4b..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_nomul_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,23 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000008, 0x00000006,
20x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000004b, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20980154, 0x00000000, 0x00000000, 0x00020000, 0x20980254, 0x00000000,
80x00000000, 0x00030000, 0x20980354, 0x00000000, 0x00000000, 0x00000000,
90x1e000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
100x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x00000000, 0x00000000,
110x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
130x00000000, 0x00000000, 0x0000000c, 0x00000006, 0x00000009, 0x00000000,
140x00000000, 0x00000013, 0x00000009, 0x00000003, 0x00000000, 0x00000004,
150x0000001d, 0x0000000a, 0x00000003, 0x00000000, 0x00000008, 0x00000028,
160x0000000a, 0x00000003, 0x00000000, 0x0000000c, 0x00000000, 0x0000000b,
170x00000009, 0x00010004, 0x00000000, 0x00000037, 0x00000005, 0x00000003,
180x00010004, 0x00000004, 0x0000003d, 0x00000006, 0x00000003, 0x00010004,
190x00000008, 0x00000044, 0x00000006, 0x00000003, 0x00010004, 0x0000000c,
200x00000033, 0x00000003, 0x0000000e, 0x00020001, 0x00000008, 0x505f6c67,
210x7469736f, 0x006e6f69, 0x74726576, 0x74007865, 0x635f7865, 0x64726f6f,
220x78657400, 0x6f6f635f, 0x00326472, 0x5f786574, 0x726f6f63, 0x6d003364,
230x74007076, 0x635f7865, 0x78657400, 0x0032635f, 0x5f786574, 0x00003363,
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.h
deleted file mode 100644
index 6ccf06d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.h
+++ /dev/null
@@ -1,17 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord, tex_coord2, tex_coord3;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c, tex_c2, tex_c3;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15" tex_c2 = tex_coord2;\n"
16" tex_c3 = tex_coord3;\n"
17"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.shd
deleted file mode 100644
index 0ea0b2f..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert.shd
+++ /dev/null
@@ -1,17 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord, tex_coord2, tex_coord3;
7uniform mat4 mvp;
8varying vec4 col;
9varying vec2 tex_c, tex_c2, tex_c3;
10void main()
11{
12 gl_Position = mvp * vertex;
13 col = color;
14 tex_c = tex_coord;
15 tex_c2 = tex_coord2;
16 tex_c3 = tex_coord3;
17}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert_bin_s3c6410.h b/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert_bin_s3c6410.h
deleted file mode 100644
index e757b6d..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuv_vert_bin_s3c6410.h
+++ /dev/null
@@ -1,26 +0,0 @@
10x20205356, 0xffff0008, 0x00000048, 0x01020000, 0x00000009, 0x00000006,
20x00000000, 0x00000000, 0x00000005, 0x00000005, 0x00000001, 0x00000000,
30x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000055, 0x00000000,
40x00000000, 0x02020000, 0x237820e4, 0x00000000, 0x00e40100, 0x02035500,
50x2ef820e4, 0x00000000, 0x00e40100, 0x0204aa00, 0x2ef820e4, 0x00000000,
60x00e40100, 0x0205ff00, 0x2ef800e4, 0x00000000, 0x00000000, 0x00010000,
70x20f801e4, 0x00000000, 0x00000000, 0x00020000, 0x20980254, 0x00000000,
80x00000000, 0x00030000, 0x20980354, 0x00000000, 0x00000000, 0x00040000,
90x20980454, 0x00000000, 0x00000000, 0x00000000, 0x1e000000, 0x00000000,
100x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x3f800000,
110x3f800000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
120x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
130x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
140x0000000c, 0x00000006, 0x00000009, 0x00000000, 0x00000000, 0x00000013,
150x00000005, 0x00000009, 0x00000000, 0x00000004, 0x00000019, 0x00000009,
160x00000003, 0x00000000, 0x00000008, 0x00000023, 0x0000000a, 0x00000003,
170x00000000, 0x0000000c, 0x0000002e, 0x0000000a, 0x00000003, 0x00000000,
180x00000010, 0x00000000, 0x0000000b, 0x00000009, 0x00010004, 0x00000000,
190x0000003d, 0x00000003, 0x00000009, 0x00010004, 0x00000004, 0x00000041,
200x00000005, 0x00000003, 0x00010004, 0x00000008, 0x00000047, 0x00000006,
210x00000003, 0x00010004, 0x0000000c, 0x0000004e, 0x00000006, 0x00000003,
220x00010004, 0x00000010, 0x00000039, 0x00000003, 0x0000000e, 0x00020001,
230x00000008, 0x505f6c67, 0x7469736f, 0x006e6f69, 0x74726576, 0x63007865,
240x726f6c6f, 0x78657400, 0x6f6f635f, 0x74006472, 0x635f7865, 0x64726f6f,
250x65740032, 0x6f635f78, 0x3364726f, 0x70766d00, 0x6c6f6300, 0x78657400,
260x7400635f, 0x635f7865, 0x65740032, 0x33635f78, 0x00000000,
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h
deleted file mode 100644
index abe4b03..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.h
+++ /dev/null
@@ -1,30 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texuv;\n"
9"varying vec4 col;\n"
10"varying vec2 tex_c, tex_cuv;\n"
11"void main()\n"
12"{\n"
13" float y,u,v,vmu,r,g,b;\n"
14" y=texture2D(tex,tex_c).r;\n"
15" u=texture2D(texuv,tex_cuv).g;\n"
16" v=texture2D(texuv,tex_cuv).a;\n"
17"\n"
18" u=u-0.5;\n"
19" v=v-0.5;\n"
20" vmu=v*0.813+u*0.391;\n"
21" u=u*2.018;\n"
22" v=v*1.596;\n"
23"\n"
24" r=y+v;\n"
25" g=y-vmu;\n"
26" b=y+u;\n"
27"\n"
28" gl_FragColor=vec4(r,g,b,1.0) * col;\n"
29"}\n"
30"\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.shd
deleted file mode 100644
index 98dd91b..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_frag.shd
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex, texuv;
9varying vec4 col;
10varying vec2 tex_c, tex_cuv;
11void main()
12{
13 float y,u,v,vmu,r,g,b;
14 y=texture2D(tex,tex_c).r;
15 u=texture2D(texuv,tex_cuv).g;
16 v=texture2D(texuv,tex_cuv).a;
17
18 u=u-0.5;
19 v=v-0.5;
20 vmu=v*0.813+u*0.391;
21 u=u*2.018;
22 v=v*1.596;
23
24 r=y+v;
25 g=y-vmu;
26 b=y+u;
27
28 gl_FragColor=vec4(r,g,b,1.0) * col;
29}
30
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.h b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.h
deleted file mode 100644
index 618fa50..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.h
+++ /dev/null
@@ -1,30 +0,0 @@
1"#ifdef GL_ES\n"
2"#ifdef GL_FRAGMENT_PRECISION_HIGH\n"
3"precision highp float;\n"
4"#else\n"
5"precision mediump float;\n"
6"#endif\n"
7"#endif\n"
8"uniform sampler2D tex, texuv;\n"
9"varying vec2 tex_c, tex_cuv;\n"
10"void main()\n"
11"{\n"
12" float y,u,v,vmu,r,g,b;\n"
13" y=texture2D(tex,tex_c).r;\n"
14" u=texture2D(texuv,tex_cuv).g;\n"
15" v=texture2D(texuv,tex_cuv).a;\n"
16"\n"
17" u=u-0.5;\n"
18" v=v-0.5;\n"
19" vmu=v*0.813+u*0.391;\n"
20" u=u*2.018;\n"
21" v=v*1.596;\n"
22" y=(y-0.062)*1.164;\n"
23"\n"
24" r=y+v;\n"
25" g=y-vmu;\n"
26" b=y+u;\n"
27"\n"
28" gl_FragColor=vec4(r,g,b,1.0);\n"
29"}\n"
30"\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.shd
deleted file mode 100644
index fd82e2a..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_frag.shd
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifdef GL_ES
2#ifdef GL_FRAGMENT_PRECISION_HIGH
3precision highp float;
4#else
5precision mediump float;
6#endif
7#endif
8uniform sampler2D tex, texuv;
9varying vec2 tex_c, tex_cuv;
10void main()
11{
12 float y,u,v,vmu,r,g,b;
13 y=texture2D(tex,tex_c).r;
14 u=texture2D(texuv,tex_cuv).g;
15 v=texture2D(texuv,tex_cuv).a;
16
17 u=u-0.5;
18 v=v-0.5;
19 vmu=v*0.813+u*0.391;
20 u=u*2.018;
21 v=v*1.596;
22 y=(y-0.062)*1.164;
23
24 r=y+v;
25 g=y-vmu;
26 b=y+u;
27
28 gl_FragColor=vec4(r,g,b,1.0);
29}
30
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.h
deleted file mode 100644
index 4620b66..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.h
+++ /dev/null
@@ -1,13 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec2 tex_coord, tex_coord2;\n"
6"uniform mat4 mvp;\n"
7"varying vec2 tex_c, tex_cuv;\n"
8"void main()\n"
9"{\n"
10" gl_Position = mvp * vertex;\n"
11" tex_c = tex_coord;\n"
12" tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n"
13"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.shd
deleted file mode 100644
index 05acc9c..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_nomul_vert.shd
+++ /dev/null
@@ -1,13 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec2 tex_coord, tex_coord2;
6uniform mat4 mvp;
7varying vec2 tex_c, tex_cuv;
8void main()
9{
10 gl_Position = mvp * vertex;
11 tex_c = tex_coord;
12 tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y);
13}
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.h b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.h
deleted file mode 100644
index 1e49018..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.h
+++ /dev/null
@@ -1,16 +0,0 @@
1"#ifdef GL_ES\n"
2"precision highp float;\n"
3"#endif\n"
4"attribute vec4 vertex;\n"
5"attribute vec4 color;\n"
6"attribute vec2 tex_coord, tex_coord2;\n"
7"uniform mat4 mvp;\n"
8"varying vec4 col;\n"
9"varying vec2 tex_c, tex_cuv;\n"
10"void main()\n"
11"{\n"
12" gl_Position = mvp * vertex;\n"
13" col = color;\n"
14" tex_c = tex_coord;\n"
15" tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y);\n"
16"}\n"
diff --git a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.shd b/libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.shd
deleted file mode 100644
index 54efb1e..0000000
--- a/libraries/evas/src/modules/engines/gl_common/shader/yuy2_vert.shd
+++ /dev/null
@@ -1,16 +0,0 @@
1#ifdef GL_ES
2precision highp float;
3#endif
4attribute vec4 vertex;
5attribute vec4 color;
6attribute vec2 tex_coord, tex_coord2;
7uniform mat4 mvp;
8varying vec4 col;
9varying vec2 tex_c, tex_cuv;
10void main()
11{
12 gl_Position = mvp * vertex;
13 col = color;
14 tex_c = tex_coord;
15 tex_cuv = vec2(tex_coord2.x * 0.5, tex_coord2.y);
16}
diff --git a/libraries/evas/src/modules/engines/gl_sdl/Evas_Engine_GL_SDL.h b/libraries/evas/src/modules/engines/gl_sdl/Evas_Engine_GL_SDL.h
deleted file mode 100644
index 3804aa0..0000000
--- a/libraries/evas/src/modules/engines/gl_sdl/Evas_Engine_GL_SDL.h
+++ /dev/null
@@ -1,24 +0,0 @@
1#ifndef _EVAS_ENGINE_GL_SDL_H
2#define _EVAS_ENGINE_GL_SDL_H
3
4#include <SDL/SDL.h>
5
6typedef struct _Evas_Engine_Info_GL_SDL Evas_Engine_Info_GL_SDL;
7
8struct _Evas_Engine_Info_GL_SDL
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 int rotation;
17 int fullscreen : 1;
18 int noframe : 1;
19 } flags;
20
21};
22#endif
23
24
diff --git a/libraries/evas/src/modules/engines/gl_sdl/Makefile.am b/libraries/evas/src/modules/engines/gl_sdl/Makefile.am
deleted file mode 100644
index abdeaf0..0000000
--- a/libraries/evas/src/modules/engines/gl_sdl/Makefile.am
+++ /dev/null
@@ -1,46 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines/gl_common \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@GL_EET_CFLAGS@ \
13@evas_engine_gl_sdl_cflags@
14
15if BUILD_ENGINE_GL_SDL
16
17GL_SDL_SOURCES = \
18evas_engine.c
19
20GL_SDL_LIBADD = @evas_engine_gl_sdl_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
21
22
23includes_HEADERS = Evas_Engine_GL_SDL.h
24includesdir = $(includedir)/evas-@VMAJ@
25
26if !EVAS_STATIC_BUILD_GL_SDL
27
28pkgdir = $(libdir)/evas/modules/engines/gl_sdl/$(MODULE_ARCH)
29pkg_LTLIBRARIES = module.la
30
31module_la_SOURCES = $(GL_SDL_SOURCES)
32module_la_LIBADD = @EINA_LIBS@ $(GL_SDL_LIBADD) $(top_builddir)/src/lib/libevas.la @dlopen_libs@
33module_la_LDFLAGS = -module -avoid-version
34module_la_LIBTOOLFLAGS = --tag=disable-static
35
36else
37
38noinst_LTLIBRARIES = libevas_engine_gl_sdl.la
39
40libevas_engine_gl_sdl_la_SOURCES = $(GL_SDL_SOURCES)
41libevas_engine_gl_sdl_la_LIBADD = $(GL_SDL_LIBADD)
42
43endif
44endif
45
46EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/gl_sdl/Makefile.in b/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
deleted file mode 100644
index 4bc9d59..0000000
--- a/libraries/evas/src/modules/engines/gl_sdl/Makefile.in
+++ /dev/null
@@ -1,800 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/gl_sdl
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84@BUILD_ENGINE_GL_SDL_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
85@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_TRUE@libevas_engine_gl_sdl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_gl_sdl_la_SOURCES_DIST = evas_engine.c
87@BUILD_ENGINE_GL_SDL_TRUE@am__objects_1 = evas_engine.lo
88@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_TRUE@am_libevas_engine_gl_sdl_la_OBJECTS = $(am__objects_1)
89libevas_engine_gl_sdl_la_OBJECTS = \
90 $(am_libevas_engine_gl_sdl_la_OBJECTS)
91AM_V_lt = $(am__v_lt_$(V))
92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
93am__v_lt_0 = --silent
94@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_TRUE@am_libevas_engine_gl_sdl_la_rpath =
95@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
96@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@ $(top_builddir)/src/lib/libevas.la
97am__module_la_SOURCES_DIST = evas_engine.c
98@BUILD_ENGINE_GL_SDL_TRUE@am__objects_2 = module_la-evas_engine.lo
99@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@am_module_la_OBJECTS = $(am__objects_2)
100module_la_OBJECTS = $(am_module_la_OBJECTS)
101module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
102 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
103 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
104@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@am_module_la_rpath = -rpath \
105@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@ $(pkgdir)
106DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
107depcomp = $(SHELL) $(top_srcdir)/depcomp
108am__depfiles_maybe = depfiles
109am__mv = mv -f
110COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
111 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
112LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
113 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
114 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
115 $(AM_CFLAGS) $(CFLAGS)
116AM_V_CC = $(am__v_CC_$(V))
117am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
118am__v_CC_0 = @echo " CC " $@;
119AM_V_at = $(am__v_at_$(V))
120am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
121am__v_at_0 = @
122CCLD = $(CC)
123LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
124 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
125 $(AM_LDFLAGS) $(LDFLAGS) -o $@
126AM_V_CCLD = $(am__v_CCLD_$(V))
127am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
128am__v_CCLD_0 = @echo " CCLD " $@;
129AM_V_GEN = $(am__v_GEN_$(V))
130am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
131am__v_GEN_0 = @echo " GEN " $@;
132SOURCES = $(libevas_engine_gl_sdl_la_SOURCES) $(module_la_SOURCES)
133DIST_SOURCES = $(am__libevas_engine_gl_sdl_la_SOURCES_DIST) \
134 $(am__module_la_SOURCES_DIST)
135am__includes_HEADERS_DIST = Evas_Engine_GL_SDL.h
136HEADERS = $(includes_HEADERS)
137ETAGS = etags
138CTAGS = ctags
139DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
140ACLOCAL = @ACLOCAL@
141ALLOCA = @ALLOCA@
142AMTAR = @AMTAR@
143AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
144AR = @AR@
145AS = @AS@
146AUTOCONF = @AUTOCONF@
147AUTOHEADER = @AUTOHEADER@
148AUTOMAKE = @AUTOMAKE@
149AWK = @AWK@
150CC = @CC@
151CCDEPMODE = @CCDEPMODE@
152CFLAGS = @CFLAGS@
153CHECK_CFLAGS = @CHECK_CFLAGS@
154CHECK_LIBS = @CHECK_LIBS@
155CPP = @CPP@
156CPPFLAGS = @CPPFLAGS@
157CXX = @CXX@
158CXXCPP = @CXXCPP@
159CXXDEPMODE = @CXXDEPMODE@
160CXXFLAGS = @CXXFLAGS@
161CYGPATH_W = @CYGPATH_W@
162DEFS = @DEFS@
163DEPDIR = @DEPDIR@
164DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
165DIRECTFB_LIBS = @DIRECTFB_LIBS@
166DLLTOOL = @DLLTOOL@
167DSYMUTIL = @DSYMUTIL@
168DUMPBIN = @DUMPBIN@
169ECHO_C = @ECHO_C@
170ECHO_N = @ECHO_N@
171ECHO_T = @ECHO_T@
172ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
173ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
174EDB_CFLAGS = @EDB_CFLAGS@
175EDB_LIBS = @EDB_LIBS@
176EDJE_CFLAGS = @EDJE_CFLAGS@
177EDJE_LIBS = @EDJE_LIBS@
178EET_CFLAGS = @EET_CFLAGS@
179EET_LIBS = @EET_LIBS@
180EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
181EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
182EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
183EGREP = @EGREP@
184EINA_CFLAGS = @EINA_CFLAGS@
185EINA_LIBS = @EINA_LIBS@
186EVAS_CFLAGS = @EVAS_CFLAGS@
187EVAS_LIBS = @EVAS_LIBS@
188EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
189EVIL_CFLAGS = @EVIL_CFLAGS@
190EVIL_LIBS = @EVIL_LIBS@
191EXEEXT = @EXEEXT@
192EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
193EXOTIC_LIBS = @EXOTIC_LIBS@
194FGREP = @FGREP@
195FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
196FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
197FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
198FREETYPE_LIBS = @FREETYPE_LIBS@
199FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
200FRIBIDI_LIBS = @FRIBIDI_LIBS@
201GL_EET_CFLAGS = @GL_EET_CFLAGS@
202GL_EET_LIBS = @GL_EET_LIBS@
203GREP = @GREP@
204HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
205HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
206INSTALL = @INSTALL@
207INSTALL_DATA = @INSTALL_DATA@
208INSTALL_PROGRAM = @INSTALL_PROGRAM@
209INSTALL_SCRIPT = @INSTALL_SCRIPT@
210INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
211LD = @LD@
212LDFLAGS = @LDFLAGS@
213LIBOBJS = @LIBOBJS@
214LIBS = @LIBS@
215LIBTOOL = @LIBTOOL@
216LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
217LINEBREAK_LIBS = @LINEBREAK_LIBS@
218LIPO = @LIPO@
219LN_S = @LN_S@
220LTLIBOBJS = @LTLIBOBJS@
221MAKEINFO = @MAKEINFO@
222MKDIR_P = @MKDIR_P@
223MODULE_ARCH = @MODULE_ARCH@
224NM = @NM@
225NMEDIT = @NMEDIT@
226OBJC = @OBJC@
227OBJCDEPMODE = @OBJCDEPMODE@
228OBJCFLAGS = @OBJCFLAGS@
229OBJDUMP = @OBJDUMP@
230OBJEXT = @OBJEXT@
231OTOOL = @OTOOL@
232OTOOL64 = @OTOOL64@
233PACKAGE = @PACKAGE@
234PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
235PACKAGE_NAME = @PACKAGE_NAME@
236PACKAGE_STRING = @PACKAGE_STRING@
237PACKAGE_TARNAME = @PACKAGE_TARNAME@
238PACKAGE_URL = @PACKAGE_URL@
239PACKAGE_VERSION = @PACKAGE_VERSION@
240PATH_SEPARATOR = @PATH_SEPARATOR@
241PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
242PIXMAN_LIBS = @PIXMAN_LIBS@
243PKG_CONFIG = @PKG_CONFIG@
244PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
245PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
246PNG_CFLAGS = @PNG_CFLAGS@
247PNG_LIBS = @PNG_LIBS@
248RANLIB = @RANLIB@
249SDL_CFLAGS = @SDL_CFLAGS@
250SDL_LIBS = @SDL_LIBS@
251SED = @SED@
252SET_MAKE = @SET_MAKE@
253SHELL = @SHELL@
254SHM_OPEN_LINK = @SHM_OPEN_LINK@
255STRIP = @STRIP@
256SVG_CFLAGS = @SVG_CFLAGS@
257SVG_LIBS = @SVG_LIBS@
258VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
259VALGRIND_LIBS = @VALGRIND_LIBS@
260VERSION = @VERSION@
261VMAJ = @VMAJ@
262WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
263WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
264XCB_CFLAGS = @XCB_CFLAGS@
265XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
266XCB_GL_LIBS = @XCB_GL_LIBS@
267XCB_LIBS = @XCB_LIBS@
268XEXT_CFLAGS = @XEXT_CFLAGS@
269XEXT_LIBS = @XEXT_LIBS@
270XMKMF = @XMKMF@
271X_CFLAGS = @X_CFLAGS@
272X_EXTRA_LIBS = @X_EXTRA_LIBS@
273X_LIBS = @X_LIBS@
274X_PRE_LIBS = @X_PRE_LIBS@
275abs_builddir = @abs_builddir@
276abs_srcdir = @abs_srcdir@
277abs_top_builddir = @abs_top_builddir@
278abs_top_srcdir = @abs_top_srcdir@
279ac_ct_CC = @ac_ct_CC@
280ac_ct_CXX = @ac_ct_CXX@
281ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
282ac_ct_OBJC = @ac_ct_OBJC@
283altivec_cflags = @altivec_cflags@
284am__include = @am__include@
285am__leading_dot = @am__leading_dot@
286am__quote = @am__quote@
287am__tar = @am__tar@
288am__untar = @am__untar@
289bindir = @bindir@
290build = @build@
291build_alias = @build_alias@
292build_cpu = @build_cpu@
293build_os = @build_os@
294build_vendor = @build_vendor@
295builddir = @builddir@
296datadir = @datadir@
297datarootdir = @datarootdir@
298dlopen_libs = @dlopen_libs@
299docdir = @docdir@
300dvidir = @dvidir@
301edje_cc = @edje_cc@
302efl_doxygen = @efl_doxygen@
303efl_have_doxygen = @efl_have_doxygen@
304evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
305evas_engine_buffer_libs = @evas_engine_buffer_libs@
306evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
307evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
308evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
309evas_engine_directfb_libs = @evas_engine_directfb_libs@
310evas_engine_fb_cflags = @evas_engine_fb_cflags@
311evas_engine_fb_libs = @evas_engine_fb_libs@
312evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
313evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
314evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
315evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
316evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
317evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
318evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
319evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
320evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
321evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
322evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
323evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
324evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
325evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
326evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
327evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
328evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
329evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
330evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
331evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
332evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
333evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
334evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
335evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
336evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
337evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
338evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
339evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
340evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
341evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
342evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
343evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
344evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
345evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
346evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
347evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
348evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
349evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
350evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
351evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
352evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
353evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
354evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
355evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
356evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
357evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
358evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
359evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
360evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
361evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
362evas_image_loader_png_libs = @evas_image_loader_png_libs@
363evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
364evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
365evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
366evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
367evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
368evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
369evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
370evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
371evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
372evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
373evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
374evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
375exec_prefix = @exec_prefix@
376have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
377have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
378have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
379have_evas_engine_software_x11 = @have_evas_engine_software_x11@
380have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
381have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
382have_lcov = @have_lcov@
383host = @host@
384host_alias = @host_alias@
385host_cpu = @host_cpu@
386host_os = @host_os@
387host_vendor = @host_vendor@
388htmldir = @htmldir@
389includedir = @includedir@
390infodir = @infodir@
391install_sh = @install_sh@
392libdir = @libdir@
393libexecdir = @libexecdir@
394localedir = @localedir@
395localstatedir = @localstatedir@
396lt_ECHO = @lt_ECHO@
397lt_enable_auto_import = @lt_enable_auto_import@
398mandir = @mandir@
399mkdir_p = @mkdir_p@
400oldincludedir = @oldincludedir@
401pdfdir = @pdfdir@
402pkgconfig_requires_private = @pkgconfig_requires_private@
403prefix = @prefix@
404program_transform_name = @program_transform_name@
405psdir = @psdir@
406pthread_cflags = @pthread_cflags@
407pthread_libs = @pthread_libs@
408release_info = @release_info@
409requirement_evas = @requirement_evas@
410sbindir = @sbindir@
411sharedstatedir = @sharedstatedir@
412srcdir = @srcdir@
413sysconfdir = @sysconfdir@
414target_alias = @target_alias@
415top_build_prefix = @top_build_prefix@
416top_builddir = @top_builddir@
417top_srcdir = @top_srcdir@
418version_info = @version_info@
419MAINTAINERCLEANFILES = Makefile.in
420AM_CPPFLAGS = \
421-I. \
422-I$(top_srcdir)/src/lib \
423-I$(top_srcdir)/src/lib/include \
424-I$(top_srcdir)/src/modules/engines/gl_common \
425@FREETYPE_CFLAGS@ \
426@PIXMAN_CFLAGS@ \
427@EINA_CFLAGS@ \
428@GL_EET_CFLAGS@ \
429@evas_engine_gl_sdl_cflags@
430
431@BUILD_ENGINE_GL_SDL_TRUE@GL_SDL_SOURCES = \
432@BUILD_ENGINE_GL_SDL_TRUE@evas_engine.c
433
434@BUILD_ENGINE_GL_SDL_TRUE@GL_SDL_LIBADD = @evas_engine_gl_sdl_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
435@BUILD_ENGINE_GL_SDL_TRUE@includes_HEADERS = Evas_Engine_GL_SDL.h
436@BUILD_ENGINE_GL_SDL_TRUE@includesdir = $(includedir)/evas-@VMAJ@
437@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@pkgdir = $(libdir)/evas/modules/engines/gl_sdl/$(MODULE_ARCH)
438@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@pkg_LTLIBRARIES = module.la
439@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@module_la_SOURCES = $(GL_SDL_SOURCES)
440@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@module_la_LIBADD = @EINA_LIBS@ $(GL_SDL_LIBADD) $(top_builddir)/src/lib/libevas.la @dlopen_libs@
441@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@module_la_LDFLAGS = -module -avoid-version
442@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
443@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_TRUE@noinst_LTLIBRARIES = libevas_engine_gl_sdl.la
444@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_TRUE@libevas_engine_gl_sdl_la_SOURCES = $(GL_SDL_SOURCES)
445@BUILD_ENGINE_GL_SDL_TRUE@@EVAS_STATIC_BUILD_GL_SDL_TRUE@libevas_engine_gl_sdl_la_LIBADD = $(GL_SDL_LIBADD)
446EXTRA_DIST = evas_engine.h
447all: all-am
448
449.SUFFIXES:
450.SUFFIXES: .c .lo .o .obj
451$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
452 @for dep in $?; do \
453 case '$(am__configure_deps)' in \
454 *$$dep*) \
455 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
456 && { if test -f $@; then exit 0; else break; fi; }; \
457 exit 1;; \
458 esac; \
459 done; \
460 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/gl_sdl/Makefile'; \
461 $(am__cd) $(top_srcdir) && \
462 $(AUTOMAKE) --gnu src/modules/engines/gl_sdl/Makefile
463.PRECIOUS: Makefile
464Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
465 @case '$?' in \
466 *config.status*) \
467 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
468 *) \
469 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
470 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
471 esac;
472
473$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
474 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
475
476$(top_srcdir)/configure: $(am__configure_deps)
477 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
478$(ACLOCAL_M4): $(am__aclocal_m4_deps)
479 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
480$(am__aclocal_m4_deps):
481
482clean-noinstLTLIBRARIES:
483 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
484 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
485 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
486 test "$$dir" != "$$p" || dir=.; \
487 echo "rm -f \"$${dir}/so_locations\""; \
488 rm -f "$${dir}/so_locations"; \
489 done
490install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
491 @$(NORMAL_INSTALL)
492 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
493 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
494 list2=; for p in $$list; do \
495 if test -f $$p; then \
496 list2="$$list2 $$p"; \
497 else :; fi; \
498 done; \
499 test -z "$$list2" || { \
500 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
501 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
502 }
503
504uninstall-pkgLTLIBRARIES:
505 @$(NORMAL_UNINSTALL)
506 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
507 for p in $$list; do \
508 $(am__strip_dir) \
509 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
510 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
511 done
512
513clean-pkgLTLIBRARIES:
514 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
515 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
516 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
517 test "$$dir" != "$$p" || dir=.; \
518 echo "rm -f \"$${dir}/so_locations\""; \
519 rm -f "$${dir}/so_locations"; \
520 done
521libevas_engine_gl_sdl.la: $(libevas_engine_gl_sdl_la_OBJECTS) $(libevas_engine_gl_sdl_la_DEPENDENCIES)
522 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_gl_sdl_la_rpath) $(libevas_engine_gl_sdl_la_OBJECTS) $(libevas_engine_gl_sdl_la_LIBADD) $(LIBS)
523module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
524 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
525
526mostlyclean-compile:
527 -rm -f *.$(OBJEXT)
528
529distclean-compile:
530 -rm -f *.tab.c
531
532@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
533@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
534
535.c.o:
536@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
537@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
538@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
539@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
540@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
541@am__fastdepCC_FALSE@ $(COMPILE) -c $<
542
543.c.obj:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
550
551.c.lo:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
558
559module_la-evas_engine.lo: evas_engine.c
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
566
567mostlyclean-libtool:
568 -rm -f *.lo
569
570clean-libtool:
571 -rm -rf .libs _libs
572install-includesHEADERS: $(includes_HEADERS)
573 @$(NORMAL_INSTALL)
574 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
575 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
576 for p in $$list; do \
577 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
578 echo "$$d$$p"; \
579 done | $(am__base_list) | \
580 while read files; do \
581 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
582 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
583 done
584
585uninstall-includesHEADERS:
586 @$(NORMAL_UNINSTALL)
587 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
588 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
589 test -n "$$files" || exit 0; \
590 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
591 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
592
593ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
594 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
595 unique=`for i in $$list; do \
596 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
597 done | \
598 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
599 END { if (nonempty) { for (i in files) print i; }; }'`; \
600 mkid -fID $$unique
601tags: TAGS
602
603TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
604 $(TAGS_FILES) $(LISP)
605 set x; \
606 here=`pwd`; \
607 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
608 unique=`for i in $$list; do \
609 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
610 done | \
611 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
612 END { if (nonempty) { for (i in files) print i; }; }'`; \
613 shift; \
614 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
615 test -n "$$unique" || unique=$$empty_fix; \
616 if test $$# -gt 0; then \
617 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
618 "$$@" $$unique; \
619 else \
620 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
621 $$unique; \
622 fi; \
623 fi
624ctags: CTAGS
625CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
626 $(TAGS_FILES) $(LISP)
627 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
628 unique=`for i in $$list; do \
629 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
630 done | \
631 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
632 END { if (nonempty) { for (i in files) print i; }; }'`; \
633 test -z "$(CTAGS_ARGS)$$unique" \
634 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
635 $$unique
636
637GTAGS:
638 here=`$(am__cd) $(top_builddir) && pwd` \
639 && $(am__cd) $(top_srcdir) \
640 && gtags -i $(GTAGS_ARGS) "$$here"
641
642distclean-tags:
643 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
644
645distdir: $(DISTFILES)
646 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
647 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
648 list='$(DISTFILES)'; \
649 dist_files=`for file in $$list; do echo $$file; done | \
650 sed -e "s|^$$srcdirstrip/||;t" \
651 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
652 case $$dist_files in \
653 */*) $(MKDIR_P) `echo "$$dist_files" | \
654 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
655 sort -u` ;; \
656 esac; \
657 for file in $$dist_files; do \
658 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
659 if test -d $$d/$$file; then \
660 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
661 if test -d "$(distdir)/$$file"; then \
662 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
663 fi; \
664 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
665 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
666 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
667 fi; \
668 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
669 else \
670 test -f "$(distdir)/$$file" \
671 || cp -p $$d/$$file "$(distdir)/$$file" \
672 || exit 1; \
673 fi; \
674 done
675check-am: all-am
676check: check-am
677all-am: Makefile $(LTLIBRARIES) $(HEADERS)
678installdirs:
679 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
680 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
681 done
682install: install-am
683install-exec: install-exec-am
684install-data: install-data-am
685uninstall: uninstall-am
686
687install-am: all-am
688 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
689
690installcheck: installcheck-am
691install-strip:
692 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
693 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
694 `test -z '$(STRIP)' || \
695 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
696mostlyclean-generic:
697
698clean-generic:
699
700distclean-generic:
701 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
702 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
703
704maintainer-clean-generic:
705 @echo "This command is intended for maintainers to use"
706 @echo "it deletes files that may require special tools to rebuild."
707 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
708clean: clean-am
709
710clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
711 clean-pkgLTLIBRARIES mostlyclean-am
712
713distclean: distclean-am
714 -rm -rf ./$(DEPDIR)
715 -rm -f Makefile
716distclean-am: clean-am distclean-compile distclean-generic \
717 distclean-tags
718
719dvi: dvi-am
720
721dvi-am:
722
723html: html-am
724
725html-am:
726
727info: info-am
728
729info-am:
730
731install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
732
733install-dvi: install-dvi-am
734
735install-dvi-am:
736
737install-exec-am:
738
739install-html: install-html-am
740
741install-html-am:
742
743install-info: install-info-am
744
745install-info-am:
746
747install-man:
748
749install-pdf: install-pdf-am
750
751install-pdf-am:
752
753install-ps: install-ps-am
754
755install-ps-am:
756
757installcheck-am:
758
759maintainer-clean: maintainer-clean-am
760 -rm -rf ./$(DEPDIR)
761 -rm -f Makefile
762maintainer-clean-am: distclean-am maintainer-clean-generic
763
764mostlyclean: mostlyclean-am
765
766mostlyclean-am: mostlyclean-compile mostlyclean-generic \
767 mostlyclean-libtool
768
769pdf: pdf-am
770
771pdf-am:
772
773ps: ps-am
774
775ps-am:
776
777uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
778
779.MAKE: install-am install-strip
780
781.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
782 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
783 ctags distclean distclean-compile distclean-generic \
784 distclean-libtool distclean-tags distdir dvi dvi-am html \
785 html-am info info-am install install-am install-data \
786 install-data-am install-dvi install-dvi-am install-exec \
787 install-exec-am install-html install-html-am \
788 install-includesHEADERS install-info install-info-am \
789 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
790 install-ps install-ps-am install-strip installcheck \
791 installcheck-am installdirs maintainer-clean \
792 maintainer-clean-generic mostlyclean mostlyclean-compile \
793 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
794 tags uninstall uninstall-am uninstall-includesHEADERS \
795 uninstall-pkgLTLIBRARIES
796
797
798# Tell versions [3.59,3.63) of GNU make to not export all variables.
799# Otherwise a system limit (for SysV at least) may be exceeded.
800.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/gl_sdl/evas_engine.c b/libraries/evas/src/modules/engines/gl_sdl/evas_engine.c
deleted file mode 100644
index 46588d9..0000000
--- a/libraries/evas/src/modules/engines/gl_sdl/evas_engine.c
+++ /dev/null
@@ -1,1081 +0,0 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_engine.h"
3
4static void* _sdl_output_setup (int w, int h, int fullscreen, int noframe);
5
6int _evas_engine_GL_SDL_log_dom = -1;
7/* function tables - filled in later (func and parent func) */
8static Evas_Func func, pfunc;
9
10static void *
11eng_info(Evas *e)
12{
13 Evas_Engine_Info_GL_SDL *info;
14
15 info = calloc(1, sizeof(Evas_Engine_Info_GL_SDL));
16 if (!info) return NULL;
17 info->magic.magic = rand();
18 return info;
19}
20
21static void
22eng_info_free(Evas *e __UNUSED__, void *info)
23{
24 Evas_Engine_Info_GL_SDL *in;
25 in = (Evas_Engine_Info_GL_SDL *)info;
26 free(in);
27}
28
29static int
30eng_setup(Evas *e, void *in)
31{
32 Render_Engine *re;
33 Evas_Engine_Info_GL_SDL *info;
34
35 info = (Evas_Engine_Info_GL_SDL *)in;
36
37 SDL_Init(SDL_INIT_NOPARACHUTE);
38
39 if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
40 {
41 ERR("SDL_Init failed with %s", SDL_GetError());
42 SDL_Quit();
43 return 0;
44 }
45
46 re = _sdl_output_setup(e->output.w, e->output.h,
47 info->flags.fullscreen,
48 info->flags.noframe);
49 re->info = info;
50 e->engine.data.output = re;
51 if (!e->engine.data.output)
52 return 0;
53
54 e->engine.func = &func;
55 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
56
57 return 1;
58}
59
60static void
61eng_output_free(void *data)
62{
63 Render_Engine *re;
64
65 re = (Render_Engine *)data;
66 evas_gl_common_context_free(re->gl_context);
67 free(re);
68
69 evas_common_font_shutdown();
70 evas_common_image_shutdown();
71
72 SDL_QuitSubSystem(SDL_INIT_VIDEO);
73}
74
75static void
76eng_output_resize(void *data, int w, int h)
77{
78 Render_Engine *re;
79 SDL_Surface *surface;
80
81 re = (Render_Engine *)data;
82 re->w = w;
83 re->h = h;
84
85 if(SDL_GetVideoSurface()->flags & SDL_RESIZABLE)
86 {
87 surface = SDL_SetVideoMode(w, h, 32, EVAS_SDL_GL_FLAG
88 | (re->info->flags.fullscreen ? SDL_FULLSCREEN : 0)
89 | (re->info->flags.noframe ? SDL_NOFRAME : 0));
90 if (!surface)
91 {
92 ERR("Unable to change the resolution to : %ix%i", w, h);
93 SDL_Quit();
94 exit(-1);
95 }
96 }
97
98 evas_gl_common_context_resize(re->gl_context, w, h, re->gl_context->rot);
99}
100
101static void
102eng_output_tile_size_set(void *data, int w __UNUSED__, int h __UNUSED__)
103{
104// Render_Engine *re;
105//
106// re = (Render_Engine *)data;
107}
108
109static void
110eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
111{
112 Render_Engine *re;
113
114 re = (Render_Engine *)data;
115 evas_gl_common_context_resize(re->gl_context, re->w, re->h, re->gl_context->rot);
116 /* smple bounding box */
117 if (!re->draw.redraw)
118 {
119#if 0
120 re->draw.x1 = x;
121 re->draw.y1 = y;
122 re->draw.x2 = x + w - 1;
123 re->draw.y2 = y + h - 1;
124#else
125 re->draw.x1 = 0;
126 re->draw.y1 = 0;
127 re->draw.x2 = re->w - 1;
128 re->draw.y2 = re->h - 1;
129#endif
130 }
131 else
132 {
133 if (x < re->draw.x1) re->draw.x1 = x;
134 if (y < re->draw.y1) re->draw.y1 = y;
135 if ((x + w - 1) > re->draw.x2) re->draw.x2 = x + w - 1;
136 if ((y + h - 1) > re->draw.y2) re->draw.y2 = y + h - 1;
137 }
138 re->draw.redraw = 1;
139}
140
141static void
142eng_output_redraws_rect_del(void *data, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
143{
144// Render_Engine *re;
145//
146// re = (Render_Engine *)data;
147}
148
149static void
150eng_output_redraws_clear(void *data)
151{
152 Render_Engine *re;
153
154 re = (Render_Engine *)data;
155 re->draw.redraw = 0;
156// INF("GL: finish update cycle!");
157}
158
159/* at least the nvidia drivers are so abysmal that copying from the backbuffer
160 * to the front using glCopyPixels() that you literally can WATCH it draw the
161 * pixels slowly across the screen with a window update taking multiple
162 * seconds - so workaround by doing a full buffer render as frankly GL isn't
163 * up to doing anything that isn't done by quake (etc.)
164 */
165#define SLOW_GL_COPY_RECT 1
166/* vsync games - not for now though */
167//#define VSYNC_TO_SCREEN 1
168
169static void *
170eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
171{
172 Render_Engine *re;
173
174 re = (Render_Engine *)data;
175 evas_gl_common_context_flush(re->gl_context);
176 evas_gl_common_context_newframe(re->gl_context);
177 /* get the upate rect surface - return engine data as dummy */
178 if (!re->draw.redraw)
179 {
180// printf("GL: NO updates!\n");
181 return NULL;
182 }
183// printf("GL: update....!\n");
184#ifdef SLOW_GL_COPY_RECT
185 /* if any update - just return the whole canvas - works with swap
186 * buffers then */
187 if (x) *x = 0;
188 if (y) *y = 0;
189 if (w) *w = re->w;
190 if (h) *h = re->h;
191 if (cx) *cx = 0;
192 if (cy) *cy = 0;
193 if (cw) *cw = re->w;
194 if (ch) *ch = re->h;
195#else
196 /* 1 update - INCREDIBLY SLOW if combined with swap_rect in flush. a gl
197 * problem where there just is no hardware path for somethnig that
198 * obviously SHOULD be there */
199 /* only 1 update to minimise gl context games and rendering multiple update
200 * regions as evas does with other engines
201 */
202 if (x) *x = re->draw.x1;
203 if (y) *y = re->draw.y1;
204 if (w) *w = re->draw.x2 - re->draw.x1 + 1;
205 if (h) *h = re->draw.y2 - re->draw.y1 + 1;
206 if (cx) *cx = re->draw.x1;
207 if (cy) *cy = re->draw.y1;
208 if (cw) *cw = re->draw.x2 - re->draw.x1 + 1;
209 if (ch) *ch = re->draw.y2 - re->draw.y1 + 1;
210#endif
211// clear buffer. only needed for dest alpha
212// glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
213// glClear(GL_COLOR_BUFFER_BIT);
214//x// printf("frame -> new\n");
215 return re->gl_context->def_surface;
216}
217
218static void
219eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
220{
221 Render_Engine *re;
222
223 re = (Render_Engine *)data;
224 /* put back update surface.. in this case just unflag redraw */
225 re->draw.redraw = 0;
226 re->draw.drew = 1;
227 evas_gl_common_context_flush(re->gl_context);
228//x// printf("frame -> push\n");
229}
230
231static void
232eng_output_flush(void *data)
233{
234 Render_Engine *re;
235
236 re = (Render_Engine *)data;
237 if (!re->draw.drew) return;
238//x// printf("frame -> flush\n");
239 re->draw.drew = 0;
240
241#if 0
242#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
243// glFlush();
244 eglSwapBuffers(re->egl_disp, re->egl_surface[0]);
245#else
246 glXSwapBuffers(re->win->disp, re->win);
247#endif
248#else
249 SDL_GL_SwapBuffers();
250#endif
251}
252
253static void
254eng_output_idle_flush(void *data)
255{
256 Render_Engine *re;
257
258 re = (Render_Engine *)data;
259}
260
261static void
262eng_output_dump(void *data)
263{
264 Render_Engine *re;
265
266 re = (Render_Engine *)data;
267 evas_common_image_image_all_unload();
268 evas_common_font_font_all_unload();
269 evas_gl_common_image_all_unload(re->gl_context);
270}
271
272static void
273eng_context_cutout_add(void *data, void *context, int x, int y, int w, int h)
274{
275// Render_Engine *re;
276//
277// re = (Render_Engine *)data;
278// re->gl_context->dc = context;
279 evas_common_draw_context_add_cutout(context, x, y, w, h);
280}
281
282static void
283eng_context_cutout_clear(void *data, void *context)
284{
285// Render_Engine *re;
286//
287// re = (Render_Engine *)data;
288// re->gl_context->dc = context;
289 evas_common_draw_context_clear_cutouts(context);
290}
291
292static void
293eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
294{
295 Render_Engine *re;
296
297 re = (Render_Engine *)data;
298 evas_gl_common_context_target_surface_set(re->gl_context, surface);
299 re->gl_context->dc = context;
300 evas_gl_common_rect_draw(re->gl_context, x, y, w, h);
301}
302
303static void
304eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
305{
306 Render_Engine *re;
307
308 re = (Render_Engine *)data;
309 evas_gl_common_context_target_surface_set(re->gl_context, surface);
310 re->gl_context->dc = context;
311 evas_gl_common_line_draw(re->gl_context, x1, y1, x2, y2);
312}
313
314static void *
315eng_polygon_point_add(void *data, void *context __UNUSED__, void *polygon, int x, int y)
316{
317 Render_Engine *re;
318
319 re = (Render_Engine *)data;
320 return evas_gl_common_poly_point_add(polygon, x, y);
321}
322
323static void *
324eng_polygon_points_clear(void *data, void *context __UNUSED__, void *polygon)
325{
326 Render_Engine *re;
327
328 re = (Render_Engine *)data;
329 return evas_gl_common_poly_points_clear(polygon);
330}
331
332static void
333eng_polygon_draw(void *data, void *context, void *surface, void *polygon, int x, int y)
334{
335 Render_Engine *re;
336
337 re = (Render_Engine *)data;
338 evas_gl_common_context_target_surface_set(re->gl_context, surface);
339 re->gl_context->dc = context;
340 evas_gl_common_poly_draw(re->gl_context, polygon, x, y);
341}
342
343static int
344eng_image_alpha_get(void *data, void *image)
345{
346// Render_Engine *re;
347 Evas_GL_Image *im;
348
349// re = (Render_Engine *)data;
350 if (!image) return 1;
351 im = image;
352 return im->alpha;
353}
354
355static int
356eng_image_colorspace_get(void *data, void *image)
357{
358// Render_Engine *re;
359 Evas_GL_Image *im;
360
361// re = (Render_Engine *)data;
362 if (!image) return EVAS_COLORSPACE_ARGB8888;
363 im = image;
364 return im->cs.space;
365}
366
367static void *
368eng_image_alpha_set(void *data, void *image, int has_alpha)
369{
370 Render_Engine *re;
371 Evas_GL_Image *im;
372
373 re = (Render_Engine *)data;
374 if (!image) return NULL;
375 im = image;
376 if (im->native.data)
377 {
378 im->alpha = has_alpha;
379 return image;
380 }
381 /* FIXME: can move to gl_common */
382 if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return im;
383 if ((has_alpha) && (im->im->cache_entry.flags.alpha)) return image;
384 else if ((!has_alpha) && (!im->im->cache_entry.flags.alpha)) return image;
385 if (im->references > 1)
386 {
387 Evas_GL_Image *im_new;
388
389 im_new = evas_gl_common_image_new_from_copied_data(im->gc, im->im->cache_entry.w, im->im->cache_entry.h, im->im->image.data,
390 eng_image_alpha_get(data, image),
391 eng_image_colorspace_get(data, image));
392 if (!im_new) return im;
393 evas_gl_common_image_free(im);
394 im = im_new;
395 }
396 else
397 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
398 im->im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
399 return image;
400}
401
402static void *
403eng_image_border_set(void *data, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
404{
405// Render_Engine *re;
406//
407// re = (Render_Engine *)data;
408 return image;
409}
410
411static void
412eng_image_border_get(void *data, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
413{
414// Render_Engine *re;
415//
416// re = (Render_Engine *)data;
417}
418
419static char *
420eng_image_comment_get(void *data, void *image, char *key __UNUSED__)
421{
422// Render_Engine *re;
423 Evas_GL_Image *im;
424
425// re = (Render_Engine *)data;
426 if (!image) return NULL;
427 im = image;
428 if (!im->im) return NULL;
429 return im->im->info.comment;
430}
431
432static char *
433eng_image_format_get(void *data, void *image)
434{
435// Render_Engine *re;
436 Evas_GL_Image *im;
437
438// re = (Render_Engine *)data;
439 im = image;
440 return NULL;
441}
442
443static void
444eng_image_colorspace_set(void *data, void *image, int cspace)
445{
446 Render_Engine *re;
447 Evas_GL_Image *im;
448
449 re = (Render_Engine *)data;
450 if (!image) return;
451 im = image;
452 if (im->native.data) return;
453 /* FIXME: can move to gl_common */
454 if (im->cs.space == cspace) return;
455 evas_cache_image_colorspace(&im->im->cache_entry, cspace);
456 switch (cspace)
457 {
458 case EVAS_COLORSPACE_ARGB8888:
459 if (im->cs.data)
460 {
461 if (!im->cs.no_free) free(im->cs.data);
462 im->cs.data = NULL;
463 im->cs.no_free = 0;
464 }
465 break;
466 case EVAS_COLORSPACE_YCBCR422P601_PL:
467 case EVAS_COLORSPACE_YCBCR422P709_PL:
468 case EVAS_COLORSPACE_YCBCR422601_PL:
469 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
470 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
471 if (im->tex) evas_gl_common_texture_free(im->tex);
472 im->tex = NULL;
473 if (im->cs.data)
474 {
475 if (!im->cs.no_free) free(im->cs.data);
476 }
477 im->cs.data = calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
478 im->cs.no_free = 0;
479 break;
480 default:
481 abort();
482 break;
483 }
484 im->cs.space = cspace;
485}
486
487/////////////////////////////////////////////////////////////////////////
488//
489//
490typedef struct _Native Native;
491
492struct _Native
493{
494 Evas_Native_Surface ns;
495
496#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
497 EGLSurface egl_surface;
498#endif
499};
500
501static void
502_native_bind_cb(void *data, void *image)
503{
504}
505
506static void
507_native_unbind_cb(void *data, void *image)
508{
509}
510
511static void
512_native_free_cb(void *data, void *image)
513{
514}
515
516static void *
517eng_image_native_set(void *data, void *image, void *native)
518{
519 return NULL;
520}
521
522static void *
523eng_image_native_get(void *data, void *image)
524{
525 return NULL;
526}
527
528//
529//
530/////////////////////////////////////////////////////////////////////////
531
532static void *
533eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
534{
535 Render_Engine *re;
536
537 re = (Render_Engine *)data;
538 *error = EVAS_LOAD_ERROR_NONE;
539 return evas_gl_common_image_load(re->gl_context, file, key, lo, error);
540}
541
542static void *
543eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
544{
545 Render_Engine *re;
546
547 re = (Render_Engine *)data;
548 return evas_gl_common_image_new_from_data(re->gl_context, w, h, image_data, alpha, cspace);
549}
550
551static void *
552eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
553{
554 Render_Engine *re;
555
556 re = (Render_Engine *)data;
557 return evas_gl_common_image_new_from_copied_data(re->gl_context, w, h, image_data, alpha, cspace);
558}
559
560static void
561eng_image_free(void *data, void *image)
562{
563 Render_Engine *re;
564
565 re = (Render_Engine *)data;
566 if (!image) return;
567 evas_gl_common_image_free(image);
568}
569
570static void
571eng_image_size_get(void *data, void *image, int *w, int *h)
572{
573// Render_Engine *re;
574//
575// re = (Render_Engine *)data;
576 if (!image)
577 {
578 *w = 0;
579 *h = 0;
580 return;
581 }
582 if (w) *w = ((Evas_GL_Image *)image)->w;
583 if (h) *h = ((Evas_GL_Image *)image)->h;
584}
585
586static void *
587eng_image_size_set(void *data, void *image, int w, int h)
588{
589 Render_Engine *re;
590 Evas_GL_Image *im = image;
591 Evas_GL_Image *im_old;
592
593 re = (Render_Engine *)data;
594 if (!im) return NULL;
595 if (im->native.data)
596 {
597 im->w = w;
598 im->h = h;
599 return image;
600 }
601 im_old = image;
602
603 switch (eng_image_colorspace_get(data, image))
604 {
605 case EVAS_COLORSPACE_YCBCR422P601_PL:
606 case EVAS_COLORSPACE_YCBCR422P709_PL:
607 case EVAS_COLORSPACE_YCBCR422601_PL:
608 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
609 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
610 w &= ~0x1;
611 break;
612 }
613
614 if ((im_old) && (im_old->im->cache_entry.w == w) && (im_old->im->cache_entry.h == h))
615 return image;
616 if (im_old)
617 {
618 im = evas_gl_common_image_new(re->gl_context, w, h,
619 eng_image_alpha_get(data, image),
620 eng_image_colorspace_get(data, image));
621/*
622 evas_common_load_image_data_from_file(im_old->im);
623 if (im_old->im->image->data)
624 {
625 evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0);
626 evas_common_cpu_end_opt();
627 }
628 */
629 evas_gl_common_image_free(im_old);
630 }
631 else
632 im = evas_gl_common_image_new(re->gl_context, w, h, 1, EVAS_COLORSPACE_ARGB8888);
633 return im;
634}
635
636static void *
637eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h)
638{
639 Render_Engine *re;
640 Evas_GL_Image *im = image;
641
642 re = (Render_Engine *)data;
643 if (!image) return NULL;
644 if (im->native.data) return image;
645 evas_gl_common_image_dirty(image, x, y, w, h);
646 return image;
647}
648
649static void *
650eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, int *err)
651{
652 Render_Engine *re;
653 Evas_GL_Image *im;
654 int error;
655
656 re = (Render_Engine *)data;
657 if (!image)
658 {
659 *image_data = NULL;
660 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
661 return NULL;
662 }
663 im = image;
664 if (im->native.data)
665 {
666 *image_data = NULL;
667 if (err) *err = EVAS_LOAD_ERROR_NONE;
668 return im;
669 }
670 error = evas_cache_image_load_data(&im->im->cache_entry);
671 switch (im->cs.space)
672 {
673 case EVAS_COLORSPACE_ARGB8888:
674 if (to_write)
675 {
676 if (im->references > 1)
677 {
678 Evas_GL_Image *im_new;
679
680 im_new = evas_gl_common_image_new_from_copied_data(im->gc, im->im->cache_entry.w, im->im->cache_entry.h, im->im->image.data,
681 eng_image_alpha_get(data, image),
682 eng_image_colorspace_get(data, image));
683 if (!im_new)
684 {
685 *image_data = NULL;
686 if (err) *err = error;
687 return im;
688 }
689 evas_gl_common_image_free(im);
690 im = im_new;
691 }
692 else
693 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
694 }
695 *image_data = im->im->image.data;
696 break;
697 case EVAS_COLORSPACE_YCBCR422P601_PL:
698 case EVAS_COLORSPACE_YCBCR422P709_PL:
699 case EVAS_COLORSPACE_YCBCR422601_PL:
700 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
701 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
702 *image_data = im->cs.data;
703 break;
704 default:
705 abort();
706 break;
707 }
708 if (err) *err = error;
709 return im;
710}
711
712static void *
713eng_image_data_put(void *data, void *image, DATA32 *image_data)
714{
715 Render_Engine *re;
716 Evas_GL_Image *im, *im2;
717
718 re = (Render_Engine *)data;
719 if (!image) return NULL;
720 im = image;
721 if (im->native.data) return image;
722 switch (im->cs.space)
723 {
724 case EVAS_COLORSPACE_ARGB8888:
725 if (image_data != im->im->image.data)
726 {
727 int w, h;
728
729 w = im->im->cache_entry.w;
730 h = im->im->cache_entry.h;
731 im2 = eng_image_new_from_data(data, w, h, image_data,
732 eng_image_alpha_get(data, image),
733 eng_image_colorspace_get(data, image));
734 if (!im2) return im;
735 evas_gl_common_image_free(im);
736 im = im2;
737 }
738 break;
739 case EVAS_COLORSPACE_YCBCR422P601_PL:
740 case EVAS_COLORSPACE_YCBCR422P709_PL:
741 case EVAS_COLORSPACE_YCBCR422601_PL:
742 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
743 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
744 if (image_data != im->cs.data)
745 {
746 if (im->cs.data)
747 {
748 if (!im->cs.no_free) free(im->cs.data);
749 }
750 im->cs.data = image_data;
751 }
752 break;
753 default:
754 abort();
755 break;
756 }
757 /* hmmm - but if we wrote... why bother? */
758 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
759 return im;
760}
761
762static void
763eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
764{
765 Evas_GL_Image *gim = image;
766 RGBA_Image *im;
767
768 if (!gim) return;
769 if (gim->native.data) return;
770 im = (RGBA_Image *)gim->im;
771 if (!im) return;
772 evas_cache_image_preload_data(&im->cache_entry, target);
773}
774
775static void
776eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
777{
778 Evas_GL_Image *gim = image;
779 RGBA_Image *im;
780
781 if (!gim) return;
782 if (gim->native.data) return;
783 im = (RGBA_Image *)gim->im;
784 if (!im) return;
785 evas_cache_image_preload_cancel(&im->cache_entry, target);
786}
787
788static void
789eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
790{
791 Render_Engine *re;
792
793 re = (Render_Engine *)data;
794 if (!image) return;
795 evas_gl_common_context_target_surface_set(re->gl_context, surface);
796 re->gl_context->dc = context;
797 evas_gl_common_image_draw(re->gl_context, image,
798 src_x, src_y, src_w, src_h,
799 dst_x, dst_y, dst_w, dst_h,
800 smooth);
801}
802
803static void
804eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
805{
806}
807
808static void
809eng_image_map_draw(void *data __UNUSED__, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
810{
811 Render_Engine *re;
812
813 re = (Render_Engine *)data;
814 evas_gl_common_context_target_surface_set(re->gl_context, surface);
815 re->gl_context->dc = context;
816 evas_gl_common_image_map_draw(re->gl_context, image, npoints, p, smooth, level);
817}
818
819static void *
820eng_image_map_surface_new(void *data __UNUSED__, int w, int h, int alpha)
821{
822 Render_Engine *re;
823
824 re = (Render_Engine *)data;
825 return evas_gl_common_image_surface_new(re->gl_context, w, h, alpha);
826}
827
828static void
829eng_image_map_surface_free(void *data __UNUSED__, void *surface)
830{
831 evas_gl_common_image_free(surface);
832}
833
834static int
835eng_image_scale_hint_get(void *data __UNUSED__, void *image)
836{
837 return EVAS_IMAGE_SCALE_HINT_NONE;
838}
839
840static void
841eng_font_draw(void *data, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
842{
843 Render_Engine *re;
844
845 re = (Render_Engine *)data;
846 evas_gl_common_context_target_surface_set(re->gl_context, surface);
847 re->gl_context->dc = context;
848 {
849 // FIXME: put im into context so we can free it
850 static RGBA_Image *im = NULL;
851
852 if (!im)
853 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
854 im->cache_entry.w = re->w;
855 im->cache_entry.h = re->h;
856 evas_common_draw_context_font_ext_set(context,
857 re->gl_context,
858 evas_gl_font_texture_new,
859 evas_gl_font_texture_free,
860 evas_gl_font_texture_draw);
861 evas_common_font_draw(im, context, (RGBA_Font *) font, x, y,
862 intl_props);
863 evas_common_draw_context_font_ext_set(context,
864 NULL,
865 NULL,
866 NULL,
867 NULL);
868 }
869}
870
871static Eina_Bool
872eng_canvas_alpha_get(void *data __UNUSED__, void *info __UNUSED__)
873{
874 // FIXME: support ARGB gl targets!!!
875 return EINA_FALSE;
876}
877
878static int
879eng_image_load_error_get(void *data __UNUSED__, void *image)
880{
881 Evas_GL_Image *im;
882
883 if (!image) return EVAS_LOAD_ERROR_NONE;
884 im = image;
885 return im->im->cache_entry.load_error;
886}
887
888
889static int
890module_open(Evas_Module *em)
891{
892 if (!em) return 0;
893 if (!evas_gl_common_module_open()) return 0;
894 /* get whatever engine module we inherit from */
895 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
896 if (_evas_engine_GL_SDL_log_dom < 0)
897 _evas_engine_GL_SDL_log_dom = eina_log_domain_register
898 ("evas-gl_sdl", EVAS_DEFAULT_LOG_COLOR);
899 if (_evas_engine_GL_SDL_log_dom < 0)
900 {
901 EINA_LOG_ERR("Can not create a module log domain.");
902 return 0;
903 }
904 /* store it for later use */
905 func = pfunc;
906 /* now to override methods */
907 #define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
908 ORD(info);
909 ORD(info_free);
910 ORD(setup);
911 ORD(canvas_alpha_get);
912 ORD(output_free);
913 ORD(output_resize);
914 ORD(output_tile_size_set);
915 ORD(output_redraws_rect_add);
916 ORD(output_redraws_rect_del);
917 ORD(output_redraws_clear);
918 ORD(output_redraws_next_update_get);
919 ORD(output_redraws_next_update_push);
920 ORD(context_cutout_add);
921 ORD(context_cutout_clear);
922 ORD(output_flush);
923 ORD(output_idle_flush);
924 ORD(output_dump);
925 ORD(rectangle_draw);
926 ORD(line_draw);
927 ORD(polygon_point_add);
928 ORD(polygon_points_clear);
929 ORD(polygon_draw);
930
931 ORD(image_load);
932 ORD(image_new_from_data);
933 ORD(image_new_from_copied_data);
934 ORD(image_free);
935 ORD(image_size_get);
936 ORD(image_size_set);
937 ORD(image_dirty_region);
938 ORD(image_data_get);
939 ORD(image_data_put);
940 ORD(image_data_preload_request);
941 ORD(image_data_preload_cancel);
942 ORD(image_alpha_set);
943 ORD(image_alpha_get);
944 ORD(image_border_set);
945 ORD(image_border_get);
946 ORD(image_draw);
947 ORD(image_comment_get);
948 ORD(image_format_get);
949 ORD(image_colorspace_set);
950 ORD(image_colorspace_get);
951 ORD(image_native_set);
952 ORD(image_native_get);
953#if 0 // filtering disabled
954// ORD(image_draw_filtered);
955// ORD(image_filtered_get);
956// ORD(image_filtered_save);
957// ORD(image_filtered_free);
958#endif
959 ORD(font_draw);
960
961 ORD(image_scale_hint_set);
962 ORD(image_scale_hint_get);
963
964 ORD(image_map_draw);
965 ORD(image_map_surface_new);
966 ORD(image_map_surface_free);
967
968// ORD(image_content_hint_set);
969// ORD(image_content_hint_get);
970
971// ORD(image_cache_flush);
972// ORD(image_cache_set);
973// ORD(image_cache_get);
974
975// ORD(gl_surface_create);
976// ORD(gl_surface_destroy);
977// ORD(gl_context_create);
978// ORD(gl_context_destroy);
979// ORD(gl_make_current);
980// ORD(gl_proc_address_get);
981// ORD(gl_native_surface_get);
982
983// ORD(gl_api_get);
984
985 ORD(image_load_error_get);
986
987 /* now advertise out own api */
988 em->functions = (void *)(&func);
989 return 1;
990}
991
992static void
993module_close(Evas_Module *em)
994{
995 eina_log_domain_unregister(_evas_engine_GL_SDL_log_dom);
996 evas_gl_common_module_close();
997}
998
999static Evas_Module_Api evas_modapi =
1000{
1001 EVAS_MODULE_API_VERSION,
1002 "gl_sdl",
1003 "none",
1004 {
1005 module_open,
1006 module_close
1007 }
1008};
1009
1010EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_sdl);
1011
1012#ifndef EVAS_STATIC_BUILD_GL_SDL
1013EVAS_EINA_MODULE_DEFINE(engine, gl_sdl);
1014#endif
1015
1016static void*
1017_sdl_output_setup (int w, int h, int fullscreen, int noframe)
1018{
1019 Render_Engine *re = calloc(1, sizeof(Render_Engine));
1020 SDL_Surface *surface;
1021 int context_attrs[3];
1022 int config_attrs[20];
1023 int major_version, minor_version;
1024 int num_config;
1025
1026 /* if we haven't initialized - init (automatic abort if already done) */
1027 evas_common_cpu_init();
1028 evas_common_blend_init();
1029 evas_common_image_init();
1030 evas_common_convert_init();
1031 evas_common_scale_init();
1032 evas_common_rectangle_init();
1033 evas_common_polygon_init();
1034 evas_common_line_init();
1035 evas_common_font_init();
1036 evas_common_draw_init();
1037 evas_common_tilebuf_init();
1038
1039 if (w <= 0) w = 640;
1040 if (h <= 0) h = 480;
1041
1042 /* GL Initialization */
1043#ifdef HAVE_SDL_GL_CONTEXT_VERSION
1044 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
1045 SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
1046#endif
1047 SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
1048 SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
1049 SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
1050 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
1051 SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
1052 SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0);
1053
1054 surface = SDL_SetVideoMode(w, h, 32, EVAS_SDL_GL_FLAG
1055 | (fullscreen ? SDL_FULLSCREEN : 0)
1056 | (noframe ? SDL_NOFRAME : 0));
1057
1058 if (!surface)
1059 {
1060 CRIT("SDL_SetVideoMode [ %i x %i x 32 ] failed. %s", w, h, SDL_GetError());
1061 SDL_Quit();
1062 exit(-1);
1063 }
1064
1065 INF("Screen Depth: %d, Vendor: '%s', Renderer: '%s', Version: '%s'", SDL_GetVideoSurface()->format->BitsPerPixel, glGetString(GL_VENDOR), glGetString(GL_RENDERER), glGetString(GL_VERSION));
1066
1067 re->gl_context = evas_gl_common_context_new();
1068 if (!re->gl_context)
1069 {
1070 free(re);
1071 return NULL;
1072 }
1073 evas_gl_common_context_use(re->gl_context);
1074 evas_gl_common_context_resize(re->gl_context, w, h, re->gl_context->rot);
1075
1076 /* End GL Initialization */
1077 re->w = w;
1078 re->h = h;
1079 return re;
1080}
1081
diff --git a/libraries/evas/src/modules/engines/gl_sdl/evas_engine.h b/libraries/evas/src/modules/engines/gl_sdl/evas_engine.h
deleted file mode 100644
index 7d46720..0000000
--- a/libraries/evas/src/modules/engines/gl_sdl/evas_engine.h
+++ /dev/null
@@ -1,73 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#define _EVAS_ENGINE_SDL_H
5
6#include "config.h"
7#include <SDL/SDL.h>
8#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
9# include <EGL/egl.h>
10# include <SDL/SDL_opengles.h>
11# ifdef HAVE_SDL_FLAG_OPENGLES
12# define EVAS_SDL_GL_FLAG SDL_OPENGLES
13# else
14# define EVAS_SDL_GL_FLAG SDL_OPENGL /* This probably won't work? */
15# endif
16#else
17# include <SDL/SDL_opengl.h>
18# define EVAS_SDL_GL_FLAG SDL_OPENGL
19#endif
20#include "evas_common.h"
21#include "evas_private.h"
22#include "evas_gl_common.h"
23#include "Evas.h"
24#include "Evas_Engine_GL_SDL.h"
25
26extern int _evas_engine_GL_SDL_log_dom ;
27#ifdef ERR
28# undef ERR
29#endif
30#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_GL_SDL_log_dom, __VA_ARGS__)
31
32#ifdef DBG
33# undef DBG
34#endif
35#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_GL_SDL_log_dom, __VA_ARGS__)
36
37#ifdef INF
38# undef INF
39#endif
40#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_GL_SDL_log_dom, __VA_ARGS__)
41
42#ifdef WRN
43# undef WRN
44#endif
45#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_GL_SDL_log_dom, __VA_ARGS__)
46
47#ifdef CRIT
48# undef CRIT
49#endif
50#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_GL_SDL_log_dom, __VA_ARGS__)
51
52typedef struct _Render_Engine Render_Engine;
53struct _Render_Engine
54{
55 Evas_Engine_Info_GL_SDL *info;
56 int w, h;
57
58 Evas_Engine_GL_Context *gl_context;
59 struct {
60 int redraw : 1;
61 int drew : 1;
62 int x1, y1, x2, y2;
63 } draw;
64#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
65 EGLContext egl_context[1];
66 EGLSurface egl_surface[1];
67 EGLConfig egl_config;
68 EGLDisplay egl_disp;
69#endif
70
71};
72
73#endif
diff --git a/libraries/evas/src/modules/engines/gl_x11/Evas_Engine_GL_X11.h b/libraries/evas/src/modules/engines/gl_x11/Evas_Engine_GL_X11.h
deleted file mode 100644
index fb2c81c..0000000
--- a/libraries/evas/src/modules/engines/gl_x11/Evas_Engine_GL_X11.h
+++ /dev/null
@@ -1,46 +0,0 @@
1#ifndef _EVAS_ENGINE_GL_X11_H
2#define _EVAS_ENGINE_GL_X11_H
3
4#include <X11/Xlib.h>
5
6typedef struct _Evas_Engine_Info_GL_X11 Evas_Engine_Info_GL_X11;
7
8struct _Evas_Engine_Info_GL_X11
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 Display *display;
17 Drawable drawable;
18 Visual *visual;
19 Colormap colormap;
20 int depth;
21 int screen;
22 int rotation;
23 unsigned int destination_alpha : 1;
24 } info;
25 /* engine specific function calls to query stuff about the destination */
26 /* engine (what visual & colormap & depth to use, performance info etc. */
27 struct {
28 Visual * (*best_visual_get) (Evas_Engine_Info_GL_X11 *einfo);
29 Colormap (*best_colormap_get) (Evas_Engine_Info_GL_X11 *einfo);
30 int (*best_depth_get) (Evas_Engine_Info_GL_X11 *einfo);
31 } func;
32
33 struct {
34 void (*pre_swap) (void *data, Evas *e);
35 void (*post_swap) (void *data, Evas *e);
36
37 void *data; // data for callback calls
38 } callback;
39
40 /* non-blocking or blocking mode */
41 Evas_Engine_Render_Mode render_mode;
42
43 unsigned char vsync : 1; // does nothing right now
44 unsigned char indirect : 1; // use indirect rendering
45};
46#endif
diff --git a/libraries/evas/src/modules/engines/gl_x11/Makefile.am b/libraries/evas/src/modules/engines/gl_x11/Makefile.am
deleted file mode 100644
index 8b0e622..0000000
--- a/libraries/evas/src/modules/engines/gl_x11/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines/gl_common \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@GL_EET_CFLAGS@ \
13@evas_engine_gl_xlib_cflags@
14
15if BUILD_ENGINE_GL_X11
16
17GL_X11_SOURCES = \
18evas_engine.c \
19evas_x_main.c
20
21GL_X11_LIBADD = @evas_engine_gl_xlib_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
22
23
24includes_HEADERS = Evas_Engine_GL_X11.h
25includesdir = $(includedir)/evas-@VMAJ@
26
27if !EVAS_STATIC_BUILD_GL_X11
28
29pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH)
30pkg_LTLIBRARIES = module.la
31
32module_la_SOURCES = $(GL_X11_SOURCES)
33module_la_LIBADD = @EINA_LIBS@ @GL_EET_LIBS@ $(GL_X11_LIBADD) $(top_builddir)/src/lib/libevas.la @dlopen_libs@
34module_la_LDFLAGS = -module -avoid-version
35module_la_LIBTOOLFLAGS = --tag=disable-static
36
37else
38
39noinst_LTLIBRARIES = libevas_engine_gl_x11.la
40
41libevas_engine_gl_x11_la_SOURCES = $(GL_X11_SOURCES)
42libevas_engine_gl_x11_la_LIBADD = $(GL_X11_LIBADD)
43
44endif
45endif
46
47EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/gl_x11/Makefile.in b/libraries/evas/src/modules/engines/gl_x11/Makefile.in
deleted file mode 100644
index 3ac8dff..0000000
--- a/libraries/evas/src/modules/engines/gl_x11/Makefile.in
+++ /dev/null
@@ -1,814 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/gl_x11
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84@BUILD_ENGINE_GL_X11_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
85@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_TRUE@libevas_engine_gl_x11_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_gl_x11_la_SOURCES_DIST = evas_engine.c \
87 evas_x_main.c
88@BUILD_ENGINE_GL_X11_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_GL_X11_TRUE@ evas_x_main.lo
90@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_TRUE@am_libevas_engine_gl_x11_la_OBJECTS = $(am__objects_1)
91libevas_engine_gl_x11_la_OBJECTS = \
92 $(am_libevas_engine_gl_x11_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_TRUE@am_libevas_engine_gl_x11_la_rpath =
97@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_x_main.c
100@BUILD_ENGINE_GL_X11_TRUE@am__objects_2 = module_la-evas_engine.lo \
101@BUILD_ENGINE_GL_X11_TRUE@ module_la-evas_x_main.lo
102@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@am_module_la_OBJECTS = $(am__objects_2)
103module_la_OBJECTS = $(am_module_la_OBJECTS)
104module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
105 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
106 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
107@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@am_module_la_rpath = -rpath \
108@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@ $(pkgdir)
109DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
110depcomp = $(SHELL) $(top_srcdir)/depcomp
111am__depfiles_maybe = depfiles
112am__mv = mv -f
113COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
114 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
115LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
116 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
117 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
118 $(AM_CFLAGS) $(CFLAGS)
119AM_V_CC = $(am__v_CC_$(V))
120am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
121am__v_CC_0 = @echo " CC " $@;
122AM_V_at = $(am__v_at_$(V))
123am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
124am__v_at_0 = @
125CCLD = $(CC)
126LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
127 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
128 $(AM_LDFLAGS) $(LDFLAGS) -o $@
129AM_V_CCLD = $(am__v_CCLD_$(V))
130am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
131am__v_CCLD_0 = @echo " CCLD " $@;
132AM_V_GEN = $(am__v_GEN_$(V))
133am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
134am__v_GEN_0 = @echo " GEN " $@;
135SOURCES = $(libevas_engine_gl_x11_la_SOURCES) $(module_la_SOURCES)
136DIST_SOURCES = $(am__libevas_engine_gl_x11_la_SOURCES_DIST) \
137 $(am__module_la_SOURCES_DIST)
138am__includes_HEADERS_DIST = Evas_Engine_GL_X11.h
139HEADERS = $(includes_HEADERS)
140ETAGS = etags
141CTAGS = ctags
142DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
143ACLOCAL = @ACLOCAL@
144ALLOCA = @ALLOCA@
145AMTAR = @AMTAR@
146AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
147AR = @AR@
148AS = @AS@
149AUTOCONF = @AUTOCONF@
150AUTOHEADER = @AUTOHEADER@
151AUTOMAKE = @AUTOMAKE@
152AWK = @AWK@
153CC = @CC@
154CCDEPMODE = @CCDEPMODE@
155CFLAGS = @CFLAGS@
156CHECK_CFLAGS = @CHECK_CFLAGS@
157CHECK_LIBS = @CHECK_LIBS@
158CPP = @CPP@
159CPPFLAGS = @CPPFLAGS@
160CXX = @CXX@
161CXXCPP = @CXXCPP@
162CXXDEPMODE = @CXXDEPMODE@
163CXXFLAGS = @CXXFLAGS@
164CYGPATH_W = @CYGPATH_W@
165DEFS = @DEFS@
166DEPDIR = @DEPDIR@
167DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
168DIRECTFB_LIBS = @DIRECTFB_LIBS@
169DLLTOOL = @DLLTOOL@
170DSYMUTIL = @DSYMUTIL@
171DUMPBIN = @DUMPBIN@
172ECHO_C = @ECHO_C@
173ECHO_N = @ECHO_N@
174ECHO_T = @ECHO_T@
175ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
176ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
177EDB_CFLAGS = @EDB_CFLAGS@
178EDB_LIBS = @EDB_LIBS@
179EDJE_CFLAGS = @EDJE_CFLAGS@
180EDJE_LIBS = @EDJE_LIBS@
181EET_CFLAGS = @EET_CFLAGS@
182EET_LIBS = @EET_LIBS@
183EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
184EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
185EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
186EGREP = @EGREP@
187EINA_CFLAGS = @EINA_CFLAGS@
188EINA_LIBS = @EINA_LIBS@
189EVAS_CFLAGS = @EVAS_CFLAGS@
190EVAS_LIBS = @EVAS_LIBS@
191EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
192EVIL_CFLAGS = @EVIL_CFLAGS@
193EVIL_LIBS = @EVIL_LIBS@
194EXEEXT = @EXEEXT@
195EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
196EXOTIC_LIBS = @EXOTIC_LIBS@
197FGREP = @FGREP@
198FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
199FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
200FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
201FREETYPE_LIBS = @FREETYPE_LIBS@
202FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
203FRIBIDI_LIBS = @FRIBIDI_LIBS@
204GL_EET_CFLAGS = @GL_EET_CFLAGS@
205GL_EET_LIBS = @GL_EET_LIBS@
206GREP = @GREP@
207HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
208HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
209INSTALL = @INSTALL@
210INSTALL_DATA = @INSTALL_DATA@
211INSTALL_PROGRAM = @INSTALL_PROGRAM@
212INSTALL_SCRIPT = @INSTALL_SCRIPT@
213INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
214LD = @LD@
215LDFLAGS = @LDFLAGS@
216LIBOBJS = @LIBOBJS@
217LIBS = @LIBS@
218LIBTOOL = @LIBTOOL@
219LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
220LINEBREAK_LIBS = @LINEBREAK_LIBS@
221LIPO = @LIPO@
222LN_S = @LN_S@
223LTLIBOBJS = @LTLIBOBJS@
224MAKEINFO = @MAKEINFO@
225MKDIR_P = @MKDIR_P@
226MODULE_ARCH = @MODULE_ARCH@
227NM = @NM@
228NMEDIT = @NMEDIT@
229OBJC = @OBJC@
230OBJCDEPMODE = @OBJCDEPMODE@
231OBJCFLAGS = @OBJCFLAGS@
232OBJDUMP = @OBJDUMP@
233OBJEXT = @OBJEXT@
234OTOOL = @OTOOL@
235OTOOL64 = @OTOOL64@
236PACKAGE = @PACKAGE@
237PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
238PACKAGE_NAME = @PACKAGE_NAME@
239PACKAGE_STRING = @PACKAGE_STRING@
240PACKAGE_TARNAME = @PACKAGE_TARNAME@
241PACKAGE_URL = @PACKAGE_URL@
242PACKAGE_VERSION = @PACKAGE_VERSION@
243PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@
252SDL_CFLAGS = @SDL_CFLAGS@
253SDL_LIBS = @SDL_LIBS@
254SED = @SED@
255SET_MAKE = @SET_MAKE@
256SHELL = @SHELL@
257SHM_OPEN_LINK = @SHM_OPEN_LINK@
258STRIP = @STRIP@
259SVG_CFLAGS = @SVG_CFLAGS@
260SVG_LIBS = @SVG_LIBS@
261VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@
264VMAJ = @VMAJ@
265WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
266WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
267XCB_CFLAGS = @XCB_CFLAGS@
268XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
269XCB_GL_LIBS = @XCB_GL_LIBS@
270XCB_LIBS = @XCB_LIBS@
271XEXT_CFLAGS = @XEXT_CFLAGS@
272XEXT_LIBS = @XEXT_LIBS@
273XMKMF = @XMKMF@
274X_CFLAGS = @X_CFLAGS@
275X_EXTRA_LIBS = @X_EXTRA_LIBS@
276X_LIBS = @X_LIBS@
277X_PRE_LIBS = @X_PRE_LIBS@
278abs_builddir = @abs_builddir@
279abs_srcdir = @abs_srcdir@
280abs_top_builddir = @abs_top_builddir@
281abs_top_srcdir = @abs_top_srcdir@
282ac_ct_CC = @ac_ct_CC@
283ac_ct_CXX = @ac_ct_CXX@
284ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
285ac_ct_OBJC = @ac_ct_OBJC@
286altivec_cflags = @altivec_cflags@
287am__include = @am__include@
288am__leading_dot = @am__leading_dot@
289am__quote = @am__quote@
290am__tar = @am__tar@
291am__untar = @am__untar@
292bindir = @bindir@
293build = @build@
294build_alias = @build_alias@
295build_cpu = @build_cpu@
296build_os = @build_os@
297build_vendor = @build_vendor@
298builddir = @builddir@
299datadir = @datadir@
300datarootdir = @datarootdir@
301dlopen_libs = @dlopen_libs@
302docdir = @docdir@
303dvidir = @dvidir@
304edje_cc = @edje_cc@
305efl_doxygen = @efl_doxygen@
306efl_have_doxygen = @efl_have_doxygen@
307evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
308evas_engine_buffer_libs = @evas_engine_buffer_libs@
309evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
310evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
311evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
312evas_engine_directfb_libs = @evas_engine_directfb_libs@
313evas_engine_fb_cflags = @evas_engine_fb_cflags@
314evas_engine_fb_libs = @evas_engine_fb_libs@
315evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
316evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
317evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
318evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
319evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
320evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
321evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
322evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
323evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
324evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
325evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
326evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
327evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
328evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
329evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
330evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
331evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
332evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
333evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
334evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
335evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
336evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
337evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
338evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
339evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
340evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
341evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
342evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
343evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
344evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
345evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
346evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
347evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
348evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
349evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
350evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
351evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
352evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
353evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
354evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
355evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
356evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
357evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
358evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
359evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
360evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
361evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
362evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
363evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
364evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
365evas_image_loader_png_libs = @evas_image_loader_png_libs@
366evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
367evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
368evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
369evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
370evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
371evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
372evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
373evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
374evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
375evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
376evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
377evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
378exec_prefix = @exec_prefix@
379have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
380have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
381have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
382have_evas_engine_software_x11 = @have_evas_engine_software_x11@
383have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
384have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
385have_lcov = @have_lcov@
386host = @host@
387host_alias = @host_alias@
388host_cpu = @host_cpu@
389host_os = @host_os@
390host_vendor = @host_vendor@
391htmldir = @htmldir@
392includedir = @includedir@
393infodir = @infodir@
394install_sh = @install_sh@
395libdir = @libdir@
396libexecdir = @libexecdir@
397localedir = @localedir@
398localstatedir = @localstatedir@
399lt_ECHO = @lt_ECHO@
400lt_enable_auto_import = @lt_enable_auto_import@
401mandir = @mandir@
402mkdir_p = @mkdir_p@
403oldincludedir = @oldincludedir@
404pdfdir = @pdfdir@
405pkgconfig_requires_private = @pkgconfig_requires_private@
406prefix = @prefix@
407program_transform_name = @program_transform_name@
408psdir = @psdir@
409pthread_cflags = @pthread_cflags@
410pthread_libs = @pthread_libs@
411release_info = @release_info@
412requirement_evas = @requirement_evas@
413sbindir = @sbindir@
414sharedstatedir = @sharedstatedir@
415srcdir = @srcdir@
416sysconfdir = @sysconfdir@
417target_alias = @target_alias@
418top_build_prefix = @top_build_prefix@
419top_builddir = @top_builddir@
420top_srcdir = @top_srcdir@
421version_info = @version_info@
422MAINTAINERCLEANFILES = Makefile.in
423AM_CPPFLAGS = \
424-I. \
425-I$(top_srcdir)/src/lib \
426-I$(top_srcdir)/src/lib/include \
427-I$(top_srcdir)/src/modules/engines/gl_common \
428@FREETYPE_CFLAGS@ \
429@PIXMAN_CFLAGS@ \
430@EINA_CFLAGS@ \
431@GL_EET_CFLAGS@ \
432@evas_engine_gl_xlib_cflags@
433
434@BUILD_ENGINE_GL_X11_TRUE@GL_X11_SOURCES = \
435@BUILD_ENGINE_GL_X11_TRUE@evas_engine.c \
436@BUILD_ENGINE_GL_X11_TRUE@evas_x_main.c
437
438@BUILD_ENGINE_GL_X11_TRUE@GL_X11_LIBADD = @evas_engine_gl_xlib_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
439@BUILD_ENGINE_GL_X11_TRUE@includes_HEADERS = Evas_Engine_GL_X11.h
440@BUILD_ENGINE_GL_X11_TRUE@includesdir = $(includedir)/evas-@VMAJ@
441@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH)
442@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@pkg_LTLIBRARIES = module.la
443@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@module_la_SOURCES = $(GL_X11_SOURCES)
444@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@module_la_LIBADD = @EINA_LIBS@ @GL_EET_LIBS@ $(GL_X11_LIBADD) $(top_builddir)/src/lib/libevas.la @dlopen_libs@
445@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@module_la_LDFLAGS = -module -avoid-version
446@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
447@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_TRUE@noinst_LTLIBRARIES = libevas_engine_gl_x11.la
448@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_TRUE@libevas_engine_gl_x11_la_SOURCES = $(GL_X11_SOURCES)
449@BUILD_ENGINE_GL_X11_TRUE@@EVAS_STATIC_BUILD_GL_X11_TRUE@libevas_engine_gl_x11_la_LIBADD = $(GL_X11_LIBADD)
450EXTRA_DIST = evas_engine.h
451all: all-am
452
453.SUFFIXES:
454.SUFFIXES: .c .lo .o .obj
455$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
456 @for dep in $?; do \
457 case '$(am__configure_deps)' in \
458 *$$dep*) \
459 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
460 && { if test -f $@; then exit 0; else break; fi; }; \
461 exit 1;; \
462 esac; \
463 done; \
464 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/gl_x11/Makefile'; \
465 $(am__cd) $(top_srcdir) && \
466 $(AUTOMAKE) --gnu src/modules/engines/gl_x11/Makefile
467.PRECIOUS: Makefile
468Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
469 @case '$?' in \
470 *config.status*) \
471 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
472 *) \
473 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
474 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
475 esac;
476
477$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
478 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
479
480$(top_srcdir)/configure: $(am__configure_deps)
481 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
482$(ACLOCAL_M4): $(am__aclocal_m4_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(am__aclocal_m4_deps):
485
486clean-noinstLTLIBRARIES:
487 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
488 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
489 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
490 test "$$dir" != "$$p" || dir=.; \
491 echo "rm -f \"$${dir}/so_locations\""; \
492 rm -f "$${dir}/so_locations"; \
493 done
494install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
495 @$(NORMAL_INSTALL)
496 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
497 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
498 list2=; for p in $$list; do \
499 if test -f $$p; then \
500 list2="$$list2 $$p"; \
501 else :; fi; \
502 done; \
503 test -z "$$list2" || { \
504 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
505 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
506 }
507
508uninstall-pkgLTLIBRARIES:
509 @$(NORMAL_UNINSTALL)
510 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
511 for p in $$list; do \
512 $(am__strip_dir) \
513 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
514 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
515 done
516
517clean-pkgLTLIBRARIES:
518 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
519 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
520 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
521 test "$$dir" != "$$p" || dir=.; \
522 echo "rm -f \"$${dir}/so_locations\""; \
523 rm -f "$${dir}/so_locations"; \
524 done
525libevas_engine_gl_x11.la: $(libevas_engine_gl_x11_la_OBJECTS) $(libevas_engine_gl_x11_la_DEPENDENCIES)
526 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_gl_x11_la_rpath) $(libevas_engine_gl_x11_la_OBJECTS) $(libevas_engine_gl_x11_la_LIBADD) $(LIBS)
527module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
529
530mostlyclean-compile:
531 -rm -f *.$(OBJEXT)
532
533distclean-compile:
534 -rm -f *.tab.c
535
536@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
537@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_x_main.Plo@am__quote@
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_x_main.Plo@am__quote@
540
541.c.o:
542@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
543@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
544@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
545@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
546@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
547@am__fastdepCC_FALSE@ $(COMPILE) -c $<
548
549.c.obj:
550@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
551@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
552@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
553@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
554@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
555@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
556
557.c.lo:
558@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
559@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
560@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
561@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
562@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
563@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
564
565module_la-evas_engine.lo: evas_engine.c
566@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
567@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
568@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
569@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
570@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
571@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
572
573module_la-evas_x_main.lo: evas_x_main.c
574@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_x_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_x_main.Tpo -c -o module_la-evas_x_main.lo `test -f 'evas_x_main.c' || echo '$(srcdir)/'`evas_x_main.c
575@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_x_main.Tpo $(DEPDIR)/module_la-evas_x_main.Plo
576@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
577@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_x_main.c' object='module_la-evas_x_main.lo' libtool=yes @AMDEPBACKSLASH@
578@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
579@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_x_main.lo `test -f 'evas_x_main.c' || echo '$(srcdir)/'`evas_x_main.c
580
581mostlyclean-libtool:
582 -rm -f *.lo
583
584clean-libtool:
585 -rm -rf .libs _libs
586install-includesHEADERS: $(includes_HEADERS)
587 @$(NORMAL_INSTALL)
588 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
589 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
590 for p in $$list; do \
591 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
592 echo "$$d$$p"; \
593 done | $(am__base_list) | \
594 while read files; do \
595 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
596 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
597 done
598
599uninstall-includesHEADERS:
600 @$(NORMAL_UNINSTALL)
601 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
602 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
603 test -n "$$files" || exit 0; \
604 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
605 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
606
607ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
608 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
609 unique=`for i in $$list; do \
610 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
611 done | \
612 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
613 END { if (nonempty) { for (i in files) print i; }; }'`; \
614 mkid -fID $$unique
615tags: TAGS
616
617TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
618 $(TAGS_FILES) $(LISP)
619 set x; \
620 here=`pwd`; \
621 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
622 unique=`for i in $$list; do \
623 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
624 done | \
625 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
626 END { if (nonempty) { for (i in files) print i; }; }'`; \
627 shift; \
628 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
629 test -n "$$unique" || unique=$$empty_fix; \
630 if test $$# -gt 0; then \
631 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
632 "$$@" $$unique; \
633 else \
634 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
635 $$unique; \
636 fi; \
637 fi
638ctags: CTAGS
639CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
640 $(TAGS_FILES) $(LISP)
641 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
642 unique=`for i in $$list; do \
643 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
644 done | \
645 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
646 END { if (nonempty) { for (i in files) print i; }; }'`; \
647 test -z "$(CTAGS_ARGS)$$unique" \
648 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
649 $$unique
650
651GTAGS:
652 here=`$(am__cd) $(top_builddir) && pwd` \
653 && $(am__cd) $(top_srcdir) \
654 && gtags -i $(GTAGS_ARGS) "$$here"
655
656distclean-tags:
657 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
658
659distdir: $(DISTFILES)
660 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
661 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
662 list='$(DISTFILES)'; \
663 dist_files=`for file in $$list; do echo $$file; done | \
664 sed -e "s|^$$srcdirstrip/||;t" \
665 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
666 case $$dist_files in \
667 */*) $(MKDIR_P) `echo "$$dist_files" | \
668 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
669 sort -u` ;; \
670 esac; \
671 for file in $$dist_files; do \
672 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
673 if test -d $$d/$$file; then \
674 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
675 if test -d "$(distdir)/$$file"; then \
676 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
677 fi; \
678 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
679 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
680 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
681 fi; \
682 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
683 else \
684 test -f "$(distdir)/$$file" \
685 || cp -p $$d/$$file "$(distdir)/$$file" \
686 || exit 1; \
687 fi; \
688 done
689check-am: all-am
690check: check-am
691all-am: Makefile $(LTLIBRARIES) $(HEADERS)
692installdirs:
693 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
694 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
695 done
696install: install-am
697install-exec: install-exec-am
698install-data: install-data-am
699uninstall: uninstall-am
700
701install-am: all-am
702 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
703
704installcheck: installcheck-am
705install-strip:
706 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
707 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
708 `test -z '$(STRIP)' || \
709 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
710mostlyclean-generic:
711
712clean-generic:
713
714distclean-generic:
715 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
716 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
717
718maintainer-clean-generic:
719 @echo "This command is intended for maintainers to use"
720 @echo "it deletes files that may require special tools to rebuild."
721 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
722clean: clean-am
723
724clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
725 clean-pkgLTLIBRARIES mostlyclean-am
726
727distclean: distclean-am
728 -rm -rf ./$(DEPDIR)
729 -rm -f Makefile
730distclean-am: clean-am distclean-compile distclean-generic \
731 distclean-tags
732
733dvi: dvi-am
734
735dvi-am:
736
737html: html-am
738
739html-am:
740
741info: info-am
742
743info-am:
744
745install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
746
747install-dvi: install-dvi-am
748
749install-dvi-am:
750
751install-exec-am:
752
753install-html: install-html-am
754
755install-html-am:
756
757install-info: install-info-am
758
759install-info-am:
760
761install-man:
762
763install-pdf: install-pdf-am
764
765install-pdf-am:
766
767install-ps: install-ps-am
768
769install-ps-am:
770
771installcheck-am:
772
773maintainer-clean: maintainer-clean-am
774 -rm -rf ./$(DEPDIR)
775 -rm -f Makefile
776maintainer-clean-am: distclean-am maintainer-clean-generic
777
778mostlyclean: mostlyclean-am
779
780mostlyclean-am: mostlyclean-compile mostlyclean-generic \
781 mostlyclean-libtool
782
783pdf: pdf-am
784
785pdf-am:
786
787ps: ps-am
788
789ps-am:
790
791uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
792
793.MAKE: install-am install-strip
794
795.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
796 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
797 ctags distclean distclean-compile distclean-generic \
798 distclean-libtool distclean-tags distdir dvi dvi-am html \
799 html-am info info-am install install-am install-data \
800 install-data-am install-dvi install-dvi-am install-exec \
801 install-exec-am install-html install-html-am \
802 install-includesHEADERS install-info install-info-am \
803 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
804 install-ps install-ps-am install-strip installcheck \
805 installcheck-am installdirs maintainer-clean \
806 maintainer-clean-generic mostlyclean mostlyclean-compile \
807 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
808 tags uninstall uninstall-am uninstall-includesHEADERS \
809 uninstall-pkgLTLIBRARIES
810
811
812# Tell versions [3.59,3.63) of GNU make to not export all variables.
813# Otherwise a system limit (for SysV at least) may be exceeded.
814.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/gl_x11/evas_engine.c b/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
deleted file mode 100644
index 06348b4..0000000
--- a/libraries/evas/src/modules/engines/gl_x11/evas_engine.c
+++ /dev/null
@@ -1,4416 +0,0 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_engine.h"
3
4#ifdef HAVE_DLSYM
5# include <dlfcn.h> /* dlopen,dlclose,etc */
6#else
7# error gl_x11 should not get compiled if dlsym is not found on the system!
8#endif
9
10#define EVAS_GL_NO_GL_H_CHECK 1
11#include "Evas_GL.h"
12
13#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
14// EGL / GLES
15# if defined(GLES_VARIETY_S3C6410)
16# elif defined(GLES_VARIETY_SGX)
17# endif
18#else
19// GLX
20#endif
21
22typedef struct _Render_Engine Render_Engine;
23typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
24typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
25typedef struct _Render_Engine_GL_Resource Render_Engine_GL_Resource;
26typedef struct _Extension_Entry Extension_Entry;
27
28struct _Render_Engine
29{
30 Evas_GL_X11_Window *win;
31 Evas_Engine_Info_GL_X11 *info;
32 Evas *evas;
33 Tilebuf *tb;
34 int end;
35/*
36 XrmDatabase xrdb; // xres - dpi
37 struct { // xres - dpi
38 int dpi; // xres - dpi
39 } xr; // xres - dpi
40 */
41 int w, h;
42 int vsync;
43
44 // Shader used for Evas_GL_Direct Optimization
45 GLuint df_program;
46 GLuint df_vtx_shader;
47 GLuint df_fgmt_shader;
48 GLuint df_col_attrib;
49 GLuint df_pos_attrib;
50
51 GLfloat df_clear_color[4];
52 GLfloat df_depth_value;
53
54 int df_initialized;
55};
56
57struct _Render_Engine_GL_Surface
58{
59 int initialized;
60 int fbo_attached;
61 int w, h;
62 int depth_bits;
63 int stencil_bits;
64
65 int direct_fb_opt;
66
67 // Render target texture/buffers
68 GLuint rt_tex;
69 GLint rt_internal_fmt;
70 GLenum rt_fmt;
71 GLuint rb_depth;
72 GLenum rb_depth_fmt;
73 GLuint rb_stencil;
74 GLenum rb_stencil_fmt;
75
76#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
77 EGLSurface direct_sfc;
78#else
79 Window direct_sfc;
80#endif
81
82 Render_Engine_GL_Context *current_ctx;
83};
84
85struct _Render_Engine_GL_Context
86{
87 int initialized;
88#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
89 EGLContext context;
90#else
91 GLXContext context;
92#endif
93 GLuint context_fbo;
94 GLuint current_fbo;
95
96
97 int scissor_enabled;
98 int scissor_upated;
99
100 Render_Engine_GL_Surface *current_sfc;
101};
102
103// Resources used per thread
104struct _Render_Engine_GL_Resource
105{
106 // Resource context/surface per Thread in TLS for evasgl use
107#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
108 EGLContext context;
109 EGLSurface surface;
110#else
111 GLXContext context;
112#endif
113};
114
115// Extension Handling
116struct _Extension_Entry
117{
118 const char *name;
119 const char *real_name;
120 int supported;
121};
122
123static int initted = 0;
124static int gl_wins = 0;
125static int gl_direct_override = 0;
126static int gl_direct_enabled = 0;
127static Render_Engine_GL_Context *current_evgl_ctx = NULL;
128static Render_Engine *current_engine = NULL;
129static Evas_Object *gl_direct_img_obj = NULL;
130
131static char _gl_ext_string[1024];
132static char _evasgl_ext_string[1024];
133
134// Resource context/surface per Thread in TLS for evasgl use
135static Eina_TLS resource_key;
136static Eina_List *resource_list;
137LK(resource_lock);
138
139typedef void (*_eng_fn) (void);
140typedef _eng_fn (*glsym_func_eng_fn) ();
141typedef void (*glsym_func_void) ();
142typedef void *(*glsym_func_void_ptr) ();
143typedef int (*glsym_func_int) ();
144typedef unsigned int (*glsym_func_uint) ();
145typedef unsigned char (*glsym_func_uchar) ();
146typedef unsigned char *(*glsym_func_uchar_ptr) ();
147typedef const char *(*glsym_func_const_char_ptr) ();
148
149#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
150
151#ifndef EGL_NATIVE_PIXMAP_KHR
152# define EGL_NATIVE_PIXMAP_KHR 0x30b0
153#endif
154_eng_fn (*glsym_eglGetProcAddress) (const char *a) = NULL;
155void (*glsym_eglBindTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
156void (*glsym_eglReleaseTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
157void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e) = NULL;
158void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
159void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
160void (*glsym_glEGLImageTargetRenderbufferStorageOES) (int a, void *b) = NULL;
161void *(*glsym_eglMapImageSEC) (void *a, void *b) = NULL;
162unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
163const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
164
165unsigned int (*glsym_eglLockSurface) (EGLDisplay a, EGLSurface b, const int *attrib_list) = NULL;
166unsigned int (*glsym_eglUnlockSurface) (EGLDisplay a, EGLSurface b) = NULL;
167
168#else
169typedef XID (*glsym_func_xid) ();
170
171_eng_fn (*glsym_glXGetProcAddress) (const char *a) = NULL;
172void (*glsym_glXBindTexImage) (Display *a, GLXDrawable b, int c, int *d) = NULL;
173void (*glsym_glXReleaseTexImage) (Display *a, GLXDrawable b, int c) = NULL;
174int (*glsym_glXGetVideoSync) (unsigned int *a) = NULL;
175int (*glsym_glXWaitVideoSync) (int a, int b, unsigned int *c) = NULL;
176XID (*glsym_glXCreatePixmap) (Display *a, void *b, Pixmap c, const int *d) = NULL;
177void (*glsym_glXDestroyPixmap) (Display *a, XID b) = NULL;
178void (*glsym_glXQueryDrawable) (Display *a, XID b, int c, unsigned int *d) = NULL;
179int (*glsym_glXSwapIntervalSGI) (int a) = NULL;
180void (*glsym_glXSwapIntervalEXT) (Display *s, GLXDrawable b, int c) = NULL;
181
182const char *(*glsym_glXQueryExtensionsString) (Display *a, int screen) = NULL;
183#endif
184
185// GLES2 Extensions
186void (*glsym_glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary) = NULL;
187void (*glsym_glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length) = NULL;
188void* (*glsym_glMapBufferOES) (GLenum target, GLenum access) = NULL;
189unsigned char (*glsym_glUnmapBufferOES) (GLenum target) = NULL;
190void (*glsym_glGetBufferPointervOES) (GLenum target, GLenum pname, void** params) = NULL;
191void (*glsym_glTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels) = NULL;
192void (*glsym_glTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels) = NULL;
193void (*glsym_glCopyTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
194void (*glsym_glCompressedTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data) = NULL;
195void (*glsym_glCompressedTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data) = NULL;
196void (*glsym_glFramebufferTexture3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) = NULL;
197void (*glsym_glGetPerfMonitorGroupsAMD) (GLint* numGroups, GLsizei groupsSize, GLuint* groups) = NULL;
198void (*glsym_glGetPerfMonitorCountersAMD) (GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters) = NULL;
199void (*glsym_glGetPerfMonitorGroupStringAMD) (GLuint group, GLsizei bufSize, GLsizei* length, char* groupString) = NULL;
200void (*glsym_glGetPerfMonitorCounterStringAMD) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char* counterString) = NULL;
201void (*glsym_glGetPerfMonitorCounterInfoAMD) (GLuint group, GLuint counter, GLenum pname, void* data) = NULL;
202void (*glsym_glGenPerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
203void (*glsym_glDeletePerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
204void (*glsym_glSelectPerfMonitorCountersAMD) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList) = NULL;
205void (*glsym_glBeginPerfMonitorAMD) (GLuint monitor) = NULL;
206void (*glsym_glEndPerfMonitorAMD) (GLuint monitor) = NULL;
207void (*glsym_glGetPerfMonitorCounterDataAMD) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten) = NULL;
208void (*glsym_glDiscardFramebufferEXT) (GLenum target, GLsizei numAttachments, const GLenum* attachments) = NULL;
209void (*glsym_glMultiDrawArraysEXT) (GLenum mode, GLint* first, GLsizei* count, GLsizei primcount) = NULL;
210void (*glsym_glMultiDrawElementsEXT) (GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount) = NULL;
211void (*glsym_glDeleteFencesNV) (GLsizei n, const GLuint* fences) = NULL;
212void (*glsym_glGenFencesNV) (GLsizei n, GLuint* fences) = NULL;
213unsigned char (*glsym_glIsFenceNV) (GLuint fence) = NULL;
214unsigned char (*glsym_glTestFenceNV) (GLuint fence) = NULL;
215void (*glsym_glGetFenceivNV) (GLuint fence, GLenum pname, GLint* params) = NULL;
216void (*glsym_glFinishFenceNV) (GLuint fence) = NULL;
217void (*glsym_glSetFenceNV) (GLuint, GLenum) = NULL;
218void (*glsym_glGetDriverControlsQCOM) (GLint* num, GLsizei size, GLuint* driverControls) = NULL;
219void (*glsym_glGetDriverControlStringQCOM) (GLuint driverControl, GLsizei bufSize, GLsizei* length, char* driverControlString) = NULL;
220void (*glsym_glEnableDriverControlQCOM) (GLuint driverControl) = NULL;
221void (*glsym_glDisableDriverControlQCOM) (GLuint driverControl) = NULL;
222void (*glsym_glExtGetTexturesQCOM) (GLuint* textures, GLint maxTextures, GLint* numTextures) = NULL;
223void (*glsym_glExtGetBuffersQCOM) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers) = NULL;
224void (*glsym_glExtGetRenderbuffersQCOM) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers) = NULL;
225void (*glsym_glExtGetFramebuffersQCOM) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers) = NULL;
226void (*glsym_glExtGetTexLevelParameterivQCOM) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params) = NULL;
227void (*glsym_glExtTexObjectStateOverrideiQCOM) (GLenum target, GLenum pname, GLint param) = NULL;
228void (*glsym_glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels) = NULL;
229void (*glsym_glExtGetBufferPointervQCOM) (GLenum target, void** params) = NULL;
230void (*glsym_glExtGetShadersQCOM) (GLuint* shaders, GLint maxShaders, GLint* numShaders) = NULL;
231void (*glsym_glExtGetProgramsQCOM) (GLuint* programs, GLint maxPrograms, GLint* numPrograms) = NULL;
232unsigned char (*glsym_glExtIsProgramBinaryQCOM) (GLuint program) = NULL;
233void (*glsym_glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, char* source, GLint* length) = NULL;
234
235
236//------ GLES 2.0 Extensions supported in EvasGL -----//
237static Extension_Entry _gl_ext_entries[] = {
238#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
239 //--- Function Extensions ---//
240 { "GL_OES_get_program_binary", "get_program_binary", 0 },
241 { "GL_OES_mapbuffer", "mapbuffer", 0 },
242 { "GL_OES_texture_3D", "texture_3D", 0 },
243 { "AMD_performance_monitor", "AMD_performance_monitor", 0 },
244 { "GL_EXT_discard_framebuffer", "discard_framebuffer", 0 },
245 { "GL_EXT_multi_draw_arrays", "multi_draw_arrays", 0 },
246 { "GL_NV_fence", "NV_fence", 0 },
247 { "GL_QCOM_driver_control", "QCOM_driver_control", 0 },
248 { "GL_QCOM_extended_get", "QCOM_extended_get", 0 },
249 { "GL_QCOM_extended_get2", "QCOM_extended_get2", 0 },
250
251 //--- Define Extensions ---//
252 { "GL_OES_compressed_ETC1_RGB8_texture", "compressed_ETC1_RGB8_texture", 0 },
253 { "GL_OES_compressed_paletted_texture", "compressed_paletted_texture", 0 },
254 { "GL_OES_depth24", "depth24", 0 },
255 { "GL_OES_depth32", "depth32", 0 },
256 { "GL_OES_EvasGL_image", "EGL_image", 0 },
257 { "GL_OES_packed_depth_stencil", "packed_depth_stencil", 0 },
258 { "GL_OES_rgb8_rgba8", "rgb8_rgba8", 0 },
259 { "GL_OES_standard_derivatives", "standard_derivatives", 0 },
260 { "GL_OES_stencil1", "stencil1", 0 },
261 { "GL_OES_stencil4", "stencil4", 0 },
262 { "GL_OES_texture_float", "texture_float", 0 },
263 { "GL_OES_texture_half_float", "texture_half_float", 0 },
264 { "GL_OES_texture_half_float_linear", "texture_half_float_linear", 0 },
265 { "GL_OES_texture_npot", "texture_npot", 0 },
266 { "GL_OES_vertex_half_float", "vertex_half_float", 0 },
267 { "GL_OES_vertex_type_10_10_10_2", "vertex_type_10_10_10_2", 0 },
268 { "GL_AMD_compressed_3DC_texture", "compressed_3DC_texture", 0 },
269 { "GL_AMD_compressed_ATC_texture", "compressed_ATC_texture", 0 },
270 { "GL_AMD_program_binary_Z400", "program_binary_Z400", 0 },
271 { "GL_EXT_blend_minmax", "blend_minmax", 0 },
272 { "GL_EXT_read_format_bgra", "read_format_bgra", 0 },
273 { "GL_EXT_texture_filter_anisotropic", "texture_filter_anisotrophic", 0 },
274 { "GL_EXT_texture_format_BGRA8888", "texture_format_BGRA8888", 0 },
275 { "GL_EXT_texture_type_2_10_10_10_REV", "texture_type_2_10_10_10_rev", 0 },
276 { "GL_IMG_program_binary", "IMG_program_binary", 0 },
277 { "GL_IMG_read_format", "IMG_read_format", 0 },
278 { "GL_IMG_shader_binary", "IMG_shader_binary", 0 },
279 { "GL_IMG_texture_compression_pvrtc", "IMG_texture_compression_pvrtc", 0 },
280 { "GL_QCOM_perfmon_global_mode", "QCOM_perfmon_global_mode", 0 },
281 { "GL_QCOM_writeonly_rendering", "QCOM_writeonly_rendering", 0 },
282#else
283 //--- Function Extensions ---//
284 { "GL_OES_get_program_binary", "get_program_binary", 0 },
285 { "GL_OES_mapbuffer", "mapbuffer", 0 },
286 { "GL_OES_texture_3D", "texture_3D", 0 },
287 { "AMD_performance_monitor", "AMD_performance_monitor", 0 },
288 { "GL_EXT_discard_framebuffer", "discard_framebuffer", 0 },
289 { "GL_EXT_multi_draw_arrays", "multi_draw_arrays", 0 },
290 { "GL_NV_fence", "NV_fence", 0 },
291 { "GL_QCOM_driver_control", "QCOM_driver_control", 0 },
292 { "GL_QCOM_extended_get", "QCOM_extended_get", 0 },
293 { "GL_QCOM_extended_get2", "QCOM_extended_get2", 0 },
294
295 //--- Define Extensions ---//
296 { "GL_OES_compressed_ETC1_RGB8_texture", "compressed_ETC1_RGB8_texture", 0 },
297 { "GL_OES_compressed_paletted_texture", "compressed_paletted_texture", 0 },
298 { "GL_OES_depth24", "depth24", 0 },
299 { "GL_OES_depth32", "depth32", 0 },
300 { "GL_OES_EvasGL_image", "EGL_image", 0 },
301 { "GL_OES_packed_depth_stencil", "packed_depth_stencil", 0 },
302 { "GL_OES_rgb8_rgba8", "rgb8_rgba8", 0 },
303 { "GL_OES_standard_derivatives", "standard_derivatives", 0 },
304 { "GL_OES_stencil1", "stencil1", 0 },
305 { "GL_OES_stencil4", "stencil4", 0 },
306 { "GL_OES_texture_float", "texture_float", 0 },
307 { "GL_OES_texture_half_float", "texture_half_float", 0 },
308 { "GL_OES_texture_half_float_linear", "texture_half_float_linear", 0 },
309 { "GL_OES_texture_npot", "texture_non_power_of_two", 0 }, // Desktop differs
310 { "GL_OES_vertex_half_float", "half_float_vertex", 0 }, // Desktop differs
311 { "GL_OES_vertex_type_10_10_10_2", "vertex_type_10_10_10_2", 0 },
312 { "GL_AMD_compressed_3DC_texture", "compressed_3DC_texture", 0 },
313 { "GL_AMD_compressed_ATC_texture", "compressed_ATC_texture", 0 },
314 { "GL_AMD_program_binary_Z400", "program_binary_Z400", 0 },
315 { "GL_EXT_blend_minmax", "blend_minmax", 0 },
316 { "GL_EXT_read_format_bgra", "bgra", 0 }, // Desktop differs
317 { "GL_EXT_texture_filter_anisotropic", "texture_filter_anisotrophic", 0 },
318 { "GL_EXT_texture_format_BGRA8888", "bgra", 0 }, // Desktop differs
319 { "GL_EXT_texture_type_2_10_10_10_REV", "vertex_type_2_10_10_10_rev", 0 }, // Desktop differs ???
320 { "GL_IMG_program_binary", "IMG_program_binary", 0 },
321 { "GL_IMG_read_format", "IMG_read_format", 0 },
322 { "GL_IMG_shader_binary", "IMG_shader_binary", 0 },
323 { "GL_IMG_texture_compression_pvrtc", "IMG_texture_compression_pvrtc", 0 },
324 { "GL_QCOM_perfmon_global_mode", "QCOM_perfmon_global_mode", 0 },
325 { "GL_QCOM_writeonly_rendering", "QCOM_writeonly_rendering", 0 },
326
327#endif
328 { NULL, NULL, 0}
329};
330
331//------ Extensions supported in EvasGL -----//
332static Extension_Entry _evasgl_ext_entries[] = {
333#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
334 { "EvasGL_KHR_image", "EGL_KHR_image", 0 },
335 { "EvasGL_KHR_vg_parent_image", "EGL_KHR_vg_parent_image", 0 },
336 { "EvasGL_KHR_gl_texture_2D_image", "EGL_KHR_gl_texture_2D_image", 0 },
337 { "EvasGL_KHR_gl_texture_cubemap_image", "EGL_KHR_gl_texture_cubemap_image", 0 },
338 { "EvasGL_KHR_gl_texture_3D_image", "EGL_KHR_gl_texture_3D_image", 0 },
339 { "EvasGL_KHR_gl_renderbuffer_image", "EGL_KHR_gl_renderbuffer_image", 0 },
340#else
341#endif
342 { NULL, NULL, 0 }
343};
344
345static void
346_sym_init(void)
347{
348 static int done = 0;
349
350 if (done) return;
351
352#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
353#define FINDSYM(dst, sym, typ) \
354 if ((!dst) && (glsym_eglGetProcAddress)) dst = (typ)glsym_eglGetProcAddress(sym); \
355 if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym)
356
357 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddress", glsym_func_eng_fn);
358 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressEXT", glsym_func_eng_fn);
359 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressARB", glsym_func_eng_fn);
360 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressKHR", glsym_func_eng_fn);
361
362 FINDSYM(glsym_eglBindTexImage, "eglBindTexImage", glsym_func_void);
363 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageEXT", glsym_func_void);
364 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageARB", glsym_func_void);
365 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageKHR", glsym_func_void);
366
367 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImage", glsym_func_void);
368 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageEXT", glsym_func_void);
369 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageARB", glsym_func_void);
370 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageKHR", glsym_func_void);
371
372 FINDSYM(glsym_eglCreateImage, "eglCreateImage", glsym_func_void_ptr);
373 FINDSYM(glsym_eglCreateImage, "eglCreateImageEXT", glsym_func_void_ptr);
374 FINDSYM(glsym_eglCreateImage, "eglCreateImageARB", glsym_func_void_ptr);
375 FINDSYM(glsym_eglCreateImage, "eglCreateImageKHR", glsym_func_void_ptr);
376
377 FINDSYM(glsym_eglDestroyImage, "eglDestroyImage", glsym_func_void);
378 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageEXT", glsym_func_void);
379 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageARB", glsym_func_void);
380 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageKHR", glsym_func_void);
381
382 FINDSYM(glsym_glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES", glsym_func_void);
383
384 FINDSYM(glsym_glEGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES", glsym_func_void);
385
386 FINDSYM(glsym_eglMapImageSEC, "eglMapImageSEC", glsym_func_void_ptr);
387 FINDSYM(glsym_eglUnmapImageSEC, "eglUnmapImageSEC", glsym_func_uint);
388
389 FINDSYM(glsym_eglQueryString, "eglQueryString", glsym_func_const_char_ptr);
390
391 FINDSYM(glsym_eglLockSurface, "eglLockSurface", glsym_func_uint);
392 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceEXT", glsym_func_uint);
393 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceARB", glsym_func_uint);
394 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceKHR", glsym_func_uint);
395
396 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurface", glsym_func_uint);
397 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceEXT", glsym_func_uint);
398 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceARB", glsym_func_uint);
399 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceKHR", glsym_func_uint);
400
401#else
402#define FINDSYM(dst, sym, typ) \
403 if ((!dst) && (glsym_glXGetProcAddress)) dst = (typ)glsym_glXGetProcAddress(sym); \
404 if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym)
405
406 FINDSYM(glsym_glXGetProcAddress, "glXGetProcAddress", glsym_func_eng_fn);
407 FINDSYM(glsym_glXGetProcAddress, "glXGetProcAddressEXT", glsym_func_eng_fn);
408 FINDSYM(glsym_glXGetProcAddress, "glXGetProcAddressARB", glsym_func_eng_fn);
409
410 FINDSYM(glsym_glXBindTexImage, "glXBindTexImage", glsym_func_void);
411 FINDSYM(glsym_glXBindTexImage, "glXBindTexImageEXT", glsym_func_void);
412 FINDSYM(glsym_glXBindTexImage, "glXBindTexImageARB", glsym_func_void);
413
414 FINDSYM(glsym_glXReleaseTexImage, "glXReleaseTexImage", glsym_func_void);
415 FINDSYM(glsym_glXReleaseTexImage, "glXReleaseTexImageEXT", glsym_func_void);
416 FINDSYM(glsym_glXReleaseTexImage, "glXReleaseTexImageARB", glsym_func_void);
417
418 FINDSYM(glsym_glXGetVideoSync, "glXGetVideoSyncSGI", glsym_func_int);
419
420 FINDSYM(glsym_glXWaitVideoSync, "glXWaitVideoSyncSGI", glsym_func_int);
421
422 FINDSYM(glsym_glXCreatePixmap, "glXCreatePixmap", glsym_func_xid);
423 FINDSYM(glsym_glXCreatePixmap, "glXCreatePixmapEXT", glsym_func_xid);
424 FINDSYM(glsym_glXCreatePixmap, "glXCreatePixmapARB", glsym_func_xid);
425
426 FINDSYM(glsym_glXDestroyPixmap, "glXDestroyPixmap", glsym_func_void);
427 FINDSYM(glsym_glXDestroyPixmap, "glXDestroyPixmapEXT", glsym_func_void);
428 FINDSYM(glsym_glXDestroyPixmap, "glXDestroyPixmapARB", glsym_func_void);
429
430 FINDSYM(glsym_glXQueryDrawable, "glXQueryDrawable", glsym_func_void);
431 FINDSYM(glsym_glXQueryDrawable, "glXQueryDrawableEXT", glsym_func_void);
432 FINDSYM(glsym_glXQueryDrawable, "glXQueryDrawableARB", glsym_func_void);
433
434 FINDSYM(glsym_glXSwapIntervalSGI, "glXSwapIntervalMESA", glsym_func_int);
435 FINDSYM(glsym_glXSwapIntervalSGI, "glXSwapIntervalSGI", glsym_func_int);
436
437 FINDSYM(glsym_glXSwapIntervalEXT, "glXSwapIntervalEXT", glsym_func_void);
438
439 FINDSYM(glsym_glXQueryExtensionsString, "glXQueryExtensionsString", glsym_func_const_char_ptr);
440#endif
441
442 //----------- GLES 2.0 Extensions ------------//
443 // If the symbol's not found, they get set to NULL
444 // If one of the functions in the extension exists, the extension in supported
445 /* GL_OES_get_program_binary */
446 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinary", glsym_func_void);
447 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryEXT", glsym_func_void);
448 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryARB", glsym_func_void);
449 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryOES", glsym_func_void);
450
451 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinary", glsym_func_void);
452 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryEXT", glsym_func_void);
453 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryARB", glsym_func_void);
454 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryOES", glsym_func_void);
455
456 // Check the first function to see if the extension is supported...
457 if (glsym_glGetProgramBinaryOES) _gl_ext_entries[0].supported = 1;
458
459
460 /* GL_OES_mapbuffer */
461 FINDSYM(glsym_glMapBufferOES, "glMapBuffer", glsym_func_void_ptr);
462 FINDSYM(glsym_glMapBufferOES, "glMapBufferEXT", glsym_func_void_ptr);
463 FINDSYM(glsym_glMapBufferOES, "glMapBufferARB", glsym_func_void_ptr);
464 FINDSYM(glsym_glMapBufferOES, "glMapBufferOES", glsym_func_void_ptr);
465
466 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBuffer", glsym_func_uchar);
467 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferEXT", glsym_func_uchar);
468 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferARB", glsym_func_uchar);
469 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferOES", glsym_func_uchar);
470
471 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointerv", glsym_func_void);
472 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervEXT", glsym_func_void);
473 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervARB", glsym_func_void);
474 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervOES", glsym_func_void);
475
476 if (glsym_glMapBufferOES) _gl_ext_entries[1].supported = 1;
477
478 /* GL_OES_texture_3D */
479 FINDSYM(glsym_glTexImage3DOES, "glTexImage3D", glsym_func_void);
480 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DEXT", glsym_func_void);
481 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DARB", glsym_func_void);
482 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DOES", glsym_func_void);
483
484 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3D", glsym_func_void);
485 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DEXT", glsym_func_void);
486 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DARB", glsym_func_void);
487 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DOES", glsym_func_void);
488
489 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3D", glsym_func_void);
490 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DARB", glsym_func_void);
491 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DEXT", glsym_func_void);
492 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DOES", glsym_func_void);
493
494 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3D", glsym_func_void);
495 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DARB", glsym_func_void);
496 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DEXT", glsym_func_void);
497 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DOES", glsym_func_void);
498
499 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3D", glsym_func_void);
500 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DARB", glsym_func_void);
501 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DEXT", glsym_func_void);
502 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DOES", glsym_func_void);
503
504 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3D", glsym_func_void);
505 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DARB", glsym_func_void);
506 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DEXT", glsym_func_void);
507 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DOES", glsym_func_void);
508
509 if (glsym_glTexSubImage3DOES) _gl_ext_entries[2].supported = 1;
510
511 /* AMD_performance_monitor */
512 FINDSYM(glsym_glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD", glsym_func_void);
513 FINDSYM(glsym_glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD", glsym_func_void);
514 FINDSYM(glsym_glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD", glsym_func_void);
515 FINDSYM(glsym_glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD", glsym_func_void);
516 FINDSYM(glsym_glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD", glsym_func_void);
517 FINDSYM(glsym_glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD", glsym_func_void);
518 FINDSYM(glsym_glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD", glsym_func_void);
519 FINDSYM(glsym_glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD", glsym_func_void);
520 FINDSYM(glsym_glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD", glsym_func_void);
521 FINDSYM(glsym_glEndPerfMonitorAMD, "glEndPerfMonitorAMD", glsym_func_void);
522 FINDSYM(glsym_glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD", glsym_func_void);
523
524 if (glsym_glGetPerfMonitorGroupsAMD) _gl_ext_entries[3].supported = 1;
525
526 /* GL_EXT_discard_framebuffer */
527 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebuffer", glsym_func_void);
528 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferARB", glsym_func_void);
529 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferEXT", glsym_func_void);
530
531 if (glsym_glDiscardFramebufferEXT) _gl_ext_entries[4].supported = 1;
532
533 /* GL_EXT_multi_draw_arrays */
534 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArrays", glsym_func_void);
535 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysARB", glsym_func_void);
536 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysEXT", glsym_func_void);
537
538 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElements", glsym_func_void);
539 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsARB", glsym_func_void);
540 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsEXT", glsym_func_void);
541
542 if (glsym_glMultiDrawArraysEXT) _gl_ext_entries[5].supported = 1;
543
544 /* GL_NV_fence */
545 FINDSYM(glsym_glDeleteFencesNV, "glDeleteFencesNV", glsym_func_void);
546 FINDSYM(glsym_glGenFencesNV, "glGenFencesNV", glsym_func_void);
547 FINDSYM(glsym_glIsFenceNV, "glIsFenceNV", glsym_func_uchar);
548 FINDSYM(glsym_glTestFenceNV, "glTestFenceNV", glsym_func_uchar);
549 FINDSYM(glsym_glGetFenceivNV, "glGetFenceivNV", glsym_func_void);
550 FINDSYM(glsym_glFinishFenceNV, "glFinishFenceNV", glsym_func_void);
551 FINDSYM(glsym_glSetFenceNV, "glSetFenceNV", glsym_func_void);
552
553 if (glsym_glDeleteFencesNV) _gl_ext_entries[6].supported = 1;
554
555 /* GL_QCOM_driver_control */
556 FINDSYM(glsym_glGetDriverControlsQCOM, "glGetDriverControlsQCOM", glsym_func_void);
557 FINDSYM(glsym_glGetDriverControlStringQCOM, "glGetDriverControlStringQCOM", glsym_func_void);
558 FINDSYM(glsym_glEnableDriverControlQCOM, "glEnableDriverControlQCOM", glsym_func_void);
559 FINDSYM(glsym_glDisableDriverControlQCOM, "glDisableDriverControlQCOM", glsym_func_void);
560
561 if (glsym_glGetDriverControlsQCOM) _gl_ext_entries[7].supported = 1;
562
563 /* GL_QCOM_extended_get */
564 FINDSYM(glsym_glExtGetTexturesQCOM, "glExtGetTexturesQCOM", glsym_func_void);
565 FINDSYM(glsym_glExtGetBuffersQCOM, "glExtGetBuffersQCOM", glsym_func_void);
566 FINDSYM(glsym_glExtGetRenderbuffersQCOM, "glExtGetRenderbuffersQCOM", glsym_func_void);
567 FINDSYM(glsym_glExtGetFramebuffersQCOM, "glExtGetFramebuffersQCOM", glsym_func_void);
568 FINDSYM(glsym_glExtGetTexLevelParameterivQCOM, "glExtGetTexLevelParameterivQCOM", glsym_func_void);
569 FINDSYM(glsym_glExtTexObjectStateOverrideiQCOM, "glExtTexObjectStateOverrideiQCOM", glsym_func_void);
570 FINDSYM(glsym_glExtGetTexSubImageQCOM, "glExtGetTexSubImageQCOM", glsym_func_void);
571 FINDSYM(glsym_glExtGetBufferPointervQCOM, "glExtGetBufferPointervQCOM", glsym_func_void);
572
573 if (glsym_glExtGetTexturesQCOM) _gl_ext_entries[8].supported = 1;
574
575 /* GL_QCOM_extended_get2 */
576 FINDSYM(glsym_glExtGetShadersQCOM, "glExtGetShadersQCOM", glsym_func_void);
577 FINDSYM(glsym_glExtGetProgramsQCOM, "glExtGetProgramsQCOM", glsym_func_void);
578 FINDSYM(glsym_glExtIsProgramBinaryQCOM, "glExtIsProgramBinaryQCOM", glsym_func_uchar);
579 FINDSYM(glsym_glExtGetProgramBinarySourceQCOM, "glExtGetProgramBinarySourceQCOM", glsym_func_void);
580
581 if (glsym_glExtGetShadersQCOM) _gl_ext_entries[9].supported = 1;
582}
583
584static void
585_extensions_init(Render_Engine *re)
586{
587 int i;
588 const char *glexts, *evasglexts;
589
590 memset(_gl_ext_string, 0, 1024);
591 memset(_evasgl_ext_string, 0, 1024);
592
593 // GLES 2.0 Extensions
594 glexts = (const char*)glGetString(GL_EXTENSIONS);
595
596 DBG("--------GLES 2.0 Extensions--------");
597 for (i = 0; _gl_ext_entries[i].name != NULL; i++)
598 {
599 if ( (strstr(glexts, _gl_ext_entries[i].name) != NULL) ||
600 (strstr(glexts, _gl_ext_entries[i].real_name) != NULL) )
601 {
602 _gl_ext_entries[i].supported = 1;
603 strcat(_gl_ext_string, _gl_ext_entries[i].name);
604 strcat(_gl_ext_string, " ");
605 DBG("\t%s", _gl_ext_entries[i].name);
606 }
607
608 }
609 DBG(" ");
610
611#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
612 // EGL Extensions
613 if (glsym_eglQueryString)
614 {
615 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS);
616#else
617 if (glsym_glXQueryExtensionsString)
618 {
619 evasglexts = glXQueryExtensionsString(re->info->info.display,
620 re->info->info.screen);
621#endif
622
623 DBG("--------EvasGL Extensions----------");
624 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++)
625 {
626 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
627 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
628 {
629 _evasgl_ext_entries[i].supported = 1;
630 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name);
631 strcat(_evasgl_ext_string, " ");
632 DBG("\t%s", _evasgl_ext_entries[i].name);
633 }
634 }
635 DBG(" ");
636 }
637}
638
639int _evas_engine_GL_X11_log_dom = -1;
640/* function tables - filled in later (func and parent func) */
641static Evas_Func func, pfunc;
642
643/* Function table for GL APIs */
644static Evas_GL_API gl_funcs;
645/*
646struct xrdb_user
647{
648 time_t last_stat;
649 time_t last_mtime;
650 XrmDatabase db;
651};
652static struct xrdb_user xrdb_user = {0, 0, NULL};
653
654static Eina_Bool
655xrdb_user_query(const char *name, const char *cls, char **type, XrmValue *val)
656{
657 time_t last = xrdb_user.last_stat, now = time(NULL);
658
659 xrdb_user.last_stat = now;
660 if (last != now) // don't stat() more than once every second
661 {
662 struct stat st;
663 const char *home = getenv("HOME");
664 char tmp[PATH_MAX];
665
666 if (!home) goto failed;
667 snprintf(tmp, sizeof(tmp), "%s/.Xdefaults", home);
668 if (stat(tmp, &st) != 0) goto failed;
669 if (xrdb_user.last_mtime != st.st_mtime)
670 {
671 if (xrdb_user.db) XrmDestroyDatabase(xrdb_user.db);
672 xrdb_user.db = XrmGetFileDatabase(tmp);
673 if (!xrdb_user.db) goto failed;
674 xrdb_user.last_mtime = st.st_mtime;
675 }
676 }
677
678 if (!xrdb_user.db) return EINA_FALSE;
679 return XrmGetResource(xrdb_user.db, name, cls, type, val);
680
681 failed:
682 if (xrdb_user.db)
683 {
684 XrmDestroyDatabase(xrdb_user.db);
685 xrdb_user.db = NULL;
686 }
687 xrdb_user.last_mtime = 0;
688 return EINA_FALSE;
689}
690*/
691
692static void *
693eng_info(Evas *e)
694{
695 Evas_Engine_Info_GL_X11 *info;
696
697 info = calloc(1, sizeof(Evas_Engine_Info_GL_X11));
698 info->magic.magic = rand();
699 info->func.best_visual_get = eng_best_visual_get;
700 info->func.best_colormap_get = eng_best_colormap_get;
701 info->func.best_depth_get = eng_best_depth_get;
702 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
703 return info;
704 e = NULL;
705}
706
707static void
708eng_info_free(Evas *e __UNUSED__, void *info)
709{
710 Evas_Engine_Info_GL_X11 *in;
711// dont free! why bother? its not worth it
712// eina_log_domain_unregister(_evas_engine_GL_X11_log_dom);
713 in = (Evas_Engine_Info_GL_X11 *)info;
714 free(in);
715}
716
717static int
718_re_wincheck(Render_Engine *re)
719{
720 if (re->win->surf) return 1;
721 eng_window_resurf(re->win);
722 if (!re->win->surf)
723 {
724 ERR("GL engine can't re-create window surface!");
725 }
726 return 0;
727}
728
729static void
730_re_winfree(Render_Engine *re)
731{
732 if (!re->win->surf) return;
733 eng_window_unsurf(re->win);
734}
735
736static Render_Engine_GL_Resource *
737_create_internal_glue_resources(void *data)
738{
739 Render_Engine *re = (Render_Engine *)data;
740 Render_Engine_GL_Resource *rsc;
741
742 rsc = calloc(1, sizeof(Render_Engine_GL_Resource));
743
744 if (!rsc) return NULL;
745
746#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
747 // EGL
748 int context_attrs[3];
749 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
750 context_attrs[1] = 2;
751 context_attrs[2] = EGL_NONE;
752
753 // Create resource surface for EGL
754 rsc->surface = eglCreateWindowSurface(re->win->egl_disp,
755 re->win->egl_config,
756 (EGLNativeWindowType)DefaultRootWindow(re->info->info.display),
757 NULL);
758 if (!rsc->surface)
759 {
760 ERR("Creating internal resource surface failed.");
761 free(rsc);
762 return NULL;
763 }
764
765 // Create a resource context for EGL
766 rsc->context = eglCreateContext(re->win->egl_disp,
767 re->win->egl_config,
768 re->win->egl_context[0], // Evas' GL Context
769 context_attrs);
770 if (!rsc->context)
771 {
772 ERR("Internal Resource Context Creations Failed.");
773 free(rsc);
774 return NULL;
775 }
776
777 // Add to the resource resource list for cleanup
778 LKL(resource_lock);
779 resource_list = eina_list_prepend(resource_list, rsc);
780 LKU(resource_lock);
781
782 // Set the resource in TLS
783 if (eina_tls_set(resource_key, (void*)rsc) == EINA_FALSE)
784 {
785 ERR("Failed setting TLS Resource");
786 free(rsc);
787 return NULL;
788 }
789
790#else
791 // GLX
792 rsc->context = glXCreateContext(re->info->info.display,
793 re->win->visualinfo,
794 re->win->context, // Evas' GL Context
795 1);
796 if (!rsc->context)
797 {
798 ERR("Internal Resource Context Creations Failed.");
799 free(rsc);
800 return NULL;
801 }
802
803 // Add to the resource resource list for cleanup
804 LKL(resource_lock);
805 resource_list = eina_list_prepend(resource_list, rsc);
806 LKU(resource_lock);
807
808 // Set the resource in TLS
809 if (eina_tls_set(resource_key, (void*)rsc) == EINA_FALSE)
810 {
811 ERR("Failed setting TLS Resource");
812 free(rsc);
813 return NULL;
814 }
815
816#endif
817
818
819 return rsc;
820}
821
822static int
823_destroy_internal_glue_resources(void *data)
824{
825 Render_Engine *re = (Render_Engine *)data;
826 Eina_List *l;
827 Render_Engine_GL_Resource *rsc;
828
829#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
830 // EGL
831 // Delete the Resources
832 LKL(resource_lock);
833 EINA_LIST_FOREACH(resource_list, l, rsc)
834 {
835 if (rsc->surface) eglDestroySurface(re->win->egl_disp, rsc->surface);
836 if (rsc->context) eglDestroyContext(re->win->egl_disp, rsc->context);
837 free(rsc);
838 }
839 eina_list_free(resource_list);
840 LKU(resource_lock);
841
842 // Destroy TLS
843 eina_tls_free(resource_key);
844#else
845 // GLX
846 // Delete the Resources
847 LKL(resource_lock);
848 EINA_LIST_FOREACH(resource_list, l, rsc)
849 {
850 if (rsc)
851 {
852 glXDestroyContext(re->info->info.display, rsc->context);
853 free(rsc);
854 }
855 }
856 eina_list_free(resource_list);
857 LKU(resource_lock);
858
859 // Destroy TLS
860 eina_tls_free(resource_key);
861#endif
862
863 return 1;
864}
865
866
867
868static int
869eng_setup(Evas *e, void *in)
870{
871 Render_Engine *re;
872 Evas_Engine_Info_GL_X11 *info;
873
874 info = (Evas_Engine_Info_GL_X11 *)in;
875 if (!e->engine.data.output)
876 {
877#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
878#else
879 int eb, evb;
880
881 if (!glXQueryExtension(info->info.display, &eb, &evb)) return 0;
882#endif
883 re = calloc(1, sizeof(Render_Engine));
884 if (!re) return 0;
885 re->info = info;
886 re->evas = e;
887 e->engine.data.output = re;
888 re->w = e->output.w;
889 re->h = e->output.h;
890 re->win = eng_window_new(re->info->info.display,
891 re->info->info.drawable,
892 re->info->info.screen,
893 re->info->info.visual,
894 re->info->info.colormap,
895 re->info->info.depth,
896 re->w,
897 re->h,
898 re->info->indirect,
899 re->info->info.destination_alpha,
900 re->info->info.rotation);
901 if (!re->win)
902 {
903 free(re);
904 e->engine.data.output = NULL;
905 return 0;
906 }
907
908 gl_wins++;
909/*
910 {
911 int status;
912 char *type = NULL;
913 XrmValue val;
914
915 re->xr.dpi = 75000; // dpy * 1000
916
917 status = xrdb_user_query("Xft.dpi", "Xft.Dpi", &type, &val);
918 if ((!status) || (!type))
919 {
920 if (!re->xrdb) re->xrdb = XrmGetDatabase(re->info->info.display);
921 if (re->xrdb)
922 status = XrmGetResource(re->xrdb,
923 "Xft.dpi", "Xft.Dpi", &type, &val);
924 }
925
926 if ((status) && (type))
927 {
928 if (!strcmp(type, "String"))
929 {
930 const char *str, *dp;
931
932 str = val.addr;
933 dp = strchr(str, '.');
934 if (!dp) dp = strchr(str, ',');
935
936 if (dp)
937 {
938 int subdpi, len, i;
939 char *buf;
940
941 buf = alloca(dp - str + 1);
942 strncpy(buf, str, dp - str);
943 buf[dp - str] = 0;
944 len = strlen(dp + 1);
945 subdpi = atoi(dp + 1);
946
947 if (len < 3)
948 {
949 for (i = len; i < 3; i++) subdpi *= 10;
950 }
951 else if (len > 3)
952 {
953 for (i = len; i > 3; i--) subdpi /= 10;
954 }
955 re->xr.dpi = atoi(buf) * 1000;
956 }
957 else
958 re->xr.dpi = atoi(str) * 1000;
959 evas_common_font_dpi_set(re->xr.dpi / 1000);
960 }
961 }
962 }
963 */
964 if (!initted)
965 {
966 evas_common_cpu_init();
967
968 evas_common_blend_init();
969 evas_common_image_init();
970 evas_common_convert_init();
971 evas_common_scale_init();
972 evas_common_rectangle_init();
973 evas_common_polygon_init();
974 evas_common_line_init();
975 evas_common_font_init();
976 evas_common_draw_init();
977 evas_common_tilebuf_init();
978
979 // Initialize TLS
980 if (eina_tls_new(&resource_key) == EINA_FALSE)
981 ERR("Error creating tls key");
982 DBG("TLS KEY create... %d", resource_key);
983
984 initted = 1;
985 }
986 }
987 else
988 {
989 re = e->engine.data.output;
990 if (_re_wincheck(re))
991 {
992 if ((re->info->info.display != re->win->disp) ||
993 (re->info->info.drawable != re->win->win) ||
994 (re->info->info.screen != re->win->screen) ||
995 (re->info->info.visual != re->win->visual) ||
996 (re->info->info.colormap != re->win->colormap) ||
997 (re->info->info.depth != re->win->depth) ||
998 (re->info->info.destination_alpha != re->win->alpha) ||
999 (re->info->info.rotation != re->win->rot))
1000 {
1001 int inc = 0;
1002
1003 if (re->win)
1004 {
1005 re->win->gl_context->references++;
1006 eng_window_free(re->win);
1007 inc = 1;
1008 gl_wins--;
1009 }
1010 re->w = e->output.w;
1011 re->h = e->output.h;
1012 re->win = eng_window_new(re->info->info.display,
1013 re->info->info.drawable,
1014 re->info->info.screen,
1015 re->info->info.visual,
1016 re->info->info.colormap,
1017 re->info->info.depth,
1018 re->w,
1019 re->h,
1020 re->info->indirect,
1021 re->info->info.destination_alpha,
1022 re->info->info.rotation);
1023 eng_window_use(re->win);
1024 if (re->win) gl_wins++;
1025 if ((re->win) && (inc))
1026 re->win->gl_context->references--;
1027 }
1028 else if ((re->win->w != e->output.w) ||
1029 (re->win->h != e->output.h))
1030 {
1031 re->w = e->output.w;
1032 re->h = e->output.h;
1033 re->win->w = e->output.w;
1034 re->win->h = e->output.h;
1035 eng_window_use(re->win);
1036 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot);
1037 }
1038 }
1039 }
1040 if (!re->win)
1041 {
1042 free(re);
1043 return 0;
1044 }
1045
1046 if (!e->engine.data.output)
1047 {
1048 if (re->win)
1049 {
1050 eng_window_free(re->win);
1051 gl_wins--;
1052 }
1053 free(re);
1054 return 0;
1055 }
1056 re->tb = evas_common_tilebuf_new(re->win->w, re->win->h);
1057 if (!re->tb)
1058 {
1059 if (re->win)
1060 {
1061 eng_window_free(re->win);
1062 gl_wins--;
1063 }
1064 free(re);
1065 return 0;
1066 }
1067 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
1068
1069 if (!e->engine.data.context)
1070 e->engine.data.context =
1071 e->engine.func->context_new(e->engine.data.output);
1072 eng_window_use(re->win);
1073
1074 re->vsync = 0;
1075 _sym_init();
1076 _extensions_init(re);
1077
1078 // This is used in extensions. Not pretty but can't get display otherwise.
1079 current_engine = re;
1080
1081 return 1;
1082}
1083
1084static void
1085eng_output_free(void *data)
1086{
1087 Render_Engine *re;
1088
1089 re = (Render_Engine *)data;
1090
1091 if (re)
1092 {
1093// NOTE: XrmGetDatabase() result is shared per connection, do not free it.
1094// if (re->xrdb) XrmDestroyDatabase(re->xrdb);
1095
1096#if 0
1097#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1098 // Destroy the resource surface
1099 // Only required for EGL case
1100 if (re->surface)
1101 eglDestroySurface(re->win->egl_disp, re->surface);
1102#endif
1103
1104 // Destroy the resource context
1105 _destroy_internal_context(re, context);
1106#endif
1107 if (re->win)
1108 {
1109 if ((initted == 1) && (gl_wins == 1))
1110 _destroy_internal_glue_resources(re);
1111 eng_window_free(re->win);
1112 gl_wins--;
1113 }
1114 evas_common_tilebuf_free(re->tb);
1115 free(re);
1116 }
1117 if ((initted == 1) && (gl_wins == 0))
1118 {
1119 evas_common_image_shutdown();
1120 evas_common_font_shutdown();
1121 initted = 0;
1122 }
1123}
1124
1125static void
1126eng_output_resize(void *data, int w, int h)
1127{
1128 Render_Engine *re;
1129
1130 re = (Render_Engine *)data;
1131 re->win->w = w;
1132 re->win->h = h;
1133 eng_window_use(re->win);
1134 evas_gl_common_context_resize(re->win->gl_context, w, h, re->win->rot);
1135 evas_common_tilebuf_free(re->tb);
1136 re->tb = evas_common_tilebuf_new(w, h);
1137 if (re->tb)
1138 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
1139}
1140
1141static void
1142eng_output_tile_size_set(void *data, int w, int h)
1143{
1144 Render_Engine *re;
1145
1146 re = (Render_Engine *)data;
1147 evas_common_tilebuf_set_tile_size(re->tb, w, h);
1148}
1149
1150static void
1151eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
1152{
1153 Render_Engine *re;
1154
1155 re = (Render_Engine *)data;
1156 eng_window_use(re->win);
1157 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot);
1158 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
1159
1160 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h);
1161 if ((w <= 0) || (h <= 0)) return;
1162 if (!re->win->draw.redraw)
1163 {
1164#if 1
1165 re->win->draw.x1 = x;
1166 re->win->draw.y1 = y;
1167 re->win->draw.x2 = x + w - 1;
1168 re->win->draw.y2 = y + h - 1;
1169#else
1170 re->win->draw.x1 = 0;
1171 re->win->draw.y1 = 0;
1172 re->win->draw.x2 = re->win->w - 1;
1173 re->win->draw.y2 = re->win->h - 1;
1174#endif
1175 }
1176 else
1177 {
1178 if (x < re->win->draw.x1) re->win->draw.x1 = x;
1179 if (y < re->win->draw.y1) re->win->draw.y1 = y;
1180 if ((x + w - 1) > re->win->draw.x2) re->win->draw.x2 = x + w - 1;
1181 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1;
1182 }
1183 re->win->draw.redraw = 1;
1184}
1185
1186static void
1187eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
1188{
1189 Render_Engine *re;
1190
1191 re = (Render_Engine *)data;
1192 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
1193}
1194
1195static void
1196eng_output_redraws_clear(void *data)
1197{
1198 Render_Engine *re;
1199
1200 re = (Render_Engine *)data;
1201 evas_common_tilebuf_clear(re->tb);
1202/* re->win->draw.redraw = 0;*/
1203// INF("GL: finish update cycle!");
1204}
1205
1206/* vsync games - not for now though */
1207#define VSYNC_TO_SCREEN 1
1208
1209static void *
1210eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
1211{
1212 Render_Engine *re;
1213 Tilebuf_Rect *rects;
1214
1215 re = (Render_Engine *)data;
1216 /* get the upate rect surface - return engine data as dummy */
1217 rects = evas_common_tilebuf_get_render_rects(re->tb);
1218 if (rects)
1219 {
1220/*
1221 Tilebuf_Rect *r;
1222
1223 printf("REAAAAACCTS\n");
1224 EINA_INLIST_FOREACH(EINA_INLIST_GET(rects), r)
1225 {
1226 printf(" %i %i %ix%i\n", r->x, r->y, r->w, r->h);
1227 }
1228 */
1229 evas_common_tilebuf_free_render_rects(rects);
1230 evas_common_tilebuf_clear(re->tb);
1231#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1232 // dont need to for egl - eng_window_use() can check for other ctxt's
1233#else
1234 eng_window_use(NULL);
1235#endif
1236 eng_window_use(re->win);
1237 if (!_re_wincheck(re)) return NULL;
1238 evas_gl_common_context_flush(re->win->gl_context);
1239 evas_gl_common_context_newframe(re->win->gl_context);
1240 if (x) *x = 0;
1241 if (y) *y = 0;
1242 if (w) *w = re->win->w;
1243 if (h) *h = re->win->h;
1244 if (cx) *cx = 0;
1245 if (cy) *cy = 0;
1246 if (cw) *cw = re->win->w;
1247 if (ch) *ch = re->win->h;
1248 return re->win->gl_context->def_surface;
1249 }
1250 return NULL;
1251/*
1252 if (!re->win->draw.redraw) return NULL;
1253#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1254 // dont need to for egl - eng_window_use() can check for other ctxt's
1255#else
1256 eng_window_use(NULL);
1257#endif
1258 eng_window_use(re->win);
1259 if (!_re_wincheck(re)) return NULL;
1260 evas_gl_common_context_flush(re->win->gl_context);
1261 evas_gl_common_context_newframe(re->win->gl_context);
1262 if (x) *x = re->win->draw.x1;
1263 if (y) *y = re->win->draw.y1;
1264 if (w) *w = re->win->draw.x2 - re->win->draw.x1 + 1;
1265 if (h) *h = re->win->draw.y2 - re->win->draw.y1 + 1;
1266 if (cx) *cx = re->win->draw.x1;
1267 if (cy) *cy = re->win->draw.y1;
1268 if (cw) *cw = re->win->draw.x2 - re->win->draw.x1 + 1;
1269 if (ch) *ch = re->win->draw.y2 - re->win->draw.y1 + 1;
1270 return re->win->gl_context->def_surface;
1271 */
1272}
1273
1274//#define FRAMECOUNT 1
1275
1276#ifdef FRAMECOUNT
1277static double
1278get_time(void)
1279{
1280 struct timeval timev;
1281
1282 gettimeofday(&timev, NULL);
1283 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
1284}
1285#endif
1286
1287static int safe_native = -1;
1288
1289static void
1290eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
1291{
1292 Render_Engine *re;
1293#ifdef FRAMECOUNT
1294 static double pt = 0.0;
1295 double ta, tb;
1296#endif
1297
1298 re = (Render_Engine *)data;
1299 /* put back update surface.. in this case just unflag redraw */
1300 if (!_re_wincheck(re)) return;
1301 re->win->draw.redraw = 0;
1302 re->win->draw.drew = 1;
1303 evas_gl_common_context_flush(re->win->gl_context);
1304 if (safe_native == -1)
1305 {
1306 const char *s = getenv("EVAS_GL_SAFE_NATIVE");
1307 safe_native = 0;
1308 if (s) safe_native = atoi(s);
1309 else
1310 {
1311 s = (const char *)glGetString(GL_RENDERER);
1312 if (s)
1313 {
1314 if (strstr(s, "PowerVR SGX 540") ||
1315 strstr(s, "Mali-400 MP"))
1316 safe_native = 1;
1317 }
1318 }
1319 }
1320#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1321 // this is needed to make sure all previous rendering is flushed to
1322 // buffers/surfaces
1323#ifdef FRAMECOUNT
1324 double t0 = get_time();
1325 ta = t0 - pt;
1326 pt = t0;
1327#endif
1328 // previous rendering should be done and swapped
1329 if (!safe_native) eglWaitNative(EGL_CORE_NATIVE_ENGINE);
1330#ifdef FRAMECOUNT
1331 double t1 = get_time();
1332 tb = t1 - t0;
1333 printf("... %1.5f -> %1.5f | ", ta, tb);
1334#endif
1335// if (eglGetError() != EGL_SUCCESS)
1336// {
1337// printf("Error: eglWaitNative(EGL_CORE_NATIVE_ENGINE) fail.\n");
1338// }
1339#else
1340 // previous rendering should be done and swapped
1341 if (!safe_native) glXWaitX();
1342#endif
1343//x// printf("frame -> push\n");
1344}
1345
1346static void
1347eng_output_flush(void *data)
1348{
1349 Render_Engine *re;
1350
1351 re = (Render_Engine *)data;
1352 if (!_re_wincheck(re)) return;
1353 if (!re->win->draw.drew) return;
1354//x// printf("frame -> flush\n");
1355 re->win->draw.drew = 0;
1356 eng_window_use(re->win);
1357
1358#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1359#ifdef FRAMECOUNT
1360 double t0 = get_time();
1361#endif
1362 if (!re->vsync)
1363 {
1364 if (re->info->vsync) eglSwapInterval(re->win->egl_disp, 1);
1365 else eglSwapInterval(re->win->egl_disp, 0);
1366 re->vsync = 1;
1367 }
1368 if (re->info->callback.pre_swap)
1369 {
1370 re->info->callback.pre_swap(re->info->callback.data, re->evas);
1371 }
1372 eglSwapBuffers(re->win->egl_disp, re->win->egl_surface[0]);
1373 if (!safe_native) eglWaitGL();
1374 if (re->info->callback.post_swap)
1375 {
1376 re->info->callback.post_swap(re->info->callback.data, re->evas);
1377 }
1378#ifdef FRAMECOUNT
1379 double t1 = get_time();
1380 printf("%1.5f\n", t1 - t0);
1381#endif
1382// if (eglGetError() != EGL_SUCCESS)
1383// {
1384// printf("Error: eglSwapBuffers() fail.\n");
1385// }
1386#else
1387#ifdef VSYNC_TO_SCREEN
1388 if ((re->info->vsync)/* || (1)*/)
1389 {
1390 if (glsym_glXSwapIntervalEXT)
1391 {
1392 if (!re->vsync)
1393 {
1394 if (re->info->vsync) glsym_glXSwapIntervalEXT(re->win->disp, re->win->win, 1);
1395 else glsym_glXSwapIntervalEXT(re->win->disp, re->win->win, 0);
1396 re->vsync = 1;
1397 }
1398 }
1399 if (glsym_glXSwapIntervalSGI)
1400 {
1401 if (!re->vsync)
1402 {
1403 if (re->info->vsync) glsym_glXSwapIntervalSGI(1);
1404 else glsym_glXSwapIntervalSGI(0);
1405 re->vsync = 1;
1406 }
1407 }
1408 else
1409 {
1410 if ((glsym_glXGetVideoSync) && (glsym_glXWaitVideoSync))
1411 {
1412 unsigned int rc;
1413
1414 glsym_glXGetVideoSync(&rc);
1415 glsym_glXWaitVideoSync(1, 0, &rc);
1416 }
1417 }
1418 }
1419# endif
1420 if (re->info->callback.pre_swap)
1421 {
1422 re->info->callback.pre_swap(re->info->callback.data, re->evas);
1423 }
1424#if 1
1425 if (1)
1426#else
1427 if ((re->win->draw.x1 == 0) && (re->win->draw.y1 == 0) && (re->win->draw.x2 == (re->win->w - 1)) && (re->win->draw.y2 == (re->win->h - 1)))
1428#endif
1429 {
1430// double t, t2 = 0.0;
1431// t = get_time();
1432 glXSwapBuffers(re->win->disp, re->win->win);
1433// t = get_time() - t;
1434// if (!safe_native)
1435// {
1436// t2 = get_time();
1437// glXWaitGL();
1438// t2 = get_time() - t2;
1439// }
1440// printf("swap: %3.5f (%3.5fms), x wait gl: %3.5f (%3.5fms)\n",
1441// t, t * 1000.0, t2, t2 * 1000.0);
1442 }
1443 else
1444 {
1445// FIXME: this doesn't work.. why oh why?
1446 int sx, sy, sw, sh;
1447
1448 sx = re->win->draw.x1;
1449 sy = re->win->draw.y1;
1450 sw = (re->win->draw.x2 - re->win->draw.x1) + 1;
1451 sh = (re->win->draw.y2 - re->win->draw.y1) + 1;
1452 sy = re->win->h - sy - sh;
1453
1454 glBitmap(0, 0, 0, 0, sx, re->win->h - sy, NULL);
1455 glEnable(GL_SCISSOR_TEST);
1456 glScissor(sx, sy, sw, sh);
1457 glDrawBuffer(GL_FRONT);
1458 glCopyPixels(sx, sy, sw, sh, GL_COLOR);
1459 glDrawBuffer(GL_BACK);
1460 glDisable(GL_SCISSOR_TEST);
1461 glBitmap(0, 0, 0, 0, 0, 0, NULL);
1462 glFlush();
1463 }
1464 if (re->info->callback.post_swap)
1465 {
1466 re->info->callback.post_swap(re->info->callback.data, re->evas);
1467 }
1468#endif
1469}
1470
1471static void
1472eng_output_idle_flush(void *data)
1473{
1474 Render_Engine *re;
1475
1476 re = (Render_Engine *)data;
1477}
1478
1479static void
1480eng_output_dump(void *data)
1481{
1482 Render_Engine *re;
1483
1484 re = (Render_Engine *)data;
1485 evas_common_image_image_all_unload();
1486 evas_common_font_font_all_unload();
1487 evas_gl_common_image_all_unload(re->win->gl_context);
1488 _re_winfree(re);
1489}
1490
1491static void
1492eng_context_cutout_add(void *data __UNUSED__, void *context, int x, int y, int w, int h)
1493{
1494// Render_Engine *re;
1495//
1496// re = (Render_Engine *)data;
1497// re->win->gl_context->dc = context;
1498 evas_common_draw_context_add_cutout(context, x, y, w, h);
1499}
1500
1501static void
1502eng_context_cutout_clear(void *data __UNUSED__, void *context)
1503{
1504// Render_Engine *re;
1505//
1506// re = (Render_Engine *)data;
1507// re->win->gl_context->dc = context;
1508 evas_common_draw_context_clear_cutouts(context);
1509}
1510
1511static void
1512eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
1513{
1514 Render_Engine *re;
1515
1516 re = (Render_Engine *)data;
1517 eng_window_use(re->win);
1518 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1519 re->win->gl_context->dc = context;
1520 evas_gl_common_rect_draw(re->win->gl_context, x, y, w, h);
1521}
1522
1523static void
1524eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
1525{
1526 Render_Engine *re;
1527
1528 re = (Render_Engine *)data;
1529 eng_window_use(re->win);
1530 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1531 re->win->gl_context->dc = context;
1532 evas_gl_common_line_draw(re->win->gl_context, x1, y1, x2, y2);
1533}
1534
1535static void *
1536eng_polygon_point_add(void *data, void *context __UNUSED__, void *polygon, int x, int y)
1537{
1538 Render_Engine *re;
1539
1540 re = (Render_Engine *)data;
1541 return evas_gl_common_poly_point_add(polygon, x, y);
1542}
1543
1544static void *
1545eng_polygon_points_clear(void *data, void *context __UNUSED__, void *polygon)
1546{
1547 Render_Engine *re;
1548
1549 re = (Render_Engine *)data;
1550 return evas_gl_common_poly_points_clear(polygon);
1551}
1552
1553static void
1554eng_polygon_draw(void *data, void *context, void *surface __UNUSED__, void *polygon, int x, int y)
1555{
1556 Render_Engine *re;
1557
1558 re = (Render_Engine *)data;
1559 eng_window_use(re->win);
1560 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1561 re->win->gl_context->dc = context;
1562 evas_gl_common_poly_draw(re->win->gl_context, polygon, x, y);
1563}
1564
1565static int
1566eng_image_alpha_get(void *data __UNUSED__, void *image)
1567{
1568// Render_Engine *re;
1569 Evas_GL_Image *im;
1570
1571// re = (Render_Engine *)data;
1572 if (!image) return 1;
1573 im = image;
1574 return im->alpha;
1575}
1576
1577static int
1578eng_image_colorspace_get(void *data __UNUSED__, void *image)
1579{
1580// Render_Engine *re;
1581 Evas_GL_Image *im;
1582
1583// re = (Render_Engine *)data;
1584 if (!image) return EVAS_COLORSPACE_ARGB8888;
1585 im = image;
1586 return im->cs.space;
1587}
1588
1589static void
1590eng_image_mask_create(void *data __UNUSED__, void *image)
1591{
1592 Evas_GL_Image *im;
1593
1594 if (!image) return;
1595 im = image;
1596 if (!im->im->image.data)
1597 evas_cache_image_load_data(&im->im->cache_entry);
1598 if (!im->tex)
1599 im->tex = evas_gl_common_texture_new(im->gc, im->im);
1600}
1601
1602
1603static void *
1604eng_image_alpha_set(void *data, void *image, int has_alpha)
1605{
1606 Render_Engine *re;
1607 Evas_GL_Image *im;
1608
1609 re = (Render_Engine *)data;
1610 if (!image) return NULL;
1611 im = image;
1612 if (im->alpha == has_alpha) return image;
1613 if (im->native.data)
1614 {
1615 im->alpha = has_alpha;
1616 return image;
1617 }
1618 eng_window_use(re->win);
1619 if ((im->tex) && (im->tex->pt->dyn.img))
1620 {
1621 im->alpha = has_alpha;
1622 im->tex->alpha = im->alpha;
1623 return image;
1624 }
1625 /* FIXME: can move to gl_common */
1626 if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return im;
1627 if ((has_alpha) && (im->im->cache_entry.flags.alpha)) return image;
1628 else if ((!has_alpha) && (!im->im->cache_entry.flags.alpha)) return image;
1629 if (im->references > 1)
1630 {
1631 Evas_GL_Image *im_new;
1632
1633 im_new = evas_gl_common_image_new_from_copied_data
1634 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
1635 im->im->image.data,
1636 eng_image_alpha_get(data, image),
1637 eng_image_colorspace_get(data, image));
1638 if (!im_new) return im;
1639 evas_gl_common_image_free(im);
1640 im = im_new;
1641 }
1642 else
1643 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1644 return evas_gl_common_image_alpha_set(im, has_alpha ? 1 : 0);
1645// im->im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
1646// return image;
1647}
1648
1649static void *
1650eng_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
1651{
1652// Render_Engine *re;
1653//
1654// re = (Render_Engine *)data;
1655 return image;
1656}
1657
1658static void
1659eng_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
1660{
1661// Render_Engine *re;
1662//
1663// re = (Render_Engine *)data;
1664}
1665
1666static char *
1667eng_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
1668{
1669// Render_Engine *re;
1670 Evas_GL_Image *im;
1671
1672// re = (Render_Engine *)data;
1673 if (!image) return NULL;
1674 im = image;
1675 if (!im->im) return NULL;
1676 return im->im->info.comment;
1677}
1678
1679static char *
1680eng_image_format_get(void *data __UNUSED__, void *image)
1681{
1682// Render_Engine *re;
1683 Evas_GL_Image *im;
1684
1685// re = (Render_Engine *)data;
1686 im = image;
1687 return NULL;
1688}
1689
1690static void
1691eng_image_colorspace_set(void *data, void *image, int cspace)
1692{
1693 Render_Engine *re;
1694 Evas_GL_Image *im;
1695
1696 re = (Render_Engine *)data;
1697 if (!image) return;
1698 im = image;
1699 if (im->native.data) return;
1700 /* FIXME: can move to gl_common */
1701 if (im->cs.space == cspace) return;
1702 eng_window_use(re->win);
1703 evas_cache_image_colorspace(&im->im->cache_entry, cspace);
1704 switch (cspace)
1705 {
1706 case EVAS_COLORSPACE_ARGB8888:
1707 if (im->cs.data)
1708 {
1709 if (!im->cs.no_free) free(im->cs.data);
1710 im->cs.data = NULL;
1711 im->cs.no_free = 0;
1712 }
1713 break;
1714 case EVAS_COLORSPACE_YCBCR422P601_PL:
1715 case EVAS_COLORSPACE_YCBCR422P709_PL:
1716 case EVAS_COLORSPACE_YCBCR422601_PL:
1717 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1718 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1719 if (im->tex) evas_gl_common_texture_free(im->tex);
1720 im->tex = NULL;
1721 if (im->cs.data)
1722 {
1723 if (!im->cs.no_free) free(im->cs.data);
1724 }
1725 if (im->im->cache_entry.h > 0)
1726 im->cs.data =
1727 calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
1728 else
1729 im->cs.data = NULL;
1730 im->cs.no_free = 0;
1731 break;
1732 default:
1733 abort();
1734 break;
1735 }
1736 im->cs.space = cspace;
1737}
1738
1739/////////////////////////////////////////////////////////////////////////
1740//
1741//
1742typedef struct _Native Native;
1743
1744struct _Native
1745{
1746 Evas_Native_Surface ns;
1747 Pixmap pixmap;
1748 Visual *visual;
1749
1750#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1751 void *egl_surface;
1752#else
1753 void *fbc;
1754 XID glx_pixmap;
1755#endif
1756};
1757
1758// FIXME: this is enabled so updates happen - but its SLOOOOOOOOOOOOOOOW
1759// (i am sure this is the reason) not to mention seemingly superfluous. but
1760// i need to enable it for it to work on fglrx at least. havent tried nvidia.
1761//
1762// why is this the case? does anyone know? has anyone tried it on other gfx
1763// drivers?
1764//
1765//#define GLX_TEX_PIXMAP_RECREATE 1
1766
1767static void
1768_native_bind_cb(void *data, void *image)
1769{
1770 Evas_GL_Image *im = image;
1771 Native *n = im->native.data;
1772
1773 if (n->ns.type == EVAS_NATIVE_SURFACE_X11)
1774 {
1775#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1776 if (n->egl_surface)
1777 {
1778 if (glsym_glEGLImageTargetTexture2DOES)
1779 {
1780 glsym_glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, n->egl_surface);
1781 if (eglGetError() != EGL_SUCCESS)
1782 ERR("glEGLImageTargetTexture2DOES() failed.");
1783 }
1784 else
1785 ERR("Try glEGLImageTargetTexture2DOES on EGL with no support");
1786 }
1787#else
1788# ifdef GLX_BIND_TO_TEXTURE_TARGETS_EXT
1789 Render_Engine *re = data;
1790
1791 if (glsym_glXBindTexImage)
1792 {
1793 glsym_glXBindTexImage(re->win->disp, n->glx_pixmap,
1794 GLX_FRONT_LEFT_EXT, NULL);
1795 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1796 }
1797 else
1798 ERR("Try glXBindTexImage on GLX with no support");
1799# endif
1800#endif
1801 }
1802 else if (n->ns.type == EVAS_NATIVE_SURFACE_OPENGL)
1803 {
1804 glBindTexture(GL_TEXTURE_2D, n->ns.data.opengl.texture_id);
1805 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1806 }
1807 return;
1808 data = NULL;
1809}
1810
1811static void
1812_native_unbind_cb(void *data, void *image)
1813{
1814 Evas_GL_Image *im = image;
1815 Native *n = im->native.data;
1816
1817 if (n->ns.type == EVAS_NATIVE_SURFACE_X11)
1818 {
1819#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1820 // nothing
1821#else
1822# ifdef GLX_BIND_TO_TEXTURE_TARGETS_EXT
1823 Render_Engine *re = data;
1824
1825 if (glsym_glXReleaseTexImage)
1826 {
1827 glsym_glXReleaseTexImage(re->win->disp, n->glx_pixmap,
1828 GLX_FRONT_LEFT_EXT);
1829 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1830 }
1831 else
1832 ERR("Try glXReleaseTexImage on GLX with no support");
1833# endif
1834#endif
1835 }
1836 else if (n->ns.type == EVAS_NATIVE_SURFACE_OPENGL)
1837 {
1838 glBindTexture(GL_TEXTURE_2D, 0);
1839 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1840 }
1841 return;
1842 data = NULL;
1843}
1844
1845static void
1846_native_free_cb(void *data, void *image)
1847{
1848 Render_Engine *re = data;
1849 Evas_GL_Image *im = image;
1850 Native *n = im->native.data;
1851 uint32_t pmid, texid;
1852
1853 if (n->ns.type == EVAS_NATIVE_SURFACE_X11)
1854 {
1855 pmid = n->pixmap;
1856 eina_hash_del(re->win->gl_context->shared->native_pm_hash, &pmid, im);
1857#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
1858 if (n->egl_surface)
1859 {
1860 if (glsym_eglDestroyImage)
1861 {
1862 glsym_eglDestroyImage(re->win->egl_disp,
1863 n->egl_surface);
1864 if (eglGetError() != EGL_SUCCESS)
1865 ERR("eglDestroyImage() failed.");
1866 }
1867 else
1868 ERR("Try eglDestroyImage on EGL with no support");
1869 }
1870#else
1871# ifdef GLX_BIND_TO_TEXTURE_TARGETS_EXT
1872 if (n->glx_pixmap)
1873 {
1874 if (im->native.loose)
1875 {
1876 if (glsym_glXReleaseTexImage)
1877 {
1878 glsym_glXReleaseTexImage(re->win->disp, n->glx_pixmap,
1879 GLX_FRONT_LEFT_EXT);
1880 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1881 }
1882 else
1883 ERR("Try glXReleaseTexImage on GLX with no support");
1884 }
1885 if (glsym_glXDestroyPixmap)
1886 {
1887 glsym_glXDestroyPixmap(re->win->disp, n->glx_pixmap);
1888 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1889 }
1890 else
1891 ERR("Try glXDestroyPixmap on GLX with no support");
1892 n->glx_pixmap = 0;
1893 }
1894# endif
1895#endif
1896 }
1897 else if (n->ns.type == EVAS_NATIVE_SURFACE_OPENGL)
1898 {
1899 texid = n->ns.data.opengl.texture_id;
1900 eina_hash_del(re->win->gl_context->shared->native_tex_hash, &texid, im);
1901 }
1902 im->native.data = NULL;
1903 im->native.func.data = NULL;
1904 im->native.func.bind = NULL;
1905 im->native.func.unbind = NULL;
1906 im->native.func.free = NULL;
1907 free(n);
1908}
1909
1910static void *
1911eng_image_native_set(void *data, void *image, void *native)
1912{
1913 Render_Engine *re = (Render_Engine *)data;
1914 Evas_Native_Surface *ns = native;
1915 Evas_GL_Image *im = image, *im2 = NULL;
1916 Visual *vis = NULL;
1917 Pixmap pm = 0;
1918 Native *n = NULL;
1919 uint32_t pmid, texid;
1920 unsigned int tex = 0;
1921 unsigned int fbo = 0;
1922
1923 if (!im)
1924 {
1925 if ((!ns) && (ns->type == EVAS_NATIVE_SURFACE_OPENGL))
1926 {
1927 im = evas_gl_common_image_new_from_data(re->win->gl_context,
1928 ns->data.opengl.w,
1929 ns->data.opengl.h,
1930 NULL, 1,
1931 EVAS_COLORSPACE_ARGB8888);
1932 }
1933 else
1934 return NULL;
1935 }
1936
1937 if (ns)
1938 {
1939 if (ns->type == EVAS_NATIVE_SURFACE_X11)
1940 {
1941 vis = ns->data.x11.visual;
1942 pm = ns->data.x11.pixmap;
1943 if (im->native.data)
1944 {
1945 Evas_Native_Surface *ens = im->native.data;
1946 if ((ens->data.x11.visual == vis) &&
1947 (ens->data.x11.pixmap == pm))
1948 return im;
1949 }
1950 }
1951 else if (ns->type == EVAS_NATIVE_SURFACE_OPENGL)
1952 {
1953 tex = ns->data.opengl.texture_id;
1954 fbo = ns->data.opengl.framebuffer_id;
1955 if (im->native.data)
1956 {
1957 Evas_Native_Surface *ens = im->native.data;
1958 if ((ens->data.opengl.texture_id == tex) &&
1959 (ens->data.opengl.framebuffer_id == fbo))
1960 return im;
1961 }
1962 }
1963 }
1964 if ((!ns) && (!im->native.data)) return im;
1965
1966 eng_window_use(re->win);
1967
1968 if (im->native.data)
1969 {
1970 if (im->native.func.free)
1971 im->native.func.free(im->native.func.data, im);
1972 evas_gl_common_image_native_disable(im);
1973 }
1974
1975 if (!ns) return im;
1976
1977 if (ns->type == EVAS_NATIVE_SURFACE_X11)
1978 {
1979 pmid = pm;
1980 im2 = eina_hash_find(re->win->gl_context->shared->native_pm_hash, &pmid);
1981 if (im2 == im) return im;
1982 if (im2)
1983 {
1984 n = im2->native.data;
1985 if (n)
1986 {
1987 evas_gl_common_image_ref(im2);
1988 evas_gl_common_image_free(im);
1989 return im2;
1990 }
1991 }
1992 }
1993 else if (ns->type == EVAS_NATIVE_SURFACE_OPENGL)
1994 {
1995 texid = tex;
1996 im2 = eina_hash_find(re->win->gl_context->shared->native_tex_hash, &texid);
1997 if (im2 == im) return im;
1998 if (im2)
1999 {
2000 n = im2->native.data;
2001 if (n)
2002 {
2003 evas_gl_common_image_ref(im2);
2004 evas_gl_common_image_free(im);
2005 return im2;
2006 }
2007 }
2008
2009 }
2010 im2 = evas_gl_common_image_new_from_data(re->win->gl_context,
2011 im->w, im->h, NULL, im->alpha,
2012 EVAS_COLORSPACE_ARGB8888);
2013 evas_gl_common_image_free(im);
2014 im = im2;
2015 if (ns->type == EVAS_NATIVE_SURFACE_X11)
2016 {
2017#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2018 if (native)
2019 {
2020 n = calloc(1, sizeof(Native));
2021 if (n)
2022 {
2023 EGLConfig egl_config;
2024 int config_attrs[20];
2025 int num_config, i = 0;
2026
2027 eina_hash_add(re->win->gl_context->shared->native_pm_hash, &pmid, im);
2028
2029 config_attrs[i++] = EGL_RED_SIZE;
2030 config_attrs[i++] = 8;
2031 config_attrs[i++] = EGL_GREEN_SIZE;
2032 config_attrs[i++] = 8;
2033 config_attrs[i++] = EGL_BLUE_SIZE;
2034 config_attrs[i++] = 8;
2035 config_attrs[i++] = EGL_ALPHA_SIZE;
2036 config_attrs[i++] = 8;
2037 config_attrs[i++] = EGL_DEPTH_SIZE;
2038 config_attrs[i++] = 0;
2039 config_attrs[i++] = EGL_STENCIL_SIZE;
2040 config_attrs[i++] = 0;
2041 config_attrs[i++] = EGL_RENDERABLE_TYPE;
2042 config_attrs[i++] = EGL_OPENGL_ES2_BIT;
2043 config_attrs[i++] = EGL_SURFACE_TYPE;
2044 config_attrs[i++] = EGL_PIXMAP_BIT;
2045 config_attrs[i++] = EGL_NONE;
2046
2047 if (!eglChooseConfig(re->win->egl_disp, config_attrs,
2048 &egl_config, 1, &num_config))
2049 ERR("eglChooseConfig() failed for pixmap 0x%x, num_config = %i", (unsigned int)pm, num_config);
2050 memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface));
2051 n->pixmap = pm;
2052 n->visual = vis;
2053 if (glsym_eglCreateImage)
2054 n->egl_surface = glsym_eglCreateImage(re->win->egl_disp,
2055 EGL_NO_CONTEXT,
2056 EGL_NATIVE_PIXMAP_KHR,
2057 (void *)pm,
2058 NULL);
2059 else
2060 ERR("Try eglCreateImage on EGL with no support");
2061 if (!n->egl_surface)
2062 ERR("eglCreatePixmapSurface() for 0x%x failed", (unsigned int)pm);
2063 im->native.yinvert = 1;
2064 im->native.loose = 0;
2065 im->native.data = n;
2066 im->native.func.data = re;
2067 im->native.func.bind = _native_bind_cb;
2068 im->native.func.unbind = _native_unbind_cb;
2069 im->native.func.free = _native_free_cb;
2070 im->native.target = GL_TEXTURE_2D;
2071 im->native.mipmap = 0;
2072 evas_gl_common_image_native_enable(im);
2073 }
2074 }
2075#else
2076# ifdef GLX_BIND_TO_TEXTURE_TARGETS_EXT
2077 if (native)
2078 {
2079 int dummy;
2080 unsigned int w, h, depth = 32, border;
2081 Window wdummy;
2082
2083 // fixme: round trip :(
2084 XGetGeometry(re->win->disp, pm, &wdummy, &dummy, &dummy,
2085 &w, &h, &border, &depth);
2086 n = calloc(1, sizeof(Native));
2087 if (n)
2088 {
2089 int pixmap_att[20];
2090 unsigned int target = 0;
2091 unsigned int i = 0;
2092
2093 eina_hash_add(re->win->gl_context->shared->native_pm_hash, &pmid, im);
2094 if ((re->win->depth_cfg[depth].tex_target &
2095 GLX_TEXTURE_2D_BIT_EXT)
2096 // && (1) // we assume npo2 for now
2097 // size is pow2 || mnpo2 supported
2098 )
2099 target = GLX_TEXTURE_2D_EXT;
2100 else if ((re->win->depth_cfg[depth].tex_target &
2101 GLX_TEXTURE_RECTANGLE_BIT_EXT))
2102 {
2103 ERR("rect!!! (not handled)");
2104 target = GLX_TEXTURE_RECTANGLE_EXT;
2105 }
2106 if (!target)
2107 {
2108 ERR("broken text-from-pixmap");
2109 if (!(re->win->depth_cfg[depth].tex_target &
2110 GLX_TEXTURE_2D_BIT_EXT))
2111 target = GLX_TEXTURE_RECTANGLE_EXT;
2112 else if (!(re->win->depth_cfg[depth].tex_target &
2113 GLX_TEXTURE_RECTANGLE_BIT_EXT))
2114 target = GLX_TEXTURE_2D_EXT;
2115 }
2116
2117
2118 pixmap_att[i++] = GLX_TEXTURE_FORMAT_EXT;
2119 pixmap_att[i++] = re->win->depth_cfg[depth].tex_format;
2120 pixmap_att[i++] = GLX_MIPMAP_TEXTURE_EXT;
2121 pixmap_att[i++] = re->win->depth_cfg[depth].mipmap;
2122
2123 if (target)
2124 {
2125 pixmap_att[i++] = GLX_TEXTURE_TARGET_EXT;
2126 pixmap_att[i++] = target;
2127 }
2128
2129 pixmap_att[i++] = 0;
2130
2131 memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface));
2132 n->pixmap = pm;
2133 n->visual = vis;
2134 n->fbc = re->win->depth_cfg[depth].fbc;
2135 if (glsym_glXCreatePixmap)
2136 n->glx_pixmap = glsym_glXCreatePixmap(re->win->disp,
2137 n->fbc,
2138 n->pixmap,
2139 pixmap_att);
2140 else
2141 ERR("Try glXCreatePixmap on GLX with no support");
2142 if (n->glx_pixmap)
2143 {
2144// printf("%p: new native texture for %x | %4i x %4i @ %2i = %p\n",
2145// n, pm, w, h, depth, n->glx_pixmap);
2146 if (!target)
2147 {
2148 ERR("no target :(");
2149 if (glsym_glXQueryDrawable)
2150 glsym_glXQueryDrawable(re->win->disp,
2151 n->pixmap,
2152 GLX_TEXTURE_TARGET_EXT,
2153 &target);
2154 }
2155 if (target == GLX_TEXTURE_2D_EXT)
2156 {
2157 im->native.target = GL_TEXTURE_2D;
2158 im->native.mipmap = re->win->depth_cfg[depth].mipmap;
2159 }
2160# ifdef GL_TEXTURE_RECTANGLE_ARB
2161 else if (target == GLX_TEXTURE_RECTANGLE_EXT)
2162 {
2163 im->native.target = GL_TEXTURE_RECTANGLE_ARB;
2164 im->native.mipmap = 0;
2165 }
2166# endif
2167 else
2168 {
2169 im->native.target = GL_TEXTURE_2D;
2170 im->native.mipmap = 0;
2171 ERR("still unknown target");
2172 }
2173 }
2174 else
2175 ERR("GLX Pixmap create fail");
2176 im->native.yinvert = re->win->depth_cfg[depth].yinvert;
2177 im->native.loose = re->win->detected.loose_binding;
2178 im->native.data = n;
2179 im->native.func.data = re;
2180 im->native.func.bind = _native_bind_cb;
2181 im->native.func.unbind = _native_unbind_cb;
2182 im->native.func.free = _native_free_cb;
2183
2184 evas_gl_common_image_native_enable(im);
2185 }
2186 }
2187# endif
2188#endif
2189 }
2190 else if (ns->type == EVAS_NATIVE_SURFACE_OPENGL)
2191 {
2192 if (native)
2193 {
2194 n = calloc(1, sizeof(Native));
2195 if (n)
2196 {
2197 memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface));
2198
2199 eina_hash_add(re->win->gl_context->shared->native_tex_hash, &texid, im);
2200
2201 n->pixmap = 0;
2202 n->visual = 0;
2203#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2204 n->egl_surface = 0;
2205#else
2206 n->fbc = 0;
2207 n->glx_pixmap = 0;
2208#endif
2209
2210 im->native.yinvert = 0;
2211 im->native.loose = 0;
2212 im->native.data = n;
2213 im->native.func.data = re;
2214 im->native.func.bind = _native_bind_cb;
2215 im->native.func.unbind = _native_unbind_cb;
2216 im->native.func.free = _native_free_cb;
2217 im->native.target = GL_TEXTURE_2D;
2218 im->native.mipmap = 0;
2219
2220 // FIXME: need to implement mapping sub texture regions
2221 // x, y, w, h for possible texture atlasing
2222
2223 evas_gl_common_image_native_enable(im);
2224 }
2225 }
2226
2227 }
2228 return im;
2229}
2230
2231static void *
2232eng_image_native_get(void *data __UNUSED__, void *image)
2233{
2234 Evas_GL_Image *im = image;
2235 Native *n;
2236 if (!im) return NULL;
2237 n = im->native.data;
2238 if (!n) return NULL;
2239 return &(n->ns);
2240}
2241
2242#if 0 // filtering disabled
2243static void
2244eng_image_draw_filtered(void *data, void *context, void *surface,
2245 void *image, Evas_Filter_Info *filter)
2246{
2247 Render_Engine *re = data;
2248
2249 if (!image) return;
2250 eng_window_use(re->win);
2251 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
2252 re->win->gl_context->dc = context;
2253
2254 evas_gl_common_filter_draw(re->win->gl_context, image, filter);
2255}
2256
2257static Filtered_Image *
2258eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
2259{
2260 return evas_gl_common_image_filtered_get(im, key, keylen);
2261}
2262
2263static Filtered_Image *
2264eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
2265{
2266 return evas_gl_common_image_filtered_save(im, fim, key, keylen);
2267}
2268
2269static void
2270eng_image_filtered_free(void *im, Filtered_Image *fim)
2271{
2272 evas_gl_common_image_filtered_free(im, fim);
2273}
2274#endif
2275
2276
2277//
2278//
2279/////////////////////////////////////////////////////////////////////////
2280
2281static void *
2282eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
2283{
2284 Render_Engine *re;
2285
2286 re = (Render_Engine *)data;
2287 *error = EVAS_LOAD_ERROR_NONE;
2288 eng_window_use(re->win);
2289 return evas_gl_common_image_load(re->win->gl_context, file, key, lo, error);
2290}
2291
2292static void *
2293eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
2294{
2295 Render_Engine *re;
2296
2297 re = (Render_Engine *)data;
2298 eng_window_use(re->win);
2299 return evas_gl_common_image_new_from_data(re->win->gl_context, w, h, image_data, alpha, cspace);
2300}
2301
2302static void *
2303eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
2304{
2305 Render_Engine *re;
2306
2307 re = (Render_Engine *)data;
2308 eng_window_use(re->win);
2309 return evas_gl_common_image_new_from_copied_data(re->win->gl_context, w, h, image_data, alpha, cspace);
2310}
2311
2312static void
2313eng_image_free(void *data, void *image)
2314{
2315 Render_Engine *re;
2316
2317 re = (Render_Engine *)data;
2318 if (!image) return;
2319 eng_window_use(re->win);
2320 evas_gl_common_image_free(image);
2321}
2322
2323static void
2324eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
2325{
2326 if (!image)
2327 {
2328 *w = 0;
2329 *h = 0;
2330 return;
2331 }
2332 if (w) *w = ((Evas_GL_Image *)image)->w;
2333 if (h) *h = ((Evas_GL_Image *)image)->h;
2334}
2335
2336static void *
2337eng_image_size_set(void *data, void *image, int w, int h)
2338{
2339 Render_Engine *re;
2340 Evas_GL_Image *im = image;
2341 Evas_GL_Image *im_old;
2342
2343 re = (Render_Engine *)data;
2344 if (!im) return NULL;
2345 if (im->native.data)
2346 {
2347 im->w = w;
2348 im->h = h;
2349 return image;
2350 }
2351 eng_window_use(re->win);
2352 if ((im->tex) && (im->tex->pt->dyn.img))
2353 {
2354 evas_gl_common_texture_free(im->tex);
2355 im->tex = NULL;
2356 im->w = w;
2357 im->h = h;
2358 im->tex = evas_gl_common_texture_dynamic_new(im->gc, im);
2359 return image;
2360 }
2361 im_old = image;
2362
2363 switch (eng_image_colorspace_get(data, image))
2364 {
2365 case EVAS_COLORSPACE_YCBCR422P601_PL:
2366 case EVAS_COLORSPACE_YCBCR422P709_PL:
2367 case EVAS_COLORSPACE_YCBCR422601_PL:
2368 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
2369 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
2370 w &= ~0x1;
2371 break;
2372 }
2373
2374 if ((im_old) &&
2375 ((int)im_old->im->cache_entry.w == w) &&
2376 ((int)im_old->im->cache_entry.h == h))
2377 return image;
2378 if (im_old)
2379 {
2380 im = evas_gl_common_image_new(re->win->gl_context, w, h,
2381 eng_image_alpha_get(data, image),
2382 eng_image_colorspace_get(data, image));
2383 /*
2384 evas_common_load_image_data_from_file(im_old->im);
2385 if (im_old->im->image->data)
2386 {
2387 evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0);
2388 evas_common_cpu_end_opt();
2389 }
2390 */
2391 evas_gl_common_image_free(im_old);
2392 }
2393 else
2394 im = evas_gl_common_image_new(re->win->gl_context, w, h, 1, EVAS_COLORSPACE_ARGB8888);
2395 return im;
2396}
2397
2398static void *
2399eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h)
2400{
2401 Render_Engine *re;
2402 Evas_GL_Image *im = image;
2403
2404 re = (Render_Engine *)data;
2405 if (!image) return NULL;
2406 if (im->native.data) return image;
2407 eng_window_use(re->win);
2408 evas_gl_common_image_dirty(image, x, y, w, h);
2409 return image;
2410}
2411
2412static void *
2413eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, int *err)
2414{
2415 Render_Engine *re;
2416 Evas_GL_Image *im;
2417 int error;
2418
2419 re = (Render_Engine *)data;
2420 if (!image)
2421 {
2422 *image_data = NULL;
2423 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
2424 return NULL;
2425 }
2426 im = image;
2427 if (im->native.data)
2428 {
2429 *image_data = NULL;
2430 if (err) *err = EVAS_LOAD_ERROR_NONE;
2431 return im;
2432 }
2433
2434#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2435 eng_window_use(re->win);
2436
2437 if ((im->tex) && (im->tex->pt) && (im->tex->pt->dyn.img) && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
2438 {
2439 if (im->tex->pt->dyn.checked_out > 0)
2440 {
2441 im->tex->pt->dyn.checked_out++;
2442 *image_data = im->tex->pt->dyn.data;
2443 if (err) *err = EVAS_LOAD_ERROR_NONE;
2444 return im;
2445 }
2446 *image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
2447
2448 if (!im->tex->pt->dyn.data)
2449 {
2450 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
2451 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
2452 return im;
2453 }
2454 im->tex->pt->dyn.checked_out++;
2455
2456 if (err) *err = EVAS_LOAD_ERROR_NONE;
2457 return im;
2458 }
2459#else
2460 if ((im->tex) && (im->tex->pt) && (im->tex->pt->dyn.data))
2461 {
2462 *image_data = im->tex->pt->dyn.data;
2463 if (err) *err = EVAS_LOAD_ERROR_NONE;
2464 return im;
2465 }
2466
2467 eng_window_use(re->win);
2468#endif
2469
2470 /* Engine can be fail to create texture after cache drop like eng_image_content_hint_set function,
2471 so it is need to add code which check im->im's NULL value*/
2472
2473 if (!im->im)
2474 {
2475 *image_data = NULL;
2476 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
2477 return NULL;
2478 }
2479
2480 error = evas_cache_image_load_data(&im->im->cache_entry);
2481 switch (im->cs.space)
2482 {
2483 case EVAS_COLORSPACE_ARGB8888:
2484 if (to_write)
2485 {
2486 if (im->references > 1)
2487 {
2488 Evas_GL_Image *im_new;
2489
2490 im_new = evas_gl_common_image_new_from_copied_data
2491 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
2492 im->im->image.data,
2493 eng_image_alpha_get(data, image),
2494 eng_image_colorspace_get(data, image));
2495 if (!im_new)
2496 {
2497 *image_data = NULL;
2498 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
2499 return NULL;
2500 }
2501 evas_gl_common_image_free(im);
2502 im = im_new;
2503 }
2504 else
2505 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
2506 }
2507 *image_data = im->im->image.data;
2508 break;
2509 case EVAS_COLORSPACE_YCBCR422P601_PL:
2510 case EVAS_COLORSPACE_YCBCR422P709_PL:
2511 case EVAS_COLORSPACE_YCBCR422601_PL:
2512 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
2513 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
2514 *image_data = im->cs.data;
2515 break;
2516 default:
2517 abort();
2518 break;
2519 }
2520 if (err) *err = error;
2521 return im;
2522}
2523
2524static void *
2525eng_image_data_put(void *data, void *image, DATA32 *image_data)
2526{
2527 Render_Engine *re;
2528 Evas_GL_Image *im, *im2;
2529
2530 re = (Render_Engine *)data;
2531 if (!image) return NULL;
2532 im = image;
2533 if (im->native.data) return image;
2534 eng_window_use(re->win);
2535 if ((im->tex) && (im->tex->pt)
2536 && (im->tex->pt->dyn.data)
2537 && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
2538 {
2539 int w, h;
2540
2541 if (im->tex->pt->dyn.data == image_data)
2542 {
2543 if (im->tex->pt->dyn.checked_out > 0)
2544 {
2545 im->tex->pt->dyn.checked_out--;
2546#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2547 if (im->tex->pt->dyn.checked_out == 0)
2548 glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
2549#endif
2550 }
2551
2552 return image;
2553 }
2554
2555 w = im->im->cache_entry.w;
2556 h = im->im->cache_entry.h;
2557 im2 = eng_image_new_from_data(data, w, h, image_data,
2558 eng_image_alpha_get(data, image),
2559 eng_image_colorspace_get(data, image));
2560 if (!im2) return im;
2561 evas_gl_common_image_free(im);
2562 im = im2;
2563 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
2564 return im;
2565 }
2566 switch (im->cs.space)
2567 {
2568 case EVAS_COLORSPACE_ARGB8888:
2569 if (image_data != im->im->image.data)
2570 {
2571 int w, h;
2572
2573 w = im->im->cache_entry.w;
2574 h = im->im->cache_entry.h;
2575 im2 = eng_image_new_from_data(data, w, h, image_data,
2576 eng_image_alpha_get(data, image),
2577 eng_image_colorspace_get(data, image));
2578 if (!im2) return im;
2579 evas_gl_common_image_free(im);
2580 im = im2;
2581 }
2582 break;
2583 case EVAS_COLORSPACE_YCBCR422P601_PL:
2584 case EVAS_COLORSPACE_YCBCR422P709_PL:
2585 case EVAS_COLORSPACE_YCBCR422601_PL:
2586 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
2587 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
2588 if (image_data != im->cs.data)
2589 {
2590 if (im->cs.data)
2591 {
2592 if (!im->cs.no_free) free(im->cs.data);
2593 }
2594 im->cs.data = image_data;
2595 }
2596 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
2597 break;
2598 default:
2599 abort();
2600 break;
2601 }
2602 return im;
2603}
2604
2605static void
2606eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
2607{
2608 Evas_GL_Image *gim = image;
2609 RGBA_Image *im;
2610
2611 if (!gim) return;
2612 if (gim->native.data) return;
2613 im = (RGBA_Image *)gim->im;
2614 if (!im) return;
2615 evas_cache_image_preload_data(&im->cache_entry, target);
2616}
2617
2618static void
2619eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
2620{
2621 Evas_GL_Image *gim = image;
2622 RGBA_Image *im;
2623
2624 if (!gim) return;
2625 if (gim->native.data) return;
2626 im = (RGBA_Image *)gim->im;
2627 if (!im) return;
2628 evas_cache_image_preload_cancel(&im->cache_entry, target);
2629}
2630
2631static void
2632eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
2633{
2634 Render_Engine *re;
2635
2636 re = (Render_Engine *)data;
2637 if (!image) return;
2638
2639 if ((gl_direct_img_obj) && (gl_direct_enabled))
2640 {
2641 DBG("Rendering Directly to the window");
2642 evas_object_image_pixels_dirty_set(gl_direct_img_obj, EINA_TRUE);
2643 }
2644 else
2645 {
2646 eng_window_use(re->win);
2647 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
2648 re->win->gl_context->dc = context;
2649 evas_gl_common_image_draw(re->win->gl_context, image,
2650 src_x, src_y, src_w, src_h,
2651 dst_x, dst_y, dst_w, dst_h,
2652 smooth);
2653 }
2654}
2655
2656static void
2657eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
2658{
2659 if (image) evas_gl_common_image_scale_hint_set(image, hint);
2660}
2661
2662static int
2663eng_image_scale_hint_get(void *data __UNUSED__, void *image)
2664{
2665 Evas_GL_Image *gim = image;
2666 if (!gim) return EVAS_IMAGE_SCALE_HINT_NONE;
2667 return gim->scale_hint;
2668}
2669
2670static void
2671eng_image_map_draw(void *data, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
2672{
2673 Evas_GL_Image *gim = image;
2674 Render_Engine *re;
2675
2676 re = (Render_Engine *)data;
2677 if (!image) return;
2678 eng_window_use(re->win);
2679 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
2680 re->win->gl_context->dc = context;
2681 if (npoints != 4)
2682 {
2683 // FIXME: nash - you didn't fix this
2684 abort();
2685 }
2686 if ((p[0].x == p[3].x) &&
2687 (p[1].x == p[2].x) &&
2688 (p[0].y == p[1].y) &&
2689 (p[3].y == p[2].y) &&
2690 (p[0].x <= p[1].x) &&
2691 (p[0].y <= p[2].y) &&
2692 (p[0].u == 0) &&
2693 (p[0].v == 0) &&
2694 (p[1].u == (gim->w << FP)) &&
2695 (p[1].v == 0) &&
2696 (p[2].u == (gim->w << FP)) &&
2697 (p[2].v == (gim->h << FP)) &&
2698 (p[3].u == 0) &&
2699 (p[3].v == (gim->h << FP)) &&
2700 (p[0].col == 0xffffffff) &&
2701 (p[1].col == 0xffffffff) &&
2702 (p[2].col == 0xffffffff) &&
2703 (p[3].col == 0xffffffff))
2704 {
2705 int dx, dy, dw, dh;
2706
2707 dx = p[0].x >> FP;
2708 dy = p[0].y >> FP;
2709 dw = (p[2].x >> FP) - dx;
2710 dh = (p[2].y >> FP) - dy;
2711 eng_image_draw(data, context, surface, image,
2712 0, 0, gim->w, gim->h, dx, dy, dw, dh, smooth);
2713 }
2714 else
2715 {
2716 evas_gl_common_image_map_draw(re->win->gl_context, image, npoints, p,
2717 smooth, level);
2718 }
2719}
2720
2721static void *
2722eng_image_map_surface_new(void *data, int w, int h, int alpha)
2723{
2724 Render_Engine *re;
2725
2726 re = (Render_Engine *)data;
2727 return evas_gl_common_image_surface_new(re->win->gl_context, w, h, alpha);
2728}
2729
2730static void
2731eng_image_map_surface_free(void *data __UNUSED__, void *surface)
2732{
2733 evas_gl_common_image_free(surface);
2734}
2735
2736static void
2737eng_image_content_hint_set(void *data __UNUSED__, void *image, int hint)
2738{
2739 if (image) evas_gl_common_image_content_hint_set(image, hint);
2740}
2741
2742static int
2743eng_image_content_hint_get(void *data __UNUSED__, void *image)
2744{
2745 Evas_GL_Image *gim = image;
2746 if (!gim) return EVAS_IMAGE_CONTENT_HINT_NONE;
2747 return gim->content_hint;
2748}
2749
2750static void
2751eng_image_cache_flush(void *data)
2752{
2753 Render_Engine *re;
2754 int tmp_size;
2755
2756 re = (Render_Engine *)data;
2757
2758 tmp_size = evas_common_image_get_cache();
2759 evas_common_image_set_cache(0);
2760 evas_common_rgba_image_scalecache_flush();
2761 evas_gl_common_image_cache_flush(re->win->gl_context);
2762 evas_common_image_set_cache(tmp_size);
2763}
2764
2765static void
2766eng_image_cache_set(void *data, int bytes)
2767{
2768 Render_Engine *re;
2769
2770 re = (Render_Engine *)data;
2771 evas_common_image_set_cache(bytes);
2772 evas_common_rgba_image_scalecache_size_set(bytes);
2773 evas_gl_common_image_cache_flush(re->win->gl_context);
2774}
2775
2776static int
2777eng_image_cache_get(void *data __UNUSED__)
2778{
2779 return evas_common_image_get_cache();
2780}
2781
2782static void
2783eng_image_stride_get(void *data __UNUSED__, void *image, int *stride)
2784{
2785 Evas_GL_Image *im = image;
2786
2787 if ((im->tex) && (im->tex->pt->dyn.img))
2788 *stride = im->tex->pt->dyn.stride;
2789 else
2790 *stride = im->w * 4;
2791}
2792
2793static void
2794eng_font_draw(void *data, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
2795{
2796 Render_Engine *re;
2797
2798 re = (Render_Engine *)data;
2799 eng_window_use(re->win);
2800 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
2801 re->win->gl_context->dc = context;
2802 {
2803 // FIXME: put im into context so we can free it
2804 static RGBA_Image *im = NULL;
2805
2806 if (!im)
2807 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
2808 im->cache_entry.w = re->win->w;
2809 im->cache_entry.h = re->win->h;
2810 evas_common_draw_context_font_ext_set(context,
2811 re->win->gl_context,
2812 evas_gl_font_texture_new,
2813 evas_gl_font_texture_free,
2814 evas_gl_font_texture_draw);
2815 evas_common_font_draw(im, context, (RGBA_Font *) font, x, y,
2816 intl_props);
2817 evas_common_draw_context_font_ext_set(context,
2818 NULL,
2819 NULL,
2820 NULL,
2821 NULL);
2822 }
2823}
2824
2825static Eina_Bool
2826eng_canvas_alpha_get(void *data, void *info __UNUSED__)
2827{
2828 Render_Engine *re = (Render_Engine *)data;
2829 return re->win->alpha;
2830}
2831
2832static int
2833_set_internal_config(Render_Engine_GL_Surface *sfc, Evas_GL_Config *cfg)
2834{
2835 // Also initialize pixel format here as well...
2836 switch((int)cfg->color_format)
2837 {
2838 case EVAS_GL_RGB_888:
2839 sfc->rt_fmt = GL_RGB;
2840 sfc->rt_internal_fmt = GL_RGB;
2841 break;
2842 case EVAS_GL_RGBA_8888:
2843 sfc->rt_fmt = GL_RGBA;
2844 sfc->rt_internal_fmt = GL_RGBA;
2845 break;
2846 default:
2847 ERR("Invalid Color Format!");
2848 return 0;
2849 }
2850
2851 switch(cfg->depth_bits)
2852 {
2853 case EVAS_GL_DEPTH_NONE:
2854 break;
2855 case EVAS_GL_DEPTH_BIT_8:
2856 case EVAS_GL_DEPTH_BIT_16:
2857 case EVAS_GL_DEPTH_BIT_24:
2858#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2859 // 24 bit doesn't work... just cover it with 16 for now..
2860 sfc->rb_depth_fmt = GL_DEPTH_COMPONENT16;
2861#else
2862 sfc->rb_depth_fmt = GL_DEPTH_COMPONENT;
2863#endif
2864 break;
2865 case EVAS_GL_DEPTH_BIT_32:
2866 default:
2867 ERR("Unsupported Depth Bits Format!");
2868 return 0;
2869 }
2870
2871 switch(cfg->stencil_bits)
2872 {
2873 case EVAS_GL_STENCIL_NONE:
2874 break;
2875 case EVAS_GL_STENCIL_BIT_1:
2876 case EVAS_GL_STENCIL_BIT_2:
2877 case EVAS_GL_STENCIL_BIT_4:
2878 case EVAS_GL_STENCIL_BIT_8:
2879#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2880 sfc->rb_stencil_fmt = GL_STENCIL_INDEX8;
2881#else
2882 sfc->rb_stencil_fmt = GL_STENCIL_INDEX;
2883#endif
2884 break;
2885 case EVAS_GL_STENCIL_BIT_16:
2886 default:
2887 ERR("Unsupported Stencil Bits Format!");
2888 return 0;
2889 }
2890
2891 if (cfg->options_bits)
2892 {
2893 if (cfg->options_bits & EVAS_GL_OPTIONS_DIRECT)
2894 sfc->direct_fb_opt = 1;
2895 // Add other options here...
2896 }
2897
2898 return 1;
2899}
2900
2901static int
2902_create_rt_buffers(Render_Engine *data __UNUSED__,
2903 Render_Engine_GL_Surface *sfc)
2904{
2905 // Render Target texture
2906 glGenTextures(1, &sfc->rt_tex );
2907
2908 // Depth RenderBuffer - Create storage here...
2909 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2910 glGenRenderbuffers(1, &sfc->rb_depth);
2911
2912 // Stencil RenderBuffer - Create Storage here...
2913 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2914 glGenRenderbuffers(1, &sfc->rb_stencil);
2915
2916 return 1;
2917}
2918
2919static int
2920_attach_fbo_surface(Render_Engine *data __UNUSED__,
2921 Render_Engine_GL_Surface *sfc,
2922 Render_Engine_GL_Context *ctx)
2923{
2924 int fb_status;
2925
2926 // Initialize Texture
2927 glBindTexture(GL_TEXTURE_2D, sfc->rt_tex );
2928 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
2929 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
2930 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
2931 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
2932 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, sfc->w, sfc->h, 0,
2933 GL_RGBA, GL_UNSIGNED_BYTE, NULL);
2934 glBindTexture(GL_TEXTURE_2D, 0);
2935
2936
2937 // Attach texture to FBO
2938 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
2939 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
2940 GL_TEXTURE_2D, sfc->rt_tex, 0);
2941
2942 // Depth RenderBuffer - Attach it to FBO
2943 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2944 {
2945 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_depth);
2946 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_depth_fmt,
2947 sfc->w, sfc->h);
2948 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
2949 GL_RENDERBUFFER, sfc->rb_depth);
2950 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2951 }
2952
2953 // Stencil RenderBuffer - Attach it to FBO
2954 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2955 {
2956 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_stencil);
2957 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_stencil_fmt,
2958 sfc->w, sfc->h);
2959 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
2960 GL_RENDERBUFFER, sfc->rb_stencil);
2961 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2962 }
2963
2964 // Check FBO for completeness
2965 fb_status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
2966 if (fb_status != GL_FRAMEBUFFER_COMPLETE)
2967 {
2968 ERR("FBO not complete!");
2969 return 0;
2970 }
2971
2972 return 1;
2973}
2974
2975
2976static void *
2977eng_gl_surface_create(void *data, void *config, int w, int h)
2978{
2979 Render_Engine *re;
2980 Render_Engine_GL_Surface *sfc;
2981 Render_Engine_GL_Resource *rsc;
2982 Evas_GL_Config *cfg;
2983 int ret;
2984
2985 sfc = calloc(1, sizeof(Render_Engine_GL_Surface));
2986 if (!sfc) return NULL;
2987
2988 re = (Render_Engine *)data;
2989 cfg = (Evas_GL_Config *)config;
2990
2991 sfc->initialized = 0;
2992 sfc->fbo_attached = 0;
2993 sfc->w = w;
2994 sfc->h = h;
2995 sfc->depth_bits = cfg->depth_bits;
2996 sfc->stencil_bits = cfg->stencil_bits;
2997 sfc->rt_tex = 0;
2998 sfc->rb_depth = 0;
2999 sfc->rb_stencil = 0;
3000
3001 /* Allow alpha for evas gl direct rendering */
3002 // FIXME!!!: A little out of place for for now...
3003 if (!gl_direct_override)
3004 if (getenv("EVAS_GL_DIRECT_OVERRIDE")) gl_direct_override = 1;
3005
3006 // Set the internal format based on the config
3007 if (!_set_internal_config(sfc, cfg))
3008 {
3009 ERR("Unsupported Format!");
3010 free(sfc);
3011 return NULL;
3012 }
3013
3014 if (sfc->direct_fb_opt)
3015 {
3016 DBG("Enabling Direct rendering to the Evas' window.");
3017#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3018 sfc->direct_sfc = re->win->egl_surface[0];
3019#else
3020 sfc->direct_sfc = re->win->win;
3021#endif
3022 }
3023
3024 // Create internal resource context if it hasn't been created already
3025 if ((rsc = eina_tls_get(resource_key)) == NULL)
3026 {
3027 if ((rsc = _create_internal_glue_resources(re)) == NULL)
3028 {
3029 ERR("Error creating internal resources.");
3030 free(sfc);
3031 return NULL;
3032 }
3033 }
3034
3035 // I'm using evas's original context to create the render target texture
3036 // This is to prevent awkwardness in using native_surface_get() function
3037 // If the rt texture creation is deferred till the context is created and
3038 // make_current called, the user can't call native_surface_get() right
3039 // after the surface is created. hence this is done here using evas' context.
3040#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3041 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
3042#else
3043 ret = glXMakeCurrent(re->info->info.display, re->win->win, rsc->context);
3044#endif
3045 if (!ret)
3046 {
3047 ERR("xxxMakeCurrent() failed!");
3048 free(sfc);
3049 return NULL;
3050 }
3051
3052 // Create Render texture
3053 if (!_create_rt_buffers(re, sfc))
3054 {
3055 ERR("_create_rt_buffers() failed.");
3056 free(sfc);
3057 return NULL;
3058 }
3059
3060#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3061 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
3062#else
3063 ret = glXMakeCurrent(re->info->info.display, None, NULL);
3064#endif
3065 if (!ret)
3066 {
3067 ERR("xxxMakeCurrent() failed!");
3068 free(sfc);
3069 return NULL;
3070 }
3071
3072 return sfc;
3073}
3074
3075static int
3076eng_gl_surface_destroy(void *data, void *surface)
3077{
3078 Render_Engine *re;
3079 Render_Engine_GL_Surface *sfc;
3080 Render_Engine_GL_Resource *rsc;
3081 int ret;
3082
3083 re = (Render_Engine *)data;
3084 sfc = (Render_Engine_GL_Surface*)surface;
3085
3086 if (!sfc) return 0;
3087
3088 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
3089
3090#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3091 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
3092#else
3093 ret = glXMakeCurrent(re->info->info.display, re->win->win, rsc->context);
3094#endif
3095 if (!ret)
3096 {
3097 ERR("xxxMakeCurrent() failed!");
3098 return 0;
3099 }
3100
3101 // Reset the Framebuffer binding point
3102 if ((current_evgl_ctx) && (current_evgl_ctx->current_fbo == current_evgl_ctx->context_fbo))
3103 {
3104 //glBindFramebuffer(GL_FRAMEBUFFER, 0);
3105 current_evgl_ctx->current_fbo = 0;
3106 current_evgl_ctx->current_sfc = NULL;
3107 }
3108
3109 // Clear direct rendering flag
3110 gl_direct_enabled = 0;
3111
3112 // Delete FBO/RBO and Texture here
3113 if (sfc->rt_tex)
3114 glDeleteTextures(1, &sfc->rt_tex);
3115
3116 if (sfc->rb_depth)
3117 glDeleteRenderbuffers(1, &sfc->rb_depth);
3118
3119 if (sfc->rb_stencil)
3120 glDeleteRenderbuffers(1, &sfc->rb_stencil);
3121
3122
3123
3124#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3125 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
3126#else
3127 ret = glXMakeCurrent(re->info->info.display, None, NULL);
3128#endif
3129 if (!ret)
3130 {
3131 ERR("xxxMakeCurrent() failed!");
3132 free(sfc);
3133 return 0;
3134 }
3135
3136 free(sfc);
3137 surface = NULL;
3138
3139 return 1;
3140}
3141
3142static void *
3143eng_gl_context_create(void *data, void *share_context)
3144{
3145 Render_Engine *re;
3146 Render_Engine_GL_Context *ctx;
3147 Render_Engine_GL_Context *share_ctx;
3148#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3149 int context_attrs[3];
3150#endif
3151
3152 ctx = calloc(1, sizeof(Render_Engine_GL_Context));
3153
3154 if (!ctx) return NULL;
3155
3156 re = (Render_Engine *)data;
3157 share_ctx = (Render_Engine_GL_Context *)share_context;
3158
3159 // Set the share context to Evas' GL context if share_context is NULL.
3160 // Otherwise set it to the given share_context.
3161#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3162 // EGL
3163 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
3164 context_attrs[1] = 2;
3165 context_attrs[2] = EGL_NONE;
3166
3167 if (share_ctx)
3168 {
3169 ctx->context = eglCreateContext(re->win->egl_disp,
3170 re->win->egl_config,
3171 share_ctx->context, // Share Context
3172 context_attrs);
3173 }
3174 else
3175 {
3176 ctx->context = eglCreateContext(re->win->egl_disp,
3177 re->win->egl_config,
3178 re->win->egl_context[0], // Evas' GL Context
3179 context_attrs);
3180 }
3181
3182 if (!ctx->context)
3183 {
3184 ERR("eglCreateContext() fail. code=%#x", eglGetError());
3185 return NULL;
3186 }
3187#else
3188 // GLX
3189 if (share_context)
3190 {
3191 ctx->context = glXCreateContext(re->info->info.display,
3192 re->win->visualinfo,
3193 share_ctx->context, // Share Context
3194 1);
3195 }
3196 else
3197 {
3198 ctx->context = glXCreateContext(re->info->info.display,
3199 re->win->visualinfo,
3200 re->win->context, // Evas' GL Context
3201 1);
3202 }
3203
3204 if (!ctx->context)
3205 {
3206 ERR("glXCreateContext() fail.");
3207 return NULL;
3208 }
3209#endif
3210
3211 ctx->initialized = 0;
3212 ctx->context_fbo = 0;
3213 ctx->current_sfc = NULL;
3214
3215 return ctx;
3216}
3217
3218static int
3219eng_gl_context_destroy(void *data, void *context)
3220{
3221 Render_Engine *re;
3222 Render_Engine_GL_Context *ctx;
3223 Render_Engine_GL_Resource *rsc;
3224 int ret;
3225
3226 re = (Render_Engine *)data;
3227 ctx = (Render_Engine_GL_Context*)context;
3228
3229 if (!ctx) return 0;
3230
3231 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
3232
3233 // Do a make current with the given context
3234#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3235 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
3236 rsc->surface, ctx->context);
3237#else
3238 ret = glXMakeCurrent(re->info->info.display, re->win->win,
3239 ctx->context);
3240#endif
3241 if (!ret)
3242 {
3243 ERR("xxxMakeCurrent() failed!");
3244 return 0;
3245 }
3246
3247 // Delete the FBO
3248 if (ctx->context_fbo)
3249 glDeleteFramebuffers(1, &ctx->context_fbo);
3250
3251 // Destroy the Context
3252#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3253 eglDestroyContext(re->win->egl_disp, ctx->context);
3254
3255 ctx->context = EGL_NO_CONTEXT;
3256
3257 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
3258 EGL_NO_SURFACE, EGL_NO_CONTEXT);
3259#else
3260 glXDestroyContext(re->info->info.display, ctx->context);
3261
3262 ctx->context = 0;
3263
3264 ret = glXMakeCurrent(re->info->info.display, None, NULL);
3265#endif
3266 if (!ret)
3267 {
3268 ERR("xxxMakeCurrent() failed!");
3269 return 0;
3270 }
3271
3272 free(ctx);
3273 context = NULL;
3274
3275 return 1;
3276}
3277
3278static int
3279eng_gl_make_current(void *data __UNUSED__, void *surface, void *context)
3280{
3281 Render_Engine *re;
3282 Render_Engine_GL_Surface *sfc;
3283 Render_Engine_GL_Context *ctx;
3284 int ret = 0;
3285#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3286 Render_Engine_GL_Resource *rsc;
3287#endif
3288
3289 re = (Render_Engine *)data;
3290 sfc = (Render_Engine_GL_Surface*)surface;
3291 ctx = (Render_Engine_GL_Context*)context;
3292
3293 // Unset surface/context
3294 if ((!sfc) || (!ctx))
3295 {
3296#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3297 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
3298 EGL_NO_SURFACE, EGL_NO_CONTEXT);
3299#else
3300 ret = glXMakeCurrent(re->info->info.display, None, NULL);
3301#endif
3302 if (!ret)
3303 {
3304 ERR("xxxMakeCurrent() failed!");
3305 return 0;
3306 }
3307
3308 if (ctx) ctx->current_sfc = NULL;
3309 if (sfc) sfc->current_ctx = NULL;
3310 current_evgl_ctx = NULL;
3311 return 1;
3312 }
3313
3314 // Check if direct rendering is possible:
3315 // It's possible when direct_fb_opt is on and either current image
3316 // object is valid or gl_direct_override is on. Override allows
3317 // rendering outside of pixel getter but it doesn't guarantee
3318 // correct rendering.
3319 if ((sfc->direct_fb_opt) && (gl_direct_img_obj || gl_direct_override))
3320 gl_direct_enabled = 1;
3321 else
3322 gl_direct_enabled = 0;
3323
3324 if (gl_direct_enabled)
3325 {
3326 // Do a make current only if it's not already current
3327#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3328 if ((eglGetCurrentContext() != ctx->context) ||
3329 (eglGetCurrentSurface(EGL_READ) != sfc->direct_sfc) ||
3330 (eglGetCurrentSurface(EGL_DRAW) != sfc->direct_sfc) )
3331 {
3332 int curr_fbo = 0;
3333 DBG("Rendering Directly to the window\n");
3334
3335 // Flush remainder of what's in Evas' pipeline
3336 if (re->win) eng_window_use(NULL);
3337
3338 // Do a make current
3339 ret = eglMakeCurrent(re->win->egl_disp, sfc->direct_sfc,
3340 sfc->direct_sfc, ctx->context);
3341 if (!ret)
3342 {
3343 ERR("xxxMakeCurrent() failed! code=%#x", eglGetError());
3344 //ERR("xxxMakeCurrent() failed!");
3345 return 0;
3346 }
3347
3348 glGetIntegerv(GL_FRAMEBUFFER_BINDING, &curr_fbo);
3349 if (ctx->context_fbo == curr_fbo)
3350 {
3351 ctx->current_fbo = 0;
3352 glBindFramebuffer(GL_FRAMEBUFFER, 0);
3353 }
3354 }
3355#else
3356 if ((glXGetCurrentContext() != ctx->context))
3357 {
3358 // Flush remainder of what's in Evas' pipeline
3359 if (re->win) eng_window_use(NULL);
3360
3361 // Do a make current
3362 ret = glXMakeCurrent(re->info->info.display, sfc->direct_sfc, ctx->context);
3363 if (!ret)
3364 {
3365 ERR("xxxMakeCurrent() failed!");
3366 return 0;
3367 }
3368 }
3369#endif
3370 }
3371 else
3372 {
3373 // Do a make current only if it's not already current
3374#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3375 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
3376
3377 if ((eglGetCurrentContext() != ctx->context) ||
3378 (eglGetCurrentSurface(EGL_READ) != rsc->surface) ||
3379 (eglGetCurrentSurface(EGL_DRAW) != rsc->surface) )
3380 {
3381 // Flush remainder of what's in Evas' pipeline
3382 if (re->win) eng_window_use(NULL);
3383
3384 // Do a make current
3385 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
3386 rsc->surface, ctx->context);
3387 if (!ret)
3388 {
3389 ERR("xxxMakeCurrent() failed!");
3390 return 0;
3391 }
3392 }
3393#else
3394 if ((glXGetCurrentContext() != ctx->context) ||
3395 (glXGetCurrentDrawable() != re->win->win) )
3396 {
3397 // Flush remainder of what's in Evas' pipeline
3398 if (re->win) eng_window_use(NULL);
3399
3400 // Do a make current
3401 ret = glXMakeCurrent(re->info->info.display, re->win->win, ctx->context);
3402 if (!ret)
3403 {
3404 ERR("xxxMakeCurrent() failed!");
3405 return 0;
3406 }
3407 }
3408#endif
3409
3410 // Create FBO if not already created
3411 if (!ctx->initialized)
3412 {
3413 glGenFramebuffers(1, &ctx->context_fbo);
3414 ctx->initialized = 1;
3415 }
3416
3417 // Attach FBO if it hasn't been attached or if surface changed
3418 if ((!sfc->fbo_attached) || (ctx->current_sfc != sfc))
3419 {
3420 if (!_attach_fbo_surface(re, sfc, ctx))
3421 {
3422 ERR("_attach_fbo_surface() failed.");
3423 return 0;
3424 }
3425
3426 if (ctx->current_fbo)
3427 // Bind to the previously bound buffer
3428 glBindFramebuffer(GL_FRAMEBUFFER, ctx->current_fbo);
3429 else
3430 // Bind FBO
3431 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
3432
3433 sfc->fbo_attached = 1;
3434 }
3435 }
3436
3437 // Set the current surface/context
3438 ctx->current_sfc = sfc;
3439 sfc->current_ctx = ctx;
3440 current_evgl_ctx = ctx;
3441
3442 return 1;
3443}
3444
3445static void *
3446eng_gl_string_query(void *data __UNUSED__, int name)
3447{
3448 switch(name)
3449 {
3450 case EVAS_GL_EXTENSIONS:
3451 return (void*)_evasgl_ext_string;
3452 default:
3453 return NULL;
3454 };
3455}
3456
3457static void *
3458eng_gl_proc_address_get(void *data __UNUSED__, const char *name)
3459{
3460#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3461 if (glsym_eglGetProcAddress) return glsym_eglGetProcAddress(name);
3462 return dlsym(RTLD_DEFAULT, name);
3463#else
3464 if (glsym_glXGetProcAddress) return glsym_glXGetProcAddress(name);
3465 return dlsym(RTLD_DEFAULT, name);
3466#endif
3467}
3468
3469static int
3470eng_gl_native_surface_get(void *data, void *surface, void *native_surface)
3471{
3472 Render_Engine *re;
3473 Render_Engine_GL_Surface *sfc;
3474 Evas_Native_Surface *ns;
3475
3476 re = (Render_Engine *)data;
3477 sfc = (Render_Engine_GL_Surface*)surface;
3478 ns = (Evas_Native_Surface*)native_surface;
3479
3480 if (sfc->direct_fb_opt)
3481 {
3482 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
3483 ns->version = EVAS_NATIVE_SURFACE_VERSION;
3484 ns->data.opengl.texture_id = sfc->rt_tex;
3485 ns->data.opengl.framebuffer_id = 0;
3486 ns->data.opengl.x = 0;
3487 ns->data.opengl.y = 0;
3488 ns->data.opengl.w = sfc->w;
3489 ns->data.opengl.h = sfc->h;
3490 }
3491 else
3492 {
3493 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
3494 ns->version = EVAS_NATIVE_SURFACE_VERSION;
3495 ns->data.opengl.texture_id = sfc->rt_tex;
3496 ns->data.opengl.framebuffer_id = sfc->rt_tex;
3497 ns->data.opengl.x = 0;
3498 ns->data.opengl.y = 0;
3499 ns->data.opengl.w = sfc->w;
3500 ns->data.opengl.h = sfc->h;
3501 }
3502
3503 return 1;
3504}
3505
3506
3507static const GLubyte *
3508evgl_glGetString(GLenum name)
3509{
3510 if (name == GL_EXTENSIONS)
3511 return (GLubyte *)_gl_ext_string; //glGetString(GL_EXTENSIONS);
3512 else
3513 return glGetString(name);
3514}
3515
3516static void
3517evgl_glBindFramebuffer(GLenum target, GLuint framebuffer)
3518{
3519 Render_Engine_GL_Context *ctx = current_evgl_ctx;
3520
3521 if (!ctx)
3522 {
3523 ERR("No current context set.");
3524 return;
3525 }
3526
3527 // Take care of BindFramebuffer 0 issue
3528 if (framebuffer==0)
3529 {
3530 if (gl_direct_enabled)
3531 glBindFramebuffer(target, 0);
3532 else
3533 glBindFramebuffer(target, ctx->context_fbo);
3534 ctx->current_fbo = 0;
3535 }
3536 else
3537 {
3538 glBindFramebuffer(target, framebuffer);
3539
3540 // Save this for restore when doing make current
3541 ctx->current_fbo = framebuffer;
3542 }
3543}
3544
3545static void
3546evgl_glBindRenderbuffer(GLenum target, GLuint renderbuffer)
3547{
3548 // Add logic to take care when renderbuffer=0
3549 // On a second thought we don't need this
3550 glBindRenderbuffer(target, renderbuffer);
3551}
3552
3553// Transform from Evas Coordinat to GL Coordinate
3554// returns: oc[4] original image object dimension in gl coord
3555// returns: nc[4] tranformed (x, y, width, heigth) in gl coord
3556static void
3557compute_gl_coordinates(Evas_Object *obj, int rot, int clip,
3558 int x, int y, int width, int height,
3559 int imgc[4], int objc[4])
3560{
3561 if (rot == 0)
3562 {
3563 // oringinal image object coordinate in gl coordinate
3564 imgc[0] = obj->cur.geometry.x;
3565 imgc[1] = obj->layer->evas->output.h - obj->cur.geometry.y - obj->cur.geometry.h;
3566 imgc[2] = imgc[0] + obj->cur.geometry.w;
3567 imgc[3] = imgc[1] + obj->cur.geometry.h;
3568
3569 // transformed (x,y,width,height) in gl coordinate
3570 objc[0] = imgc[0] + x;
3571 objc[1] = imgc[1] + y;
3572 objc[2] = objc[0] + width;
3573 objc[3] = objc[1] + height;
3574 }
3575 else if (rot == 180)
3576 {
3577 // oringinal image object coordinate in gl coordinate
3578 imgc[0] = obj->layer->evas->output.w - obj->cur.geometry.x - obj->cur.geometry.w;
3579 imgc[1] = obj->cur.geometry.y;
3580 imgc[2] = imgc[0] + obj->cur.geometry.w;
3581 imgc[3] = imgc[1] + obj->cur.geometry.h;
3582
3583 // transformed (x,y,width,height) in gl coordinate
3584 objc[0] = imgc[0] + obj->cur.geometry.w - x - width;
3585 objc[1] = imgc[1] + obj->cur.geometry.h - y - height;
3586 objc[2] = objc[0] + width;
3587 objc[3] = objc[1] + height;
3588
3589 }
3590 else if (rot == 90)
3591 {
3592 // oringinal image object coordinate in gl coordinate
3593 imgc[0] = obj->cur.geometry.y;
3594 imgc[1] = obj->cur.geometry.x;
3595 imgc[2] = imgc[0] + obj->cur.geometry.h;
3596 imgc[3] = imgc[1] + obj->cur.geometry.w;
3597
3598 // transformed (x,y,width,height) in gl coordinate
3599 objc[0] = imgc[0] + obj->cur.geometry.h - y - height;
3600 objc[1] = imgc[1] + x;
3601 objc[2] = objc[0] + height;
3602 objc[3] = objc[1] + width;
3603 }
3604 else if (rot == 270)
3605 {
3606 // oringinal image object coordinate in gl coordinate
3607 imgc[0] = obj->layer->evas->output.h - obj->cur.geometry.y - obj->cur.geometry.h;
3608 imgc[1] = obj->layer->evas->output.w - obj->cur.geometry.x - obj->cur.geometry.w;
3609 imgc[2] = imgc[0] + obj->cur.geometry.h;
3610 imgc[3] = imgc[1] + obj->cur.geometry.w;
3611
3612 // transformed (x,y,width,height) in gl coordinate
3613 objc[0] = imgc[0] + y;
3614 objc[1] = imgc[1] + obj->cur.geometry.w - x - width;
3615 objc[2] = objc[0] + height;
3616 objc[3] = objc[1] + width;
3617 }
3618 else
3619 {
3620 ERR("Invalid rotation angle %d.", rot);
3621 return;
3622 }
3623
3624 if (clip)
3625 {
3626 // Clip against original image object
3627 if (objc[0] < imgc[0]) objc[0] = imgc[0];
3628 if (objc[0] > imgc[2]) objc[0] = 0;
3629
3630 if (objc[1] < imgc[1]) objc[1] = imgc[1];
3631 if (objc[1] > imgc[3]) objc[1] = 0;
3632
3633 if (objc[2] < imgc[0]) objc[0] = 0;
3634 if (objc[2] > imgc[2]) objc[2] = imgc[2];
3635
3636 if (objc[3] < imgc[1]) objc[1] = 0;
3637 if (objc[3] > imgc[3]) objc[3] = imgc[3];
3638 }
3639
3640 imgc[2] = imgc[2]-imgc[0]; // width
3641 imgc[3] = imgc[3]-imgc[1]; // height
3642
3643 objc[2] = objc[2]-objc[0]; // width
3644 objc[3] = objc[3]-objc[1]; // height
3645}
3646
3647static void
3648evgl_glClear(GLbitfield mask)
3649{
3650 Render_Engine_GL_Context *ctx = current_evgl_ctx;
3651 int rot = 0;
3652 int oc[4], nc[4];
3653
3654 if ((gl_direct_img_obj) && (gl_direct_enabled) && (ctx) && (!ctx->current_fbo))
3655 {
3656 if ((current_engine) && (current_engine->win) && (current_engine->win->gl_context))
3657 rot = current_engine->win->gl_context->rot;
3658 else
3659 ERR("Unable to retrieve rotation angle: %d", rot);
3660
3661 compute_gl_coordinates(gl_direct_img_obj, rot, 0, 0, 0, 0, 0, oc, nc);
3662 glScissor(oc[0], oc[1], oc[2], oc[3]);
3663 glClear(mask);
3664 }
3665 else
3666 glClear(mask);
3667}
3668
3669static void
3670evgl_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
3671{
3672 current_engine->df_clear_color[0] = red;
3673 current_engine->df_clear_color[1] = green;
3674 current_engine->df_clear_color[2] = blue;
3675 current_engine->df_clear_color[3] = alpha;
3676
3677 glClearColor(red, green, blue, alpha);
3678
3679}
3680
3681static void
3682evgl_glEnable(GLenum cap)
3683{
3684 Render_Engine_GL_Context *ctx = current_evgl_ctx;
3685
3686 if (cap == GL_SCISSOR_TEST)
3687 if (ctx) ctx->scissor_enabled = 1;
3688 glEnable(cap);
3689}
3690
3691static void
3692evgl_glDisable(GLenum cap)
3693{
3694 Render_Engine_GL_Context *ctx = current_evgl_ctx;
3695
3696 if (cap == GL_SCISSOR_TEST)
3697 if (ctx) ctx->scissor_enabled = 0;
3698 glDisable(cap);
3699}
3700
3701
3702static void
3703evgl_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels)
3704{
3705 Render_Engine_GL_Context *ctx = current_evgl_ctx;
3706 int rot = 0;
3707 int oc[4], nc[4];
3708
3709 if ((gl_direct_img_obj) && (gl_direct_enabled) && (ctx) && (!ctx->current_fbo))
3710 {
3711 if ((current_engine) && (current_engine->win) && (current_engine->win->gl_context))
3712 rot = current_engine->win->gl_context->rot;
3713 else
3714 ERR("Unable to retrieve rotation angle: %d", rot);
3715
3716 compute_gl_coordinates(gl_direct_img_obj, rot, 1, x, y, width, height, oc, nc);
3717 glReadPixels(nc[0], nc[1], nc[2], nc[3], format, type, pixels);
3718 }
3719 else
3720 glReadPixels(x, y, width, height, format, type, pixels);
3721}
3722
3723static void
3724evgl_glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
3725{
3726 Render_Engine_GL_Context *ctx = current_evgl_ctx;
3727 int rot = 0;
3728 int oc[4], nc[4];
3729
3730 if ((gl_direct_img_obj) && (gl_direct_enabled) && (ctx) && (!ctx->current_fbo))
3731 {
3732 if ((current_engine) && (current_engine->win) && (current_engine->win->gl_context))
3733 rot = current_engine->win->gl_context->rot;
3734 else
3735 ERR("Unable to retrieve rotation angle: %d", rot);
3736
3737 compute_gl_coordinates(gl_direct_img_obj, rot, 1, x, y, width, height, oc, nc);
3738 glScissor(nc[0], nc[1], nc[2], nc[3]);
3739 ctx->scissor_upated = 1;
3740 }
3741 else
3742 glScissor(x, y, width, height);
3743}
3744
3745static void
3746evgl_glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
3747{
3748 Render_Engine_GL_Context *ctx = current_evgl_ctx;
3749 int rot = 0;
3750 int oc[4], nc[4];
3751
3752 if ((gl_direct_img_obj) && (gl_direct_enabled) && (ctx) && (!ctx->current_fbo))
3753 {
3754 if ((current_engine) && (current_engine->win) && (current_engine->win->gl_context))
3755 rot = current_engine->win->gl_context->rot;
3756 else
3757 ERR("Unable to retrieve rotation angle: %d", rot);
3758
3759 compute_gl_coordinates(gl_direct_img_obj, rot, 0, x, y, width, height, oc, nc);
3760 glEnable(GL_SCISSOR_TEST);
3761 glScissor(oc[0], oc[1], oc[2], oc[3]);
3762 glViewport(nc[0], nc[1], nc[2], nc[3]);
3763 }
3764 else
3765 glViewport(x, y, width, height);
3766
3767}
3768
3769
3770//----------------------------------------------//
3771
3772static void
3773evgl_glClearDepthf(GLclampf depth)
3774{
3775#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3776 glClearDepthf(depth);
3777#else
3778 glClearDepth(depth);
3779#endif
3780}
3781
3782static void
3783evgl_glDepthRangef(GLclampf zNear, GLclampf zFar)
3784{
3785#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3786 glDepthRangef(zNear, zFar);
3787#else
3788 glDepthRange(zNear, zFar);
3789#endif
3790}
3791
3792static void
3793evgl_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
3794{
3795#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3796 glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
3797#else
3798 if (range)
3799 {
3800 range[0] = -126; // floor(log2(FLT_MIN))
3801 range[1] = 127; // floor(log2(FLT_MAX))
3802 }
3803 if (precision)
3804 {
3805 precision[0] = 24; // floor(-log2((1.0/16777218.0)));
3806 }
3807 return;
3808 shadertype = precisiontype = 0;
3809#endif
3810}
3811
3812static void
3813evgl_glReleaseShaderCompiler(void)
3814{
3815#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3816 glReleaseShaderCompiler();
3817#else
3818#endif
3819}
3820
3821static void
3822evgl_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length)
3823{
3824#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3825 glShaderBinary(n, shaders, binaryformat, binary, length);
3826#else
3827// FIXME: need to dlsym/getprocaddress for this
3828 return;
3829 n = binaryformat = length = 0;
3830 shaders = binary = 0;
3831#endif
3832}
3833
3834//--------------------------------//
3835#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
3836// EGL Extensions
3837static void *
3838evgl_evasglCreateImage(int target, void* buffer, int *attrib_list)
3839{
3840 if (current_engine)
3841 {
3842 return glsym_eglCreateImage(current_engine->win->egl_disp,
3843 EGL_NO_CONTEXT,
3844 target,
3845 buffer,
3846 attrib_list);
3847 }
3848 else
3849 {
3850 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
3851 return NULL;
3852 }
3853}
3854
3855static void
3856evgl_evasglDestroyImage(EvasGLImage image)
3857{
3858 if (current_engine)
3859 glsym_eglDestroyImage(current_engine->win->egl_disp, image);
3860 else
3861 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
3862}
3863
3864static void
3865evgl_glEvasGLImageTargetTexture2DOES(GLenum target, EvasGLImage image)
3866{
3867 glsym_glEGLImageTargetTexture2DOES(target, image);
3868}
3869
3870static void
3871evgl_glEvasGLImageTargetRenderbufferStorageOES(GLenum target, EvasGLImage image)
3872{
3873 glsym_glEGLImageTargetTexture2DOES(target, image);
3874}
3875#else
3876#endif
3877
3878//--------------------------------//
3879
3880
3881static void *
3882eng_gl_api_get(void *data)
3883{
3884 Render_Engine *re;
3885
3886 re = (Render_Engine *)data;
3887
3888 gl_funcs.version = EVAS_GL_API_VERSION;
3889
3890#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, )
3891 // GLES 2.0
3892 ORD(glActiveTexture);
3893 ORD(glAttachShader);
3894 ORD(glBindAttribLocation);
3895 ORD(glBindBuffer);
3896 ORD(glBindTexture);
3897 ORD(glBlendColor);
3898 ORD(glBlendEquation);
3899 ORD(glBlendEquationSeparate);
3900 ORD(glBlendFunc);
3901 ORD(glBlendFuncSeparate);
3902 ORD(glBufferData);
3903 ORD(glBufferSubData);
3904 ORD(glCheckFramebufferStatus);
3905// ORD(glClear);
3906// ORD(glClearColor);
3907// ORD(glClearDepthf);
3908 ORD(glClearStencil);
3909 ORD(glColorMask);
3910 ORD(glCompileShader);
3911 ORD(glCompressedTexImage2D);
3912 ORD(glCompressedTexSubImage2D);
3913 ORD(glCopyTexImage2D);
3914 ORD(glCopyTexSubImage2D);
3915 ORD(glCreateProgram);
3916 ORD(glCreateShader);
3917 ORD(glCullFace);
3918 ORD(glDeleteBuffers);
3919 ORD(glDeleteFramebuffers);
3920 ORD(glDeleteProgram);
3921 ORD(glDeleteRenderbuffers);
3922 ORD(glDeleteShader);
3923 ORD(glDeleteTextures);
3924 ORD(glDepthFunc);
3925 ORD(glDepthMask);
3926// ORD(glDepthRangef);
3927 ORD(glDetachShader);
3928// ORD(glDisable);
3929 ORD(glDisableVertexAttribArray);
3930 ORD(glDrawArrays);
3931 ORD(glDrawElements);
3932// ORD(glEnable);
3933 ORD(glEnableVertexAttribArray);
3934 ORD(glFinish);
3935 ORD(glFlush);
3936 ORD(glFramebufferRenderbuffer);
3937 ORD(glFramebufferTexture2D);
3938 ORD(glFrontFace);
3939 ORD(glGenBuffers);
3940 ORD(glGenerateMipmap);
3941 ORD(glGenFramebuffers);
3942 ORD(glGenRenderbuffers);
3943 ORD(glGenTextures);
3944 ORD(glGetActiveAttrib);
3945 ORD(glGetActiveUniform);
3946 ORD(glGetAttachedShaders);
3947 ORD(glGetAttribLocation);
3948 ORD(glGetBooleanv);
3949 ORD(glGetBufferParameteriv);
3950 ORD(glGetError);
3951 ORD(glGetFloatv);
3952 ORD(glGetFramebufferAttachmentParameteriv);
3953 ORD(glGetIntegerv);
3954 ORD(glGetProgramiv);
3955 ORD(glGetProgramInfoLog);
3956 ORD(glGetRenderbufferParameteriv);
3957 ORD(glGetShaderiv);
3958 ORD(glGetShaderInfoLog);
3959// ORD(glGetShaderPrecisionFormat);
3960 ORD(glGetShaderSource);
3961// ORD(glGetString);
3962 ORD(glGetTexParameterfv);
3963 ORD(glGetTexParameteriv);
3964 ORD(glGetUniformfv);
3965 ORD(glGetUniformiv);
3966 ORD(glGetUniformLocation);
3967 ORD(glGetVertexAttribfv);
3968 ORD(glGetVertexAttribiv);
3969 ORD(glGetVertexAttribPointerv);
3970 ORD(glHint);
3971 ORD(glIsBuffer);
3972 ORD(glIsEnabled);
3973 ORD(glIsFramebuffer);
3974 ORD(glIsProgram);
3975 ORD(glIsRenderbuffer);
3976 ORD(glIsShader);
3977 ORD(glIsTexture);
3978 ORD(glLineWidth);
3979 ORD(glLinkProgram);
3980 ORD(glPixelStorei);
3981 ORD(glPolygonOffset);
3982 ORD(glReadPixels);
3983// ORD(glReleaseShaderCompiler);
3984 ORD(glRenderbufferStorage);
3985 ORD(glSampleCoverage);
3986// ORD(glScissor);
3987// ORD(glShaderBinary);
3988 ORD(glShaderSource);
3989 ORD(glStencilFunc);
3990 ORD(glStencilFuncSeparate);
3991 ORD(glStencilMask);
3992 ORD(glStencilMaskSeparate);
3993 ORD(glStencilOp);
3994 ORD(glStencilOpSeparate);
3995 ORD(glTexImage2D);
3996 ORD(glTexParameterf);
3997 ORD(glTexParameterfv);
3998 ORD(glTexParameteri);
3999 ORD(glTexParameteriv);
4000 ORD(glTexSubImage2D);
4001 ORD(glUniform1f);
4002 ORD(glUniform1fv);
4003 ORD(glUniform1i);
4004 ORD(glUniform1iv);
4005 ORD(glUniform2f);
4006 ORD(glUniform2fv);
4007 ORD(glUniform2i);
4008 ORD(glUniform2iv);
4009 ORD(glUniform3f);
4010 ORD(glUniform3fv);
4011 ORD(glUniform3i);
4012 ORD(glUniform3iv);
4013 ORD(glUniform4f);
4014 ORD(glUniform4fv);
4015 ORD(glUniform4i);
4016 ORD(glUniform4iv);
4017 ORD(glUniformMatrix2fv);
4018 ORD(glUniformMatrix3fv);
4019 ORD(glUniformMatrix4fv);
4020 ORD(glUseProgram);
4021 ORD(glValidateProgram);
4022 ORD(glVertexAttrib1f);
4023 ORD(glVertexAttrib1fv);
4024 ORD(glVertexAttrib2f);
4025 ORD(glVertexAttrib2fv);
4026 ORD(glVertexAttrib3f);
4027 ORD(glVertexAttrib3fv);
4028 ORD(glVertexAttrib4f);
4029 ORD(glVertexAttrib4fv);
4030 ORD(glVertexAttribPointer);
4031// ORD(glViewport);
4032#undef ORD
4033
4034#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, glsym_)
4035 // Extensions
4036 ORD(glGetProgramBinaryOES);
4037 ORD(glProgramBinaryOES);
4038 ORD(glMapBufferOES);
4039 ORD(glUnmapBufferOES);
4040 ORD(glGetBufferPointervOES);
4041 ORD(glTexImage3DOES);
4042 ORD(glTexSubImage3DOES);
4043 ORD(glCopyTexSubImage3DOES);
4044 ORD(glCompressedTexImage3DOES);
4045 ORD(glCompressedTexSubImage3DOES);
4046 ORD(glFramebufferTexture3DOES);
4047 ORD(glGetPerfMonitorGroupsAMD);
4048 ORD(glGetPerfMonitorCountersAMD);
4049 ORD(glGetPerfMonitorGroupStringAMD);
4050 ORD(glGetPerfMonitorCounterStringAMD);
4051 ORD(glGetPerfMonitorCounterInfoAMD);
4052 ORD(glGenPerfMonitorsAMD);
4053 ORD(glDeletePerfMonitorsAMD);
4054 ORD(glSelectPerfMonitorCountersAMD);
4055 ORD(glBeginPerfMonitorAMD);
4056 ORD(glEndPerfMonitorAMD);
4057 ORD(glGetPerfMonitorCounterDataAMD);
4058 ORD(glDiscardFramebufferEXT);
4059 ORD(glMultiDrawArraysEXT);
4060 ORD(glMultiDrawElementsEXT);
4061 ORD(glDeleteFencesNV);
4062 ORD(glGenFencesNV);
4063 ORD(glIsFenceNV);
4064 ORD(glTestFenceNV);
4065 ORD(glGetFenceivNV);
4066 ORD(glFinishFenceNV);
4067 ORD(glSetFenceNV);
4068 ORD(glGetDriverControlsQCOM);
4069 ORD(glGetDriverControlStringQCOM);
4070 ORD(glEnableDriverControlQCOM);
4071 ORD(glDisableDriverControlQCOM);
4072 ORD(glExtGetTexturesQCOM);
4073 ORD(glExtGetBuffersQCOM);
4074 ORD(glExtGetRenderbuffersQCOM);
4075 ORD(glExtGetFramebuffersQCOM);
4076 ORD(glExtGetTexLevelParameterivQCOM);
4077 ORD(glExtTexObjectStateOverrideiQCOM);
4078 ORD(glExtGetTexSubImageQCOM);
4079 ORD(glExtGetBufferPointervQCOM);
4080 ORD(glExtGetShadersQCOM);
4081 ORD(glExtGetProgramsQCOM);
4082 ORD(glExtIsProgramBinaryQCOM);
4083 ORD(glExtGetProgramBinarySourceQCOM);
4084#undef ORD
4085
4086// Override functions wrapped by Evas_GL
4087#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
4088 ORD(glBindFramebuffer);
4089 ORD(glBindRenderbuffer);
4090
4091 ORD(glClear);
4092 ORD(glClearColor);
4093 ORD(glEnable);
4094 ORD(glDisable);
4095 ORD(glReadPixels);
4096 ORD(glScissor);
4097 ORD(glViewport);
4098
4099 // GLES2.0 API compat on top of desktop gl
4100 ORD(glClearDepthf);
4101 ORD(glDepthRangef);
4102 ORD(glGetShaderPrecisionFormat);
4103 ORD(glReleaseShaderCompiler);
4104 ORD(glShaderBinary);
4105
4106 ORD(glGetString);
4107
4108#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
4109 // GLES 2.0 Extensions that needs wrapping
4110 ORD(evasglCreateImage);
4111 ORD(evasglDestroyImage);
4112 ORD(glEvasGLImageTargetTexture2DOES);
4113 ORD(glEvasGLImageTargetRenderbufferStorageOES);
4114#endif
4115
4116#undef ORD
4117
4118 return &gl_funcs;
4119}
4120
4121static void
4122eng_gl_img_obj_set(void *data, void *image, int has_alpha)
4123{
4124 Render_Engine *re = (Render_Engine *)data;
4125
4126 gl_direct_img_obj = NULL;
4127
4128 // Normally direct rendering isn't allowed if alpha is on and
4129 // rotation is not 0. BUT, if override is on, allow it.
4130 if ((has_alpha) || (re->win->gl_context->rot!=0))
4131 {
4132 if (gl_direct_override)
4133 gl_direct_img_obj = image;
4134 }
4135 else
4136 gl_direct_img_obj = image;
4137}
4138
4139static int
4140eng_image_load_error_get(void *data __UNUSED__, void *image)
4141{
4142 Evas_GL_Image *im;
4143
4144 if (!image) return EVAS_LOAD_ERROR_NONE;
4145 im = image;
4146 return im->im->cache_entry.load_error;
4147}
4148
4149static Eina_Bool
4150eng_image_animated_get(void *data __UNUSED__, void *image)
4151{
4152 Evas_GL_Image *gim = image;
4153 Image_Entry *im;
4154
4155 if (!gim) return EINA_FALSE;
4156 im = (Image_Entry *)gim->im;
4157 if (!im) return EINA_FALSE;
4158
4159 return im->flags.animated;
4160}
4161
4162static int
4163eng_image_animated_frame_count_get(void *data __UNUSED__, void *image)
4164{
4165 Evas_GL_Image *gim = image;
4166 Image_Entry *im;
4167
4168 if (!gim) return -1;
4169 im = (Image_Entry *)gim->im;
4170 if (!im) return -1;
4171
4172 if (!im->flags.animated) return -1;
4173 return im->frame_count;
4174}
4175
4176static Evas_Image_Animated_Loop_Hint
4177eng_image_animated_loop_type_get(void *data __UNUSED__, void *image)
4178{
4179 Evas_GL_Image *gim = image;
4180 Image_Entry *im;
4181
4182 if (!gim) return EVAS_IMAGE_ANIMATED_HINT_NONE;
4183 im = (Image_Entry *)gim->im;
4184 if (!im) return EVAS_IMAGE_ANIMATED_HINT_NONE;
4185
4186 if (!im->flags.animated) return EVAS_IMAGE_ANIMATED_HINT_NONE;
4187 return im->loop_hint;
4188}
4189
4190static int
4191eng_image_animated_loop_count_get(void *data __UNUSED__, void *image)
4192{
4193 Evas_GL_Image *gim = image;
4194 Image_Entry *im;
4195
4196 if (!gim) return -1;
4197 im = (Image_Entry *)gim->im;
4198 if (!im) return -1;
4199
4200 if (!im->flags.animated) return -1;
4201 return im->loop_count;
4202}
4203
4204static double
4205eng_image_animated_frame_duration_get(void *data __UNUSED__, void *image, int start_frame, int frame_num)
4206{
4207 Evas_GL_Image *gim = image;
4208 Image_Entry *im;
4209
4210 if (!gim) return -1;
4211 im = (Image_Entry *)gim->im;
4212 if (!im) return -1;
4213
4214 if (!im->flags.animated) return -1;
4215 return evas_common_load_rgba_image_frame_duration_from_file(im, start_frame, frame_num);
4216}
4217
4218static Eina_Bool
4219eng_image_animated_frame_set(void *data __UNUSED__, void *image, int frame_index)
4220{
4221 Evas_GL_Image *gim = image;
4222 Image_Entry *im;
4223
4224 if (!gim) return EINA_FALSE;
4225 im = (Image_Entry *)gim->im;
4226 if (!im) return EINA_FALSE;
4227
4228 if (!im->flags.animated) return EINA_FALSE;
4229 if (im->cur_frame == frame_index) return EINA_FALSE;
4230
4231 im->cur_frame = frame_index;
4232 return EINA_TRUE;
4233}
4234
4235static Eina_Bool
4236eng_image_can_region_get(void *data __UNUSED__, void *image)
4237{
4238 Evas_GL_Image *gim = image;
4239 Image_Entry *im;
4240 if (!gim) return EINA_FALSE;
4241 im = (Image_Entry *)gim->im;
4242 if (!im) return EINA_FALSE;
4243 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
4244}
4245
4246
4247static void
4248eng_image_max_size_get(void *data, int *maxw, int *maxh)
4249{
4250 Render_Engine *re = (Render_Engine *)data;
4251 if (maxw) *maxw = re->win->gl_context->shared->info.max_texture_size;
4252 if (maxh) *maxh = re->win->gl_context->shared->info.max_texture_size;
4253}
4254
4255static int
4256module_open(Evas_Module *em)
4257{
4258 static Eina_Bool xrm_inited = EINA_FALSE;
4259 if (!xrm_inited)
4260 {
4261 xrm_inited = EINA_TRUE;
4262 XrmInitialize();
4263 }
4264
4265 if (!em) return 0;
4266 if (!evas_gl_common_module_open()) return 0;
4267 /* get whatever engine module we inherit from */
4268 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
4269 if (_evas_engine_GL_X11_log_dom < 0)
4270 _evas_engine_GL_X11_log_dom = eina_log_domain_register
4271 ("evas-gl_x11", EVAS_DEFAULT_LOG_COLOR);
4272 if (_evas_engine_GL_X11_log_dom < 0)
4273 {
4274 EINA_LOG_ERR("Can not create a module log domain.");
4275 return 0;
4276 }
4277 /* Allow alpha for evas gl direct rendering */
4278 if (getenv("EVAS_GL_DIRECT_OVERRIDE")) gl_direct_override = 1;
4279
4280 /* store it for later use */
4281 func = pfunc;
4282 /* now to override methods */
4283 #define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
4284 ORD(info);
4285 ORD(info_free);
4286 ORD(setup);
4287 ORD(canvas_alpha_get);
4288 ORD(output_free);
4289 ORD(output_resize);
4290 ORD(output_tile_size_set);
4291 ORD(output_redraws_rect_add);
4292 ORD(output_redraws_rect_del);
4293 ORD(output_redraws_clear);
4294 ORD(output_redraws_next_update_get);
4295 ORD(output_redraws_next_update_push);
4296 ORD(context_cutout_add);
4297 ORD(context_cutout_clear);
4298 ORD(output_flush);
4299 ORD(output_idle_flush);
4300 ORD(output_dump);
4301 ORD(rectangle_draw);
4302 ORD(line_draw);
4303 ORD(polygon_point_add);
4304 ORD(polygon_points_clear);
4305 ORD(polygon_draw);
4306
4307 ORD(image_load);
4308 ORD(image_new_from_data);
4309 ORD(image_new_from_copied_data);
4310 ORD(image_free);
4311 ORD(image_size_get);
4312 ORD(image_size_set);
4313 ORD(image_dirty_region);
4314 ORD(image_data_get);
4315 ORD(image_data_put);
4316 ORD(image_data_preload_request);
4317 ORD(image_data_preload_cancel);
4318 ORD(image_alpha_set);
4319 ORD(image_alpha_get);
4320 ORD(image_border_set);
4321 ORD(image_border_get);
4322 ORD(image_draw);
4323 ORD(image_comment_get);
4324 ORD(image_format_get);
4325 ORD(image_colorspace_set);
4326 ORD(image_colorspace_get);
4327 ORD(image_can_region_get);
4328 ORD(image_mask_create);
4329 ORD(image_native_set);
4330 ORD(image_native_get);
4331#if 0 // filtering disabled
4332 ORD(image_draw_filtered);
4333 ORD(image_filtered_get);
4334 ORD(image_filtered_save);
4335 ORD(image_filtered_free);
4336#endif
4337
4338 ORD(font_draw);
4339
4340 ORD(image_scale_hint_set);
4341 ORD(image_scale_hint_get);
4342 ORD(image_stride_get);
4343
4344 ORD(image_map_draw);
4345 ORD(image_map_surface_new);
4346 ORD(image_map_surface_free);
4347
4348 ORD(image_content_hint_set);
4349 ORD(image_content_hint_get);
4350
4351 ORD(image_cache_flush);
4352 ORD(image_cache_set);
4353 ORD(image_cache_get);
4354
4355 ORD(gl_surface_create);
4356 ORD(gl_surface_destroy);
4357 ORD(gl_context_create);
4358 ORD(gl_context_destroy);
4359 ORD(gl_make_current);
4360 ORD(gl_string_query);
4361 ORD(gl_proc_address_get);
4362 ORD(gl_native_surface_get);
4363 ORD(gl_api_get);
4364 ORD(gl_img_obj_set);
4365
4366 ORD(image_load_error_get);
4367
4368 /* now advertise out own api */
4369 ORD(image_animated_get);
4370 ORD(image_animated_frame_count_get);
4371 ORD(image_animated_loop_type_get);
4372 ORD(image_animated_loop_count_get);
4373 ORD(image_animated_frame_duration_get);
4374 ORD(image_animated_frame_set);
4375
4376 ORD(image_max_size_get);
4377
4378 /* now advertise out own api */
4379 em->functions = (void *)(&func);
4380 return 1;
4381}
4382
4383static void
4384module_close(Evas_Module *em __UNUSED__)
4385{
4386 eina_log_domain_unregister(_evas_engine_GL_X11_log_dom);
4387/*
4388 if (xrdb_user.db)
4389 {
4390 XrmDestroyDatabase(xrdb_user.db);
4391 xrdb_user.last_stat = 0;
4392 xrdb_user.last_mtime = 0;
4393 xrdb_user.db = NULL;
4394 }
4395 */
4396 evas_gl_common_module_close();
4397}
4398
4399static Evas_Module_Api evas_modapi =
4400{
4401 EVAS_MODULE_API_VERSION,
4402 "gl_x11",
4403 "none",
4404 {
4405 module_open,
4406 module_close
4407 }
4408};
4409
4410EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_x11);
4411
4412#ifndef EVAS_STATIC_BUILD_GL_XLIB
4413EVAS_EINA_MODULE_DEFINE(engine, gl_x11);
4414#endif
4415
4416/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
diff --git a/libraries/evas/src/modules/engines/gl_x11/evas_engine.h b/libraries/evas/src/modules/engines/gl_x11/evas_engine.h
deleted file mode 100644
index 4f62c58..0000000
--- a/libraries/evas/src/modules/engines/gl_x11/evas_engine.h
+++ /dev/null
@@ -1,126 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include "config.h"
5#include "evas_common.h"
6#include "evas_private.h"
7#include "evas_gl_common.h"
8#include "Evas.h"
9#include "Evas_Engine_GL_X11.h"
10
11#define GL_GLEXT_PROTOTYPES
12
13#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
14# if defined(GLES_VARIETY_S3C6410)
15# include <EGL/egl.h>
16# include <GLES2/gl2.h>
17# include <X11/Xlib.h>
18# include <X11/Xatom.h>
19# include <X11/Xutil.h>
20# include <X11/extensions/Xrender.h>
21# include <X11/Xresource.h> // xres - dpi
22# elif defined(GLES_VARIETY_SGX)
23# define SUPPORT_X11 1
24# include <EGL/egl.h>
25# include <GLES2/gl2.h>
26# include <GLES2/gl2ext.h>
27# include <X11/Xlib.h>
28# include <X11/Xatom.h>
29# include <X11/Xutil.h>
30# include <X11/extensions/Xrender.h>
31# include <X11/Xresource.h> // xres - dpi
32# endif
33#else
34# include <X11/Xlib.h>
35# include <X11/Xatom.h>
36# include <X11/Xutil.h>
37# include <X11/extensions/Xrender.h>
38# include <X11/Xresource.h> // xres - dpi
39# include <GL/gl.h>
40# include <GL/glext.h>
41# include <GL/glx.h>
42#endif
43
44extern int _evas_engine_GL_X11_log_dom ;
45#ifdef ERR
46# undef ERR
47#endif
48#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_GL_X11_log_dom, __VA_ARGS__)
49
50#ifdef DBG
51# undef DBG
52#endif
53#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_GL_X11_log_dom, __VA_ARGS__)
54
55#ifdef INF
56# undef INF
57#endif
58#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_GL_X11_log_dom, __VA_ARGS__)
59
60#ifdef WRN
61# undef WRN
62#endif
63#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_GL_X11_log_dom, __VA_ARGS__)
64
65#ifdef CRIT
66# undef CRIT
67#endif
68#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_GL_X11_log_dom, __VA_ARGS__)
69
70typedef struct _Evas_GL_X11_Window Evas_GL_X11_Window;
71
72struct _Evas_GL_X11_Window
73{
74 Display *disp;
75 Window win;
76 int w, h;
77 int screen;
78 XVisualInfo *visualinfo;
79 Visual *visual;
80 Colormap colormap;
81 int depth;
82 int alpha;
83 int rot;
84 Evas_Engine_GL_Context *gl_context;
85 struct {
86 int redraw : 1;
87 int drew : 1;
88 int x1, y1, x2, y2;
89 } draw;
90#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
91 EGLContext egl_context[1];
92 EGLSurface egl_surface[1];
93 EGLConfig egl_config;
94 EGLDisplay egl_disp;
95#else
96 GLXContext context;
97 GLXWindow glxwin;
98 struct {
99 GLXFBConfig fbc;
100 int tex_format;
101 int tex_target;
102 int mipmap;
103 unsigned char yinvert : 1;
104 } depth_cfg[33]; // config for all 32 possible depths!
105
106 struct {
107 unsigned int loose_binding : 1;
108 } detected;
109#endif
110 int surf : 1;
111};
112
113Evas_GL_X11_Window *eng_window_new(Display *disp, Window win, int screen,
114 Visual *vis, Colormap cmap,
115 int depth, int w, int h, int indirect,
116 int alpha, int rot);
117void eng_window_free(Evas_GL_X11_Window *gw);
118void eng_window_use(Evas_GL_X11_Window *gw);
119void eng_window_unsurf(Evas_GL_X11_Window *gw);
120void eng_window_resurf(Evas_GL_X11_Window *gw);
121
122Visual *eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo);
123Colormap eng_best_colormap_get(Evas_Engine_Info_GL_X11 *einfo);
124int eng_best_depth_get(Evas_Engine_Info_GL_X11 *einfo);
125
126#endif
diff --git a/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c b/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
deleted file mode 100644
index c29ab67..0000000
--- a/libraries/evas/src/modules/engines/gl_x11/evas_x_main.c
+++ /dev/null
@@ -1,901 +0,0 @@
1#include "evas_engine.h"
2
3static Evas_GL_X11_Window *_evas_gl_x11_window = NULL;
4
5#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
6static EGLContext context = EGL_NO_CONTEXT;
7#else
8// FIXME: this will only work for 1 display connection (glx land can have > 1)
9static GLXContext context = 0;
10static GLXContext rgba_context = 0;
11static GLXFBConfig fbconf = 0;
12static GLXFBConfig rgba_fbconf = 0;
13#endif
14
15// fixme: something is up/wrong here - dont know what tho...
16//#define NEWGL 1
17
18static XVisualInfo *_evas_gl_x11_vi = NULL;
19static XVisualInfo *_evas_gl_x11_rgba_vi = NULL;
20static Colormap _evas_gl_x11_cmap = 0;
21static Colormap _evas_gl_x11_rgba_cmap = 0;
22
23static int win_count = 0;
24
25Evas_GL_X11_Window *
26eng_window_new(Display *disp,
27 Window win,
28 int screen,
29 Visual *vis,
30 Colormap cmap,
31 int depth,
32 int w,
33 int h,
34 int indirect,
35 int alpha,
36 int rot)
37{
38 Evas_GL_X11_Window *gw;
39#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
40 int context_attrs[3];
41 int config_attrs[40];
42 int major_version, minor_version;
43 int num_config, n = 0;
44#endif
45 XVisualInfo *vi_use;
46 const GLubyte *vendor, *renderer, *version;
47
48 if (!_evas_gl_x11_vi) return NULL;
49
50 gw = calloc(1, sizeof(Evas_GL_X11_Window));
51 if (!gw) return NULL;
52
53 win_count++;
54 gw->disp = disp;
55 gw->win = win;
56 gw->screen = screen;
57 gw->visual = vis;
58 gw->colormap = cmap;
59 gw->depth = depth;
60 gw->alpha = alpha;
61 gw->w = w;
62 gw->h = h;
63 gw->rot = rot;
64
65 vi_use = _evas_gl_x11_vi;
66 if (gw->alpha)
67 {
68#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
69 if (_evas_gl_x11_rgba_vi)
70 {
71 vi_use = _evas_gl_x11_rgba_vi;
72 }
73#else
74//#ifdef NEWGL
75 if (_evas_gl_x11_rgba_vi)
76 {
77 vi_use = _evas_gl_x11_rgba_vi;
78 }
79//#endif
80#endif
81 }
82 gw->visualinfo = vi_use;
83
84// EGL / GLES
85#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
86 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
87 context_attrs[1] = 2;
88 context_attrs[2] = EGL_NONE;
89
90# if defined(GLES_VARIETY_S3C6410)
91 if (gw->visualinfo->depth == 16) // 16bpp
92 {
93 config_attrs[n++] = EGL_SURFACE_TYPE;
94 config_attrs[n++] = EGL_WINDOW_BIT;
95 config_attrs[n++] = EGL_RENDERABLE_TYPE;
96 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
97 config_attrs[n++] = EGL_RED_SIZE;
98 config_attrs[n++] = 5;
99 config_attrs[n++] = EGL_GREEN_SIZE;
100 config_attrs[n++] = 6;
101 config_attrs[n++] = EGL_BLUE_SIZE;
102 config_attrs[n++] = 5;
103 config_attrs[n++] = EGL_DEPTH_SIZE;
104 config_attrs[n++] = 0;
105 config_attrs[n++] = EGL_STENCIL_SIZE;
106 config_attrs[n++] = 0;
107 config_attrs[n++] = EGL_NONE;
108 }
109 else // 24/32bit. no one does 8bpp anymore. and 15bpp... dead
110 {
111 config_attrs[n++] = EGL_SURFACE_TYPE;
112 config_attrs[n++] = EGL_WINDOW_BIT;
113 config_attrs[n++] = EGL_RENDERABLE_TYPE;
114 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
115 config_attrs[n++] = EGL_RED_SIZE;
116 config_attrs[n++] = 8;
117 config_attrs[n++] = EGL_GREEN_SIZE;
118 config_attrs[n++] = 8;
119 config_attrs[n++] = EGL_BLUE_SIZE;
120 config_attrs[n++] = 8;
121 config_attrs[n++] = EGL_DEPTH_SIZE;
122 config_attrs[n++] = 0;
123 config_attrs[n++] = EGL_STENCIL_SIZE;
124 config_attrs[n++] = 0;
125 config_attrs[n++] = EGL_NONE;
126 }
127# elif defined(GLES_VARIETY_SGX)
128 config_attrs[n++] = EGL_SURFACE_TYPE;
129 config_attrs[n++] = EGL_WINDOW_BIT;
130 config_attrs[n++] = EGL_RENDERABLE_TYPE;
131 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
132#if 0
133// FIXME: n900 - omap3 sgx libs break here
134 config_attrs[n++] = EGL_RED_SIZE;
135 config_attrs[n++] = 1;
136 config_attrs[n++] = EGL_GREEN_SIZE;
137 config_attrs[n++] = 1;
138 config_attrs[n++] = EGL_BLUE_SIZE;
139 config_attrs[n++] = 1;
140// FIXME: end n900 breakage
141#endif
142 if (gw->alpha)
143 {
144 config_attrs[n++] = EGL_ALPHA_SIZE;
145 config_attrs[n++] = 1;
146 }
147 else
148 {
149 config_attrs[n++] = EGL_ALPHA_SIZE;
150 config_attrs[n++] = 0;
151 }
152 config_attrs[n++] = EGL_DEPTH_SIZE;
153 config_attrs[n++] = 0;
154 config_attrs[n++] = EGL_STENCIL_SIZE;
155 config_attrs[n++] = 0;
156 config_attrs[n++] = EGL_NONE;
157# endif
158
159 gw->egl_disp = eglGetDisplay((EGLNativeDisplayType)(gw->disp));
160 if (!gw->egl_disp)
161 {
162 ERR("eglGetDisplay() fail. code=%#x", eglGetError());
163 eng_window_free(gw);
164 return NULL;
165 }
166 if (!eglInitialize(gw->egl_disp, &major_version, &minor_version))
167 {
168 ERR("eglInitialize() fail. code=%#x", eglGetError());
169 eng_window_free(gw);
170 return NULL;
171 }
172 eglBindAPI(EGL_OPENGL_ES_API);
173 if (eglGetError() != EGL_SUCCESS)
174 {
175 ERR("eglBindAPI() fail. code=%#x", eglGetError());
176 eng_window_free(gw);
177 return NULL;
178 }
179
180 num_config = 0;
181 if (!eglChooseConfig(gw->egl_disp, config_attrs, &gw->egl_config,
182 1, &num_config) || (num_config != 1))
183 {
184 ERR("eglChooseConfig() fail. code=%#x", eglGetError());
185 eng_window_free(gw);
186 return NULL;
187 }
188 gw->egl_surface[0] = eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
189 (EGLNativeWindowType)gw->win,
190 NULL);
191 if (gw->egl_surface[0] == EGL_NO_SURFACE)
192 {
193 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
194 (unsigned int)gw->win, eglGetError());
195 eng_window_free(gw);
196 return NULL;
197 }
198 if (context == EGL_NO_CONTEXT)
199 context = eglCreateContext(gw->egl_disp, gw->egl_config, NULL,
200 context_attrs);
201 gw->egl_context[0] = context;
202 if (gw->egl_context[0] == EGL_NO_CONTEXT)
203 {
204 ERR("eglCreateContext() fail. code=%#x", eglGetError());
205 eng_window_free(gw);
206 return NULL;
207 }
208 if (eglMakeCurrent(gw->egl_disp,
209 gw->egl_surface[0],
210 gw->egl_surface[0],
211 gw->egl_context[0]) == EGL_FALSE)
212 {
213 ERR("eglMakeCurrent() fail. code=%#x", eglGetError());
214 eng_window_free(gw);
215 return NULL;
216 }
217
218 vendor = glGetString(GL_VENDOR);
219 renderer = glGetString(GL_RENDERER);
220 version = glGetString(GL_VERSION);
221 if (!vendor) vendor = (unsigned char *)"-UNKNOWN-";
222 if (!renderer) renderer = (unsigned char *)"-UNKNOWN-";
223 if (!version) version = (unsigned char *)"-UNKNOWN-";
224 if (getenv("EVAS_GL_INFO"))
225 {
226 fprintf(stderr, "vendor: %s\n", vendor);
227 fprintf(stderr, "renderer: %s\n", renderer);
228 fprintf(stderr, "version: %s\n", version);
229 }
230// GLX
231#else
232 if (!context)
233 {
234#ifdef NEWGL
235 if (indirect)
236 context = glXCreateNewContext(gw->disp, fbconf,
237 GLX_RGBA_TYPE, NULL,
238 GL_FALSE);
239 else
240 context = glXCreateNewContext(gw->disp, fbconf,
241 GLX_RGBA_TYPE, NULL,
242 GL_TRUE);
243#else
244 if (indirect)
245 context = glXCreateContext(gw->disp, gw->visualinfo, NULL, GL_FALSE);
246 else
247 context = glXCreateContext(gw->disp, gw->visualinfo, NULL, GL_TRUE);
248#endif
249 }
250#ifdef NEWGL
251 if ((gw->alpha) && (!rgba_context))
252 {
253 if (indirect)
254 rgba_context = glXCreateNewContext(gw->disp, rgba_fbconf,
255 GLX_RGBA_TYPE, context,
256 GL_FALSE);
257 else
258 rgba_context = glXCreateNewContext(gw->disp, rgba_fbconf,
259 GLX_RGBA_TYPE, context,
260 GL_TRUE);
261 }
262 if (gw->alpha)
263 gw->glxwin = glXCreateWindow(gw->disp, rgba_fbconf, gw->win, NULL);
264 else
265 gw->glxwin = glXCreateWindow(gw->disp, fbconf, gw->win, NULL);
266 if (!gw->glxwin)
267 {
268 eng_window_free(gw);
269 return NULL;
270 }
271
272 if (gw->alpha) gw->context = rgba_context;
273 else gw->context = context;
274#else
275 gw->context = context;
276#endif
277
278 if (!gw->context)
279 {
280 eng_window_free(gw);
281 return NULL;
282 }
283 if (gw->context)
284 {
285 int i, j, num;
286 GLXFBConfig *fbc;
287 int blacklist = 0;
288
289 if (gw->glxwin)
290 {
291 if (!glXMakeContextCurrent(gw->disp, gw->glxwin, gw->glxwin,
292 gw->context))
293 {
294 printf("Error: glXMakeContextCurrent(%p, %p, %p, %p)\n", (void *)gw->disp, (void *)gw->glxwin, (void *)gw->glxwin, (void *)gw->context);
295 eng_window_free(gw);
296 return NULL;
297 }
298 }
299 else
300 {
301 if (!glXMakeCurrent(gw->disp, gw->win, gw->context))
302 {
303 printf("Error: glXMakeCurrent(%p, 0x%x, %p) failed\n", (void *)gw->disp, (unsigned int)gw->win, (void *)gw->context);
304 eng_window_free(gw);
305 return NULL;
306 }
307 }
308
309 // FIXME: move this up to context creation
310
311 vendor = glGetString(GL_VENDOR);
312 renderer = glGetString(GL_RENDERER);
313 version = glGetString(GL_VERSION);
314 if (getenv("EVAS_GL_INFO"))
315 {
316 fprintf(stderr, "vendor: %s\n", vendor);
317 fprintf(stderr, "renderer: %s\n", renderer);
318 fprintf(stderr, "version: %s\n", version);
319 }
320 // examples:
321 // vendor: NVIDIA Corporation
322 // renderer: NVIDIA Tegra
323 // version: OpenGL ES 2.0
324 // or
325 // vendor: Imagination Technologies
326 // renderer: PowerVR SGX 540
327 // version: OpenGL ES 2.0
328 // or
329 // vendor: NVIDIA Corporation
330 // renderer: GeForce GT 330M/PCI/SSE2
331 // version: 3.3.0 NVIDIA 256.53
332 // or
333 // vendor: NVIDIA Corporation
334 // renderer: GeForce GT 220/PCI/SSE2
335 // version: 3.2.0 NVIDIA 195.36.24
336 // or
337 // vendor: NVIDIA Corporation
338 // renderer: GeForce 8600 GTS/PCI/SSE2
339 // version: 3.3.0 NVIDIA 260.19.36
340 // or
341 // vendor: ATI Technologies Inc.
342 // renderer: ATI Mobility Radeon HD 4650
343 // version: 3.2.9756 Compatibility Profile Context
344 // or
345 // vendor: Tungsten Graphics, Inc
346 // renderer: Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100330 DEVELOPMENT x86/MMX/SSE2
347 // version: 2.1 Mesa 7.9-devel
348 // or
349 // vendor: Advanced Micro Devices, Inc.
350 // renderer: Mesa DRI R600 (RS780 9610) 20090101 TCL DRI2
351 // version: 2.1 Mesa 7.9-devel
352 // or
353 // vendor: NVIDIA Corporation
354 // renderer: GeForce 9600 GT/PCI/SSE2
355 // version: 3.3.0 NVIDIA 260.19.29
356 // or
357 // vendor: ATI Technologies Inc.
358 // renderer: ATI Radeon HD 4800 Series
359 // version: 3.3.10237 Compatibility Profile Context
360 // or
361 // vendor: Advanced Micro Devices, Inc.
362 // renderer: Mesa DRI R600 (RV770 9442) 20090101 TCL DRI2
363 // version: 2.0 Mesa 7.8.2
364 // or
365 // vendor: Tungsten Graphics, Inc
366 // renderer: Mesa DRI Mobile Intel® GM45 Express Chipset GEM 20100330 DEVELOPMENT
367 // version: 2.1 Mesa 7.9-devel
368 // or (bad - software renderer)
369 // vendor: Mesa Project
370 // renderer: Software Rasterizer
371 // version: 2.1 Mesa 7.9-devel
372 // or (bad - software renderer)
373 // vendor: VMware, Inc.
374 // renderer: Gallium 0.4 on softpipe
375 // version: 2.1 Mesa 7.9-devel
376
377 if (strstr((const char *)vendor, "Mesa Project"))
378 {
379 if (strstr((const char *)renderer, "Software Rasterizer"))
380 blacklist = 1;
381 }
382 if (strstr((const char *)renderer, "softpipe"))
383 blacklist = 1;
384 if (blacklist)
385 {
386 ERR("OpenGL Driver blacklisted:");
387 ERR("Vendor: %s", (const char *)vendor);
388 ERR("Renderer: %s", (const char *)renderer);
389 ERR("Version: %s", (const char *)version);
390 eng_window_free(gw);
391 return NULL;
392 }
393 if (strstr((const char *)vendor, "NVIDIA"))
394 {
395 if (!strstr((const char *)renderer, "NVIDIA Tegra"))
396 {
397 int v1 = 0, v2 = 0, v3 = 0;
398
399 if (sscanf((const char *)version,
400 "%*s %*s %i.%i.%i",
401 &v1, &v2, &v3) != 3)
402 {
403 v1 = v2 = v3 = 0;
404 if (sscanf((const char *)version,
405 "%*s %*s %i.%i",
406 &v1, &v2) != 2)
407 v1 = 0;
408 }
409 // ALSO as of some nvidia driver version loose binding is
410 // probably not needed
411 if (v1 < 195) gw->detected.loose_binding = 1;
412 }
413 }
414 else
415 {
416 // noothing yet. add more cases and options over time
417 }
418
419 fbc = glXGetFBConfigs(gw->disp, screen, &num);
420 if (!fbc)
421 {
422 ERR("glXGetFBConfigs() returned no fb configs");
423 eng_window_free(gw);
424 return NULL;
425 }
426 for (i = 0; i <= 32; i++)
427 {
428 for (j = 0; j < num; j++)
429 {
430 XVisualInfo *vi;
431 int vd;
432 int alph, val, dbuf, stencil, tdepth;
433 int rgba;
434
435 vi = glXGetVisualFromFBConfig(gw->disp, fbc[j]);
436 if (!vi) continue;
437 vd = vi->depth;
438 XFree(vi);
439
440 if (vd != i) continue;
441
442 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_ALPHA_SIZE, &alph);
443 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_BUFFER_SIZE, &val);
444
445 if ((val != i) && ((val - alph) != i)) continue;
446
447 val = 0;
448 rgba = 0;
449
450 if (i == 32)
451 {
452 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_BIND_TO_TEXTURE_RGBA_EXT, &val);
453 if (val)
454 {
455 rgba = 1;
456 gw->depth_cfg[i].tex_format = GLX_TEXTURE_FORMAT_RGBA_EXT;
457 }
458 }
459 if (!val)
460 {
461 if (rgba) continue;
462 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_BIND_TO_TEXTURE_RGB_EXT, &val);
463 if (!val) continue;
464 gw->depth_cfg[i].tex_format = GLX_TEXTURE_FORMAT_RGB_EXT;
465 }
466
467 dbuf = 0x7fff;
468 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_DOUBLEBUFFER, &val);
469 if (val > dbuf) continue;
470 dbuf = val;
471
472 stencil = 0x7fff;
473 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_STENCIL_SIZE, &val);
474 if (val > stencil) continue;
475 stencil = val;
476
477 tdepth = 0x7fff;
478 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_DEPTH_SIZE, &val);
479 if (val > tdepth) continue;
480 tdepth = val;
481
482 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_BIND_TO_MIPMAP_TEXTURE_EXT, &val);
483 if (val < 0) continue;
484 gw->depth_cfg[i].mipmap = val;
485
486 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_Y_INVERTED_EXT, &val);
487 gw->depth_cfg[i].yinvert = val;
488
489 glXGetFBConfigAttrib(gw->disp, fbc[j], GLX_BIND_TO_TEXTURE_TARGETS_EXT, &val);
490 gw->depth_cfg[i].tex_target = val;
491
492 gw->depth_cfg[i].fbc = fbc[j];
493 }
494 }
495 XFree(fbc);
496 if (!gw->depth_cfg[DefaultDepth(gw->disp, screen)].fbc)
497 {
498 WRN("texture from pixmap not going to work");
499 }
500 }
501#endif
502
503 gw->gl_context = evas_gl_common_context_new();
504 if (!gw->gl_context)
505 {
506 eng_window_free(gw);
507 return NULL;
508 }
509#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
510 gw->gl_context->egldisp = gw->egl_disp;
511#endif
512 eng_window_use(gw);
513 evas_gl_common_context_resize(gw->gl_context, w, h, rot);
514 gw->surf = 1;
515 return gw;
516 indirect = 0;
517}
518
519void
520eng_window_free(Evas_GL_X11_Window *gw)
521{
522 int ref = 0;
523 win_count--;
524 eng_window_use(gw);
525 if (gw == _evas_gl_x11_window) _evas_gl_x11_window = NULL;
526 if (gw->gl_context)
527 {
528 ref = gw->gl_context->references - 1;
529 evas_gl_common_context_free(gw->gl_context);
530 }
531#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
532 if (gw->egl_surface[0] != EGL_NO_SURFACE)
533 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
534 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
535 if (ref == 0)
536 {
537 if (context) eglDestroyContext(gw->egl_disp, context);
538 eglTerminate(gw->egl_disp);
539 context = EGL_NO_CONTEXT;
540 }
541#else
542 if (gw->glxwin) glXDestroyWindow(gw->disp, gw->glxwin);
543 if (ref == 0)
544 {
545 if (context) glXDestroyContext(gw->disp, context);
546 if (rgba_context) glXDestroyContext(gw->disp, rgba_context);
547 context = 0;
548 rgba_context = 0;
549 fbconf = 0;
550 rgba_fbconf = 0;
551 }
552#endif
553 free(gw);
554}
555
556void
557eng_window_use(Evas_GL_X11_Window *gw)
558{
559 Eina_Bool force_use = EINA_FALSE;
560
561#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
562 if (_evas_gl_x11_window)
563 {
564 if ((eglGetCurrentContext() !=
565 _evas_gl_x11_window->egl_context[0]) ||
566 (eglGetCurrentSurface(EGL_READ) !=
567 _evas_gl_x11_window->egl_surface[0]) ||
568 (eglGetCurrentSurface(EGL_DRAW) !=
569 _evas_gl_x11_window->egl_surface[0]))
570 force_use = EINA_TRUE;
571 }
572#else
573 if (_evas_gl_x11_window)
574 {
575 if (glXGetCurrentContext() != _evas_gl_x11_window->context)
576 force_use = EINA_TRUE;
577 }
578#endif
579 if ((_evas_gl_x11_window != gw) || (force_use))
580 {
581 if (_evas_gl_x11_window)
582 {
583 evas_gl_common_context_use(_evas_gl_x11_window->gl_context);
584 evas_gl_common_context_flush(_evas_gl_x11_window->gl_context);
585 }
586 _evas_gl_x11_window = gw;
587 if (gw)
588 {
589// EGL / GLES
590#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
591 if (gw->egl_surface[0] != EGL_NO_SURFACE)
592 {
593 if (eglMakeCurrent(gw->egl_disp,
594 gw->egl_surface[0],
595 gw->egl_surface[0],
596 gw->egl_context[0]) == EGL_FALSE)
597 {
598 ERR("eglMakeCurrent() failed!");
599 }
600 }
601// GLX
602#else
603 if (gw->glxwin)
604 {
605 if (!glXMakeContextCurrent(gw->disp, gw->glxwin, gw->glxwin,
606 gw->context))
607 {
608 ERR("glXMakeContextCurrent(%p, %p, %p, %p)", (void *)gw->disp, (void *)gw->glxwin, (void *)gw->glxwin, (void *)gw->context);
609 }
610 }
611 else
612 {
613 if (!glXMakeCurrent(gw->disp, gw->win, gw->context))
614 {
615 ERR("glXMakeCurrent(%p, 0x%x, %p) failed", gw->disp, (unsigned int)gw->win, (void *)gw->context);
616 }
617 }
618#endif
619 }
620 }
621 if (gw) evas_gl_common_context_use(gw->gl_context);
622}
623
624void
625eng_window_unsurf(Evas_GL_X11_Window *gw)
626{
627 if (!gw->surf) return;
628 if (!getenv("EVAS_GL_WIN_RESURF")) return;
629 if (getenv("EVAS_GL_INFO"))
630 printf("unsurf %p\n", gw);
631#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
632 if (_evas_gl_x11_window)
633 evas_gl_common_context_flush(_evas_gl_x11_window->gl_context);
634 if (_evas_gl_x11_window == gw)
635 {
636 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
637 if (gw->egl_surface[0] != EGL_NO_SURFACE)
638 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
639 gw->egl_surface[0] = EGL_NO_SURFACE;
640 _evas_gl_x11_window = NULL;
641 }
642#else
643 if (gw->glxwin)
644 {
645 glXDestroyWindow(gw->disp, gw->glxwin);
646 }
647 else
648 {
649 }
650#endif
651 gw->surf = 0;
652}
653
654void
655eng_window_resurf(Evas_GL_X11_Window *gw)
656{
657 if (gw->surf) return;
658 if (getenv("EVAS_GL_INFO"))
659 printf("resurf %p\n", gw);
660#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
661 gw->egl_surface[0] = eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
662 (EGLNativeWindowType)gw->win,
663 NULL);
664 if (gw->egl_surface[0] == EGL_NO_SURFACE)
665 {
666 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
667 (unsigned int)gw->win, eglGetError());
668 return;
669 }
670 if (eglMakeCurrent(gw->egl_disp,
671 gw->egl_surface[0],
672 gw->egl_surface[0],
673 gw->egl_context[0]) == EGL_FALSE)
674 {
675 ERR("eglMakeCurrent() failed!");
676 }
677#else
678#ifdef NEWGL
679 if (gw->alpha)
680 gw->glxwin = glXCreateWindow(gw->disp, rgba_fbconf, gw->win, NULL);
681 else
682 gw->glxwin = glXCreateWindow(gw->disp, fbconf, gw->win, NULL);
683 if (!glXMakeContextCurrent(gw->disp, gw->glxwin, gw->glxwin,
684 gw->context))
685 {
686 ERR("glXMakeContextCurrent(%p, %p, %p, %p)", (void *)gw->disp, (void *)gw->glxwin, (void *)gw->glxwin, (void *)gw->context);
687 }
688#else
689 if (!glXMakeCurrent(gw->disp, gw->win, gw->context))
690 {
691 ERR("glXMakeCurrent(%p, 0x%x, %p) failed", (void *)gw->disp, (unsigned int)gw->win, (void *)gw->context);
692 }
693#endif
694#endif
695 gw->surf = 1;
696}
697
698Visual *
699eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo)
700{
701 if (!einfo) return NULL;
702 if (!einfo->info.display) return NULL;
703 if (!_evas_gl_x11_vi)
704 {
705 int alpha;
706
707// EGL / GLES
708#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
709 for (alpha = 0; alpha < 2; alpha++)
710 {
711 int depth = DefaultDepth(einfo->info.display,
712 einfo->info.screen);
713 if (alpha)
714 {
715 XVisualInfo *xvi, vi_in;
716 int nvi, i;
717 XRenderPictFormat *fmt;
718
719 vi_in.screen = einfo->info.screen;
720 vi_in.depth = 32;
721 vi_in.class = TrueColor;
722 xvi = XGetVisualInfo(einfo->info.display,
723 VisualScreenMask | VisualDepthMask |
724 VisualClassMask,
725 &vi_in, &nvi);
726 if (xvi)
727 {
728 for (i = 0; i < nvi; i++)
729 {
730 fmt = XRenderFindVisualFormat(einfo->info.display,
731 xvi[i].visual);
732 if ((fmt->type == PictTypeDirect) &&
733 (fmt->direct.alphaMask))
734 {
735 _evas_gl_x11_rgba_vi =
736 calloc(1, sizeof(XVisualInfo));
737 if (_evas_gl_x11_rgba_vi)
738 memcpy(_evas_gl_x11_rgba_vi,
739 &(xvi[i]), sizeof(XVisualInfo));
740 break;
741 }
742 }
743 XFree (xvi);
744 }
745 }
746 else
747 {
748 _evas_gl_x11_vi = calloc(1, sizeof(XVisualInfo));
749 XMatchVisualInfo(einfo->info.display,
750 einfo->info.screen, depth, TrueColor,
751 _evas_gl_x11_vi);
752 }
753 }
754// GLX
755#else
756 for (alpha = 0; alpha < 2; alpha++)
757 {
758 int config_attrs[40];
759 GLXFBConfig *configs = NULL, config = 0;
760 int i, num;
761
762 i = 0;
763 config_attrs[i++] = GLX_DRAWABLE_TYPE;
764 config_attrs[i++] = GLX_WINDOW_BIT;
765 config_attrs[i++] = GLX_DOUBLEBUFFER;
766 config_attrs[i++] = 1;
767 config_attrs[i++] = GLX_RED_SIZE;
768 config_attrs[i++] = 1;
769 config_attrs[i++] = GLX_GREEN_SIZE;
770 config_attrs[i++] =1;
771 config_attrs[i++] = GLX_BLUE_SIZE;
772 config_attrs[i++] = 1;
773 if (alpha)
774 {
775 config_attrs[i++] = GLX_RENDER_TYPE;
776 config_attrs[i++] = GLX_RGBA_BIT;
777 config_attrs[i++] = GLX_ALPHA_SIZE;
778 config_attrs[i++] = 1;
779 }
780 else
781 {
782 config_attrs[i++] = GLX_ALPHA_SIZE;
783 config_attrs[i++] = 0;
784 }
785 config_attrs[i++] = GLX_DEPTH_SIZE;
786 config_attrs[i++] = 0;
787 config_attrs[i++] = GLX_STENCIL_SIZE;
788 config_attrs[i++] = 0;
789 config_attrs[i++] = GLX_AUX_BUFFERS;
790 config_attrs[i++] = 0;
791 config_attrs[i++] = GLX_STEREO;
792 config_attrs[i++] = 0;
793 config_attrs[i++] = GLX_TRANSPARENT_TYPE;
794 config_attrs[i++] = GLX_NONE;//GLX_NONE;//GLX_TRANSPARENT_INDEX//GLX_TRANSPARENT_RGB;
795 config_attrs[i++] = 0;
796
797 configs = glXChooseFBConfig(einfo->info.display,
798 einfo->info.screen,
799 config_attrs, &num);
800 if ((!configs) || (num < 1))
801 {
802 ERR("glXChooseFBConfig returned no configs");
803 return NULL;
804 }
805 for (i = 0; i < num; i++)
806 {
807 XVisualInfo *visinfo;
808 XRenderPictFormat *format = NULL;
809
810 visinfo = glXGetVisualFromFBConfig(einfo->info.display,
811 configs[i]);
812 if (!visinfo) continue;
813 if (!alpha)
814 {
815 config = configs[i];
816 _evas_gl_x11_vi = malloc(sizeof(XVisualInfo));
817 memcpy(_evas_gl_x11_vi, visinfo, sizeof(XVisualInfo));
818 fbconf = config;
819 XFree(visinfo);
820 break;
821 }
822 else
823 {
824 format = XRenderFindVisualFormat
825 (einfo->info.display, visinfo->visual);
826 if (!format)
827 {
828 XFree(visinfo);
829 continue;
830 }
831 if (format->direct.alphaMask > 0)
832 {
833 config = configs[i];
834 _evas_gl_x11_rgba_vi = malloc(sizeof(XVisualInfo));
835 memcpy(_evas_gl_x11_rgba_vi, visinfo, sizeof(XVisualInfo));
836 rgba_fbconf = config;
837 XFree(visinfo);
838 break;
839 }
840 }
841 XFree(visinfo);
842 }
843 }
844#endif
845 }
846 if (!_evas_gl_x11_vi) return NULL;
847 if (einfo->info.destination_alpha)
848 {
849// EGL / GLES
850#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
851 if (_evas_gl_x11_rgba_vi) return _evas_gl_x11_rgba_vi->visual;
852#else
853//# ifdef NEWGL
854 if (_evas_gl_x11_rgba_vi) return _evas_gl_x11_rgba_vi->visual;
855//# endif
856#endif
857 }
858 return _evas_gl_x11_vi->visual;
859}
860
861Colormap
862eng_best_colormap_get(Evas_Engine_Info_GL_X11 *einfo)
863{
864 if (!einfo) return 0;
865 if (!einfo->info.display) return 0;
866 if (!_evas_gl_x11_vi) eng_best_visual_get(einfo);
867 if (!_evas_gl_x11_vi) return 0;
868 if (einfo->info.destination_alpha)
869 {
870 if (!_evas_gl_x11_rgba_cmap)
871 _evas_gl_x11_rgba_cmap =
872 XCreateColormap(einfo->info.display,
873 RootWindow(einfo->info.display,
874 einfo->info.screen),
875 _evas_gl_x11_rgba_vi->visual,
876 0);
877 return _evas_gl_x11_rgba_cmap;
878 }
879 if (!_evas_gl_x11_cmap)
880 _evas_gl_x11_cmap =
881 XCreateColormap(einfo->info.display,
882 RootWindow(einfo->info.display,
883 einfo->info.screen),
884 _evas_gl_x11_vi->visual,
885 0);
886 return _evas_gl_x11_cmap;
887}
888
889int
890eng_best_depth_get(Evas_Engine_Info_GL_X11 *einfo)
891{
892 if (!einfo) return 0;
893 if (!einfo->info.display) return 0;
894 if (!_evas_gl_x11_vi) eng_best_visual_get(einfo);
895 if (!_evas_gl_x11_vi) return 0;
896 if (einfo->info.destination_alpha)
897 {
898 if (_evas_gl_x11_rgba_vi) return _evas_gl_x11_rgba_vi->depth;
899 }
900 return _evas_gl_x11_vi->depth;
901}
diff --git a/libraries/evas/src/modules/engines/psl1ght/Evas_Engine_PSL1GHT.h b/libraries/evas/src/modules/engines/psl1ght/Evas_Engine_PSL1GHT.h
deleted file mode 100644
index f1d5636..0000000
--- a/libraries/evas/src/modules/engines/psl1ght/Evas_Engine_PSL1GHT.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#ifndef _EVAS_ENGINE_PSL1GHT_H
2#define _EVAS_ENGINE_PSL1GHT_H
3
4typedef struct _Evas_Engine_Info_PSL1GHT Evas_Engine_Info_PSL1GHT;
5
6struct _Evas_Engine_Info_PSL1GHT
7{
8 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
9 /* at you and make nasty noises */
10 Evas_Engine_Info magic;
11
12 /* non-blocking or blocking mode */
13 Evas_Engine_Render_Mode render_mode;
14};
15#endif
16
diff --git a/libraries/evas/src/modules/engines/psl1ght/Makefile.am b/libraries/evas/src/modules/engines/psl1ght/Makefile.am
deleted file mode 100644
index 92ccea7..0000000
--- a/libraries/evas/src/modules/engines/psl1ght/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@evas_engine_psl1ght_cflags@
13
14if BUILD_ENGINE_PSL1GHT
15
16PSL1GHT_SOURCES = \
17evas_engine.c \
18rsxutil.c
19
20PSL1GHT_LIBADD = @evas_engine_psl1ght_libs@
21
22
23includes_HEADERS = Evas_Engine_PSL1GHT.h
24includesdir = $(includedir)/evas-@VMAJ@
25
26if !EVAS_STATIC_BUILD_PSL1GHT
27
28pkgdir = $(libdir)/evas/modules/engines/psl1ght/$(MODULE_ARCH)
29pkg_LTLIBRARIES = module.la
30module_la_SOURCES = $(PSL1GHT_SOURCES)
31module_la_LIBADD = @EINA_LIBS@ $(PSL1GHT_LIBADD) $(top_builddir)/src/lib/libevas.la
32module_la_LDFLAGS = -module -avoid-version
33module_la_LIBTOOLFLAGS = --tag=disable-static
34
35else
36
37noinst_LTLIBRARIES = libevas_engine_psl1ght.la
38
39libevas_engine_psl1ght_la_SOURCES = $(PSL1GHT_SOURCES)
40libevas_engine_psl1ght_la_LIBADD = $(PSL1GHT_LIBADD)
41
42endif
43endif
44
45EXTRA_DIST = \
46evas_engine.h \
47rsxutil.h
diff --git a/libraries/evas/src/modules/engines/psl1ght/Makefile.in b/libraries/evas/src/modules/engines/psl1ght/Makefile.in
deleted file mode 100644
index 9593d02..0000000
--- a/libraries/evas/src/modules/engines/psl1ght/Makefile.in
+++ /dev/null
@@ -1,814 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/psl1ght
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_TRUE@libevas_engine_psl1ght_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_psl1ght_la_SOURCES_DIST = evas_engine.c rsxutil.c
87@BUILD_ENGINE_PSL1GHT_TRUE@am__objects_1 = evas_engine.lo rsxutil.lo
88@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_TRUE@am_libevas_engine_psl1ght_la_OBJECTS = $(am__objects_1)
89libevas_engine_psl1ght_la_OBJECTS = \
90 $(am_libevas_engine_psl1ght_la_OBJECTS)
91AM_V_lt = $(am__v_lt_$(V))
92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
93am__v_lt_0 = --silent
94@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_TRUE@am_libevas_engine_psl1ght_la_rpath =
95@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
96@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@ $(top_builddir)/src/lib/libevas.la
97am__module_la_SOURCES_DIST = evas_engine.c rsxutil.c
98@BUILD_ENGINE_PSL1GHT_TRUE@am__objects_2 = module_la-evas_engine.lo \
99@BUILD_ENGINE_PSL1GHT_TRUE@ module_la-rsxutil.lo
100@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@am_module_la_OBJECTS = $(am__objects_2)
101module_la_OBJECTS = $(am_module_la_OBJECTS)
102module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
103 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
104 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
105@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@am_module_la_rpath = -rpath \
106@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@ $(pkgdir)
107DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
108depcomp = $(SHELL) $(top_srcdir)/depcomp
109am__depfiles_maybe = depfiles
110am__mv = mv -f
111COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
112 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
113LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
114 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
115 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
116 $(AM_CFLAGS) $(CFLAGS)
117AM_V_CC = $(am__v_CC_$(V))
118am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
119am__v_CC_0 = @echo " CC " $@;
120AM_V_at = $(am__v_at_$(V))
121am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
122am__v_at_0 = @
123CCLD = $(CC)
124LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
125 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
126 $(AM_LDFLAGS) $(LDFLAGS) -o $@
127AM_V_CCLD = $(am__v_CCLD_$(V))
128am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
129am__v_CCLD_0 = @echo " CCLD " $@;
130AM_V_GEN = $(am__v_GEN_$(V))
131am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
132am__v_GEN_0 = @echo " GEN " $@;
133SOURCES = $(libevas_engine_psl1ght_la_SOURCES) $(module_la_SOURCES)
134DIST_SOURCES = $(am__libevas_engine_psl1ght_la_SOURCES_DIST) \
135 $(am__module_la_SOURCES_DIST)
136am__includes_HEADERS_DIST = Evas_Engine_PSL1GHT.h
137HEADERS = $(includes_HEADERS)
138ETAGS = etags
139CTAGS = ctags
140DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
141ACLOCAL = @ACLOCAL@
142ALLOCA = @ALLOCA@
143AMTAR = @AMTAR@
144AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
145AR = @AR@
146AS = @AS@
147AUTOCONF = @AUTOCONF@
148AUTOHEADER = @AUTOHEADER@
149AUTOMAKE = @AUTOMAKE@
150AWK = @AWK@
151CC = @CC@
152CCDEPMODE = @CCDEPMODE@
153CFLAGS = @CFLAGS@
154CHECK_CFLAGS = @CHECK_CFLAGS@
155CHECK_LIBS = @CHECK_LIBS@
156CPP = @CPP@
157CPPFLAGS = @CPPFLAGS@
158CXX = @CXX@
159CXXCPP = @CXXCPP@
160CXXDEPMODE = @CXXDEPMODE@
161CXXFLAGS = @CXXFLAGS@
162CYGPATH_W = @CYGPATH_W@
163DEFS = @DEFS@
164DEPDIR = @DEPDIR@
165DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
166DIRECTFB_LIBS = @DIRECTFB_LIBS@
167DLLTOOL = @DLLTOOL@
168DSYMUTIL = @DSYMUTIL@
169DUMPBIN = @DUMPBIN@
170ECHO_C = @ECHO_C@
171ECHO_N = @ECHO_N@
172ECHO_T = @ECHO_T@
173ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
174ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
175EDB_CFLAGS = @EDB_CFLAGS@
176EDB_LIBS = @EDB_LIBS@
177EDJE_CFLAGS = @EDJE_CFLAGS@
178EDJE_LIBS = @EDJE_LIBS@
179EET_CFLAGS = @EET_CFLAGS@
180EET_LIBS = @EET_LIBS@
181EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
182EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
183EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
184EGREP = @EGREP@
185EINA_CFLAGS = @EINA_CFLAGS@
186EINA_LIBS = @EINA_LIBS@
187EVAS_CFLAGS = @EVAS_CFLAGS@
188EVAS_LIBS = @EVAS_LIBS@
189EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
190EVIL_CFLAGS = @EVIL_CFLAGS@
191EVIL_LIBS = @EVIL_LIBS@
192EXEEXT = @EXEEXT@
193EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
194EXOTIC_LIBS = @EXOTIC_LIBS@
195FGREP = @FGREP@
196FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
197FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
198FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
199FREETYPE_LIBS = @FREETYPE_LIBS@
200FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
201FRIBIDI_LIBS = @FRIBIDI_LIBS@
202GL_EET_CFLAGS = @GL_EET_CFLAGS@
203GL_EET_LIBS = @GL_EET_LIBS@
204GREP = @GREP@
205HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
206HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
207INSTALL = @INSTALL@
208INSTALL_DATA = @INSTALL_DATA@
209INSTALL_PROGRAM = @INSTALL_PROGRAM@
210INSTALL_SCRIPT = @INSTALL_SCRIPT@
211INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
212LD = @LD@
213LDFLAGS = @LDFLAGS@
214LIBOBJS = @LIBOBJS@
215LIBS = @LIBS@
216LIBTOOL = @LIBTOOL@
217LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
218LINEBREAK_LIBS = @LINEBREAK_LIBS@
219LIPO = @LIPO@
220LN_S = @LN_S@
221LTLIBOBJS = @LTLIBOBJS@
222MAKEINFO = @MAKEINFO@
223MKDIR_P = @MKDIR_P@
224MODULE_ARCH = @MODULE_ARCH@
225NM = @NM@
226NMEDIT = @NMEDIT@
227OBJC = @OBJC@
228OBJCDEPMODE = @OBJCDEPMODE@
229OBJCFLAGS = @OBJCFLAGS@
230OBJDUMP = @OBJDUMP@
231OBJEXT = @OBJEXT@
232OTOOL = @OTOOL@
233OTOOL64 = @OTOOL64@
234PACKAGE = @PACKAGE@
235PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
236PACKAGE_NAME = @PACKAGE_NAME@
237PACKAGE_STRING = @PACKAGE_STRING@
238PACKAGE_TARNAME = @PACKAGE_TARNAME@
239PACKAGE_URL = @PACKAGE_URL@
240PACKAGE_VERSION = @PACKAGE_VERSION@
241PATH_SEPARATOR = @PATH_SEPARATOR@
242PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
243PIXMAN_LIBS = @PIXMAN_LIBS@
244PKG_CONFIG = @PKG_CONFIG@
245PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
246PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
247PNG_CFLAGS = @PNG_CFLAGS@
248PNG_LIBS = @PNG_LIBS@
249RANLIB = @RANLIB@
250SDL_CFLAGS = @SDL_CFLAGS@
251SDL_LIBS = @SDL_LIBS@
252SED = @SED@
253SET_MAKE = @SET_MAKE@
254SHELL = @SHELL@
255SHM_OPEN_LINK = @SHM_OPEN_LINK@
256STRIP = @STRIP@
257SVG_CFLAGS = @SVG_CFLAGS@
258SVG_LIBS = @SVG_LIBS@
259VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
260VALGRIND_LIBS = @VALGRIND_LIBS@
261VERSION = @VERSION@
262VMAJ = @VMAJ@
263WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
264WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
265XCB_CFLAGS = @XCB_CFLAGS@
266XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
267XCB_GL_LIBS = @XCB_GL_LIBS@
268XCB_LIBS = @XCB_LIBS@
269XEXT_CFLAGS = @XEXT_CFLAGS@
270XEXT_LIBS = @XEXT_LIBS@
271XMKMF = @XMKMF@
272X_CFLAGS = @X_CFLAGS@
273X_EXTRA_LIBS = @X_EXTRA_LIBS@
274X_LIBS = @X_LIBS@
275X_PRE_LIBS = @X_PRE_LIBS@
276abs_builddir = @abs_builddir@
277abs_srcdir = @abs_srcdir@
278abs_top_builddir = @abs_top_builddir@
279abs_top_srcdir = @abs_top_srcdir@
280ac_ct_CC = @ac_ct_CC@
281ac_ct_CXX = @ac_ct_CXX@
282ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
283ac_ct_OBJC = @ac_ct_OBJC@
284altivec_cflags = @altivec_cflags@
285am__include = @am__include@
286am__leading_dot = @am__leading_dot@
287am__quote = @am__quote@
288am__tar = @am__tar@
289am__untar = @am__untar@
290bindir = @bindir@
291build = @build@
292build_alias = @build_alias@
293build_cpu = @build_cpu@
294build_os = @build_os@
295build_vendor = @build_vendor@
296builddir = @builddir@
297datadir = @datadir@
298datarootdir = @datarootdir@
299dlopen_libs = @dlopen_libs@
300docdir = @docdir@
301dvidir = @dvidir@
302edje_cc = @edje_cc@
303efl_doxygen = @efl_doxygen@
304efl_have_doxygen = @efl_have_doxygen@
305evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
306evas_engine_buffer_libs = @evas_engine_buffer_libs@
307evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
308evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
309evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
310evas_engine_directfb_libs = @evas_engine_directfb_libs@
311evas_engine_fb_cflags = @evas_engine_fb_cflags@
312evas_engine_fb_libs = @evas_engine_fb_libs@
313evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
314evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
315evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
316evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
317evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
318evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
319evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
320evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
321evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
322evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
323evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
324evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
325evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
326evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
327evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
328evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
329evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
330evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
331evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
332evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
333evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
334evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
335evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
336evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
337evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
338evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
339evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
340evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
341evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
342evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
343evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
344evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
345evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
346evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
349evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
350evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
351evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
352evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
353evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
354evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
355evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
356evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
357evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
358evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
359evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
360evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
361evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
362evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
363evas_image_loader_png_libs = @evas_image_loader_png_libs@
364evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
365evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
366evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
367evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
368evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
369evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
370evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
371evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
372evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
373evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
374evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
375evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
376exec_prefix = @exec_prefix@
377have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
378have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
379have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
380have_evas_engine_software_x11 = @have_evas_engine_software_x11@
381have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
382have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
383have_lcov = @have_lcov@
384host = @host@
385host_alias = @host_alias@
386host_cpu = @host_cpu@
387host_os = @host_os@
388host_vendor = @host_vendor@
389htmldir = @htmldir@
390includedir = @includedir@
391infodir = @infodir@
392install_sh = @install_sh@
393libdir = @libdir@
394libexecdir = @libexecdir@
395localedir = @localedir@
396localstatedir = @localstatedir@
397lt_ECHO = @lt_ECHO@
398lt_enable_auto_import = @lt_enable_auto_import@
399mandir = @mandir@
400mkdir_p = @mkdir_p@
401oldincludedir = @oldincludedir@
402pdfdir = @pdfdir@
403pkgconfig_requires_private = @pkgconfig_requires_private@
404prefix = @prefix@
405program_transform_name = @program_transform_name@
406psdir = @psdir@
407pthread_cflags = @pthread_cflags@
408pthread_libs = @pthread_libs@
409release_info = @release_info@
410requirement_evas = @requirement_evas@
411sbindir = @sbindir@
412sharedstatedir = @sharedstatedir@
413srcdir = @srcdir@
414sysconfdir = @sysconfdir@
415target_alias = @target_alias@
416top_build_prefix = @top_build_prefix@
417top_builddir = @top_builddir@
418top_srcdir = @top_srcdir@
419version_info = @version_info@
420MAINTAINERCLEANFILES = Makefile.in
421AM_CPPFLAGS = \
422-I. \
423-I$(top_srcdir)/src/lib \
424-I$(top_srcdir)/src/lib/include \
425-I$(top_srcdir)/src/modules/engines \
426@FREETYPE_CFLAGS@ \
427@PIXMAN_CFLAGS@ \
428@EINA_CFLAGS@ \
429@evas_engine_psl1ght_cflags@
430
431@BUILD_ENGINE_PSL1GHT_TRUE@PSL1GHT_SOURCES = \
432@BUILD_ENGINE_PSL1GHT_TRUE@evas_engine.c \
433@BUILD_ENGINE_PSL1GHT_TRUE@rsxutil.c
434
435@BUILD_ENGINE_PSL1GHT_TRUE@PSL1GHT_LIBADD = @evas_engine_psl1ght_libs@
436@BUILD_ENGINE_PSL1GHT_TRUE@includes_HEADERS = Evas_Engine_PSL1GHT.h
437@BUILD_ENGINE_PSL1GHT_TRUE@includesdir = $(includedir)/evas-@VMAJ@
438@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@pkgdir = $(libdir)/evas/modules/engines/psl1ght/$(MODULE_ARCH)
439@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@pkg_LTLIBRARIES = module.la
440@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@module_la_SOURCES = $(PSL1GHT_SOURCES)
441@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@module_la_LIBADD = @EINA_LIBS@ $(PSL1GHT_LIBADD) $(top_builddir)/src/lib/libevas.la
442@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@module_la_LDFLAGS = -module -avoid-version
443@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
444@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_TRUE@noinst_LTLIBRARIES = libevas_engine_psl1ght.la
445@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_TRUE@libevas_engine_psl1ght_la_SOURCES = $(PSL1GHT_SOURCES)
446@BUILD_ENGINE_PSL1GHT_TRUE@@EVAS_STATIC_BUILD_PSL1GHT_TRUE@libevas_engine_psl1ght_la_LIBADD = $(PSL1GHT_LIBADD)
447EXTRA_DIST = \
448evas_engine.h \
449rsxutil.h
450
451all: all-am
452
453.SUFFIXES:
454.SUFFIXES: .c .lo .o .obj
455$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
456 @for dep in $?; do \
457 case '$(am__configure_deps)' in \
458 *$$dep*) \
459 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
460 && { if test -f $@; then exit 0; else break; fi; }; \
461 exit 1;; \
462 esac; \
463 done; \
464 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/psl1ght/Makefile'; \
465 $(am__cd) $(top_srcdir) && \
466 $(AUTOMAKE) --gnu src/modules/engines/psl1ght/Makefile
467.PRECIOUS: Makefile
468Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
469 @case '$?' in \
470 *config.status*) \
471 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
472 *) \
473 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
474 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
475 esac;
476
477$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
478 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
479
480$(top_srcdir)/configure: $(am__configure_deps)
481 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
482$(ACLOCAL_M4): $(am__aclocal_m4_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(am__aclocal_m4_deps):
485
486clean-noinstLTLIBRARIES:
487 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
488 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
489 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
490 test "$$dir" != "$$p" || dir=.; \
491 echo "rm -f \"$${dir}/so_locations\""; \
492 rm -f "$${dir}/so_locations"; \
493 done
494install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
495 @$(NORMAL_INSTALL)
496 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
497 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
498 list2=; for p in $$list; do \
499 if test -f $$p; then \
500 list2="$$list2 $$p"; \
501 else :; fi; \
502 done; \
503 test -z "$$list2" || { \
504 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
505 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
506 }
507
508uninstall-pkgLTLIBRARIES:
509 @$(NORMAL_UNINSTALL)
510 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
511 for p in $$list; do \
512 $(am__strip_dir) \
513 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
514 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
515 done
516
517clean-pkgLTLIBRARIES:
518 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
519 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
520 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
521 test "$$dir" != "$$p" || dir=.; \
522 echo "rm -f \"$${dir}/so_locations\""; \
523 rm -f "$${dir}/so_locations"; \
524 done
525libevas_engine_psl1ght.la: $(libevas_engine_psl1ght_la_OBJECTS) $(libevas_engine_psl1ght_la_DEPENDENCIES)
526 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_psl1ght_la_rpath) $(libevas_engine_psl1ght_la_OBJECTS) $(libevas_engine_psl1ght_la_LIBADD) $(LIBS)
527module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
529
530mostlyclean-compile:
531 -rm -f *.$(OBJEXT)
532
533distclean-compile:
534 -rm -f *.tab.c
535
536@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
537@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-rsxutil.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rsxutil.Plo@am__quote@
540
541.c.o:
542@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
543@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
544@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
545@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
546@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
547@am__fastdepCC_FALSE@ $(COMPILE) -c $<
548
549.c.obj:
550@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
551@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
552@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
553@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
554@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
555@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
556
557.c.lo:
558@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
559@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
560@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
561@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
562@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
563@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
564
565module_la-evas_engine.lo: evas_engine.c
566@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
567@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
568@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
569@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
570@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
571@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
572
573module_la-rsxutil.lo: rsxutil.c
574@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-rsxutil.lo -MD -MP -MF $(DEPDIR)/module_la-rsxutil.Tpo -c -o module_la-rsxutil.lo `test -f 'rsxutil.c' || echo '$(srcdir)/'`rsxutil.c
575@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-rsxutil.Tpo $(DEPDIR)/module_la-rsxutil.Plo
576@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
577@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rsxutil.c' object='module_la-rsxutil.lo' libtool=yes @AMDEPBACKSLASH@
578@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
579@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-rsxutil.lo `test -f 'rsxutil.c' || echo '$(srcdir)/'`rsxutil.c
580
581mostlyclean-libtool:
582 -rm -f *.lo
583
584clean-libtool:
585 -rm -rf .libs _libs
586install-includesHEADERS: $(includes_HEADERS)
587 @$(NORMAL_INSTALL)
588 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
589 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
590 for p in $$list; do \
591 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
592 echo "$$d$$p"; \
593 done | $(am__base_list) | \
594 while read files; do \
595 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
596 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
597 done
598
599uninstall-includesHEADERS:
600 @$(NORMAL_UNINSTALL)
601 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
602 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
603 test -n "$$files" || exit 0; \
604 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
605 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
606
607ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
608 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
609 unique=`for i in $$list; do \
610 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
611 done | \
612 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
613 END { if (nonempty) { for (i in files) print i; }; }'`; \
614 mkid -fID $$unique
615tags: TAGS
616
617TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
618 $(TAGS_FILES) $(LISP)
619 set x; \
620 here=`pwd`; \
621 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
622 unique=`for i in $$list; do \
623 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
624 done | \
625 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
626 END { if (nonempty) { for (i in files) print i; }; }'`; \
627 shift; \
628 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
629 test -n "$$unique" || unique=$$empty_fix; \
630 if test $$# -gt 0; then \
631 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
632 "$$@" $$unique; \
633 else \
634 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
635 $$unique; \
636 fi; \
637 fi
638ctags: CTAGS
639CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
640 $(TAGS_FILES) $(LISP)
641 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
642 unique=`for i in $$list; do \
643 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
644 done | \
645 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
646 END { if (nonempty) { for (i in files) print i; }; }'`; \
647 test -z "$(CTAGS_ARGS)$$unique" \
648 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
649 $$unique
650
651GTAGS:
652 here=`$(am__cd) $(top_builddir) && pwd` \
653 && $(am__cd) $(top_srcdir) \
654 && gtags -i $(GTAGS_ARGS) "$$here"
655
656distclean-tags:
657 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
658
659distdir: $(DISTFILES)
660 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
661 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
662 list='$(DISTFILES)'; \
663 dist_files=`for file in $$list; do echo $$file; done | \
664 sed -e "s|^$$srcdirstrip/||;t" \
665 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
666 case $$dist_files in \
667 */*) $(MKDIR_P) `echo "$$dist_files" | \
668 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
669 sort -u` ;; \
670 esac; \
671 for file in $$dist_files; do \
672 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
673 if test -d $$d/$$file; then \
674 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
675 if test -d "$(distdir)/$$file"; then \
676 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
677 fi; \
678 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
679 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
680 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
681 fi; \
682 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
683 else \
684 test -f "$(distdir)/$$file" \
685 || cp -p $$d/$$file "$(distdir)/$$file" \
686 || exit 1; \
687 fi; \
688 done
689check-am: all-am
690check: check-am
691all-am: Makefile $(LTLIBRARIES) $(HEADERS)
692installdirs:
693 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
694 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
695 done
696install: install-am
697install-exec: install-exec-am
698install-data: install-data-am
699uninstall: uninstall-am
700
701install-am: all-am
702 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
703
704installcheck: installcheck-am
705install-strip:
706 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
707 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
708 `test -z '$(STRIP)' || \
709 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
710mostlyclean-generic:
711
712clean-generic:
713
714distclean-generic:
715 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
716 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
717
718maintainer-clean-generic:
719 @echo "This command is intended for maintainers to use"
720 @echo "it deletes files that may require special tools to rebuild."
721 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
722clean: clean-am
723
724clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
725 clean-pkgLTLIBRARIES mostlyclean-am
726
727distclean: distclean-am
728 -rm -rf ./$(DEPDIR)
729 -rm -f Makefile
730distclean-am: clean-am distclean-compile distclean-generic \
731 distclean-tags
732
733dvi: dvi-am
734
735dvi-am:
736
737html: html-am
738
739html-am:
740
741info: info-am
742
743info-am:
744
745install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
746
747install-dvi: install-dvi-am
748
749install-dvi-am:
750
751install-exec-am:
752
753install-html: install-html-am
754
755install-html-am:
756
757install-info: install-info-am
758
759install-info-am:
760
761install-man:
762
763install-pdf: install-pdf-am
764
765install-pdf-am:
766
767install-ps: install-ps-am
768
769install-ps-am:
770
771installcheck-am:
772
773maintainer-clean: maintainer-clean-am
774 -rm -rf ./$(DEPDIR)
775 -rm -f Makefile
776maintainer-clean-am: distclean-am maintainer-clean-generic
777
778mostlyclean: mostlyclean-am
779
780mostlyclean-am: mostlyclean-compile mostlyclean-generic \
781 mostlyclean-libtool
782
783pdf: pdf-am
784
785pdf-am:
786
787ps: ps-am
788
789ps-am:
790
791uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
792
793.MAKE: install-am install-strip
794
795.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
796 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
797 ctags distclean distclean-compile distclean-generic \
798 distclean-libtool distclean-tags distdir dvi dvi-am html \
799 html-am info info-am install install-am install-data \
800 install-data-am install-dvi install-dvi-am install-exec \
801 install-exec-am install-html install-html-am \
802 install-includesHEADERS install-info install-info-am \
803 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
804 install-ps install-ps-am install-strip installcheck \
805 installcheck-am installdirs maintainer-clean \
806 maintainer-clean-generic mostlyclean mostlyclean-compile \
807 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
808 tags uninstall uninstall-am uninstall-includesHEADERS \
809 uninstall-pkgLTLIBRARIES
810
811
812# Tell versions [3.59,3.63) of GNU make to not export all variables.
813# Otherwise a system limit (for SysV at least) may be exceeded.
814.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/psl1ght/evas_engine.c b/libraries/evas/src/modules/engines/psl1ght/evas_engine.c
deleted file mode 100644
index 750c098..0000000
--- a/libraries/evas/src/modules/engines/psl1ght/evas_engine.c
+++ /dev/null
@@ -1,511 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "rsxutil.h"
5#include "Evas_Engine_PSL1GHT.h"
6
7#include <malloc.h>
8
9int _evas_engine_psl1ght_log_dom = -1;
10
11/* function tables - filled in later (func and parent func) */
12static Evas_Func func, pfunc;
13
14/* engine struct data */
15typedef struct _Render_Engine Render_Engine;
16
17#define MAX_BUFFERS 2
18
19struct _Render_Engine
20{
21 Tilebuf *tb;
22 Tilebuf_Rect *rects;
23 Eina_Inlist *cur_rect;
24
25 /* RSX device context */
26 gcmContextData *context;
27 void *host_addr;
28
29 /* The buffers we will be drawing into. */
30 rsxBuffer buffers[MAX_BUFFERS];
31 int currentBuffer;
32 int width;
33 int height;
34 RGBA_Image *rgba_image;
35 uint32_t rgba_image_offset;
36
37 int end : 1;
38};
39
40/* prototypes we will use here */
41static void *_output_setup(int w, int h);
42
43static void *eng_info(Evas *e);
44static void
45 eng_info_free(Evas *e, void *info);
46static int
47 eng_setup(Evas *e, void *info);
48static void
49 eng_output_free(void *data);
50static void
51 eng_output_resize(void *data, int w, int h);
52static void
53 eng_output_tile_size_set(void *data, int w, int h);
54static void
55 eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
56static void
57 eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
58static void
59 eng_output_redraws_clear(void *data);
60static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
61static void
62 eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
63static void
64 eng_output_flush(void *data);
65static void
66 eng_output_idle_flush(void *data);
67
68/* internal engine routines */
69static void *
70_output_setup(int w, int h)
71{
72 Render_Engine *re;
73 int i;
74 u16 width, height;
75 DATA32 *image_data = NULL;
76 int image_size;
77
78 printf ("_output_setup called : %dx%d\n", w, h);
79 re = calloc(1, sizeof(Render_Engine));
80 if (!re)
81 return NULL;
82
83 /* Allocate a 1Mb buffer, alligned to a 1Mb boundary
84 * to be our shared IO memory with the RSX. */
85 re->host_addr = memalign (1024 * 1024, HOST_SIZE);
86 if (re->host_addr == NULL)
87 {
88 free (re);
89 return NULL;
90 }
91 re->context = initScreen (re->host_addr, HOST_SIZE);
92 if (re->context == NULL)
93 {
94 free (re->host_addr);
95 free (re);
96 return NULL;
97 }
98 width = w;
99 height = h;
100 setResolution (re->context, &width, &height);
101 re->currentBuffer = 0;
102 re->width = width;
103 re->height = height;
104
105 for (i = 0; i < MAX_BUFFERS; i++)
106 makeBuffer (&re->buffers[i], width, height, i);
107
108 flipBuffer(re->context, MAX_BUFFERS - 1);
109
110 /* if we haven't initialized - init (automatic abort if already done) */
111 evas_common_cpu_init();
112 evas_common_blend_init();
113 evas_common_image_init();
114 evas_common_convert_init();
115 evas_common_scale_init();
116 evas_common_rectangle_init();
117 evas_common_polygon_init();
118 evas_common_line_init();
119 evas_common_font_init();
120 evas_common_draw_init();
121 evas_common_tilebuf_init();
122
123 re->tb = evas_common_tilebuf_new(w, h);
124
125 /* in preliminary tests 16x16 gave highest framerates */
126 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
127
128 /* Allocate our memaligned backbuffer */
129 image_size = ((w * h * sizeof(u32)) + 0xfffff) & - 0x100000;
130 image_data = memalign (1024 * 1024, image_size);
131 re->rgba_image = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
132 w, h, image_data, 1, EVAS_COLORSPACE_ARGB8888);
133 gcmMapMainMemory(image_data, image_size, &re->rgba_image_offset);
134
135 return re;
136}
137
138/* engine api this module provides */
139static void *
140eng_info(Evas *e)
141{
142 Evas_Engine_Info_PSL1GHT *info;
143
144 printf ("eng_info called\n");
145 info = calloc(1, sizeof(Evas_Engine_Info_PSL1GHT));
146 if (!info)
147 return NULL;
148
149 info->magic.magic = rand();
150 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
151
152 return info;
153}
154
155static void
156eng_info_free(Evas *e __UNUSED__, void *info)
157{
158 Evas_Engine_Info_PSL1GHT *in;
159
160 printf ("eng_info_free called\n");
161 in = (Evas_Engine_Info_PSL1GHT *)info;
162 free(in);
163}
164
165static int
166eng_setup(Evas *e, void *in)
167{
168 Evas_Engine_Info_PSL1GHT *info;
169
170 printf ("eng_setup called\n");
171 info = (Evas_Engine_Info_PSL1GHT *)in;
172
173 e->engine.data.output = _output_setup(e->output.w, e->output.h);
174 if (!e->engine.data.output)
175 return 0;
176
177 e->engine.func = &func;
178 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
179
180 return 1;
181}
182
183static void
184eng_output_free(void *data)
185{
186 Render_Engine *re;
187 int i;
188
189 printf ("eng_output_free called\n");
190 re = (Render_Engine *)data;
191
192 gcmSetWaitFlip(re->context);
193 for (i = 0; i < MAX_BUFFERS; i++)
194 rsxFree (re->buffers[i].ptr);
195
196 if (re->rgba_image)
197 {
198 DATA32 *image_data;
199
200 image_data = re->rgba_image->image.data;
201 evas_cache_image_drop(&re->rgba_image->cache_entry);
202 free (image_data);
203 }
204
205 freeScreen (re->context);
206 free (re->host_addr);
207
208 evas_common_tilebuf_free(re->tb);
209 if (re->rects)
210 evas_common_tilebuf_free_render_rects(re->rects);
211
212 free(re);
213
214 evas_common_font_shutdown();
215 evas_common_image_shutdown();
216}
217
218static void
219eng_output_resize(void *data, int w, int h)
220{
221 Render_Engine *re;
222 int i;
223 u16 width, height;
224 DATA32 *image_data;
225 int image_size;
226
227 printf ("eng_output_resize called : %dx%d\n", w, h);
228 re = (Render_Engine *)data;
229
230 width = w;
231 height = h;
232 if (setResolution (re->context, &width, &height))
233 {
234 re->width = width;
235 re->height = height;
236
237 gcmSetWaitFlip(re->context);
238 for (i = 0; i < MAX_BUFFERS; i++) {
239 rsxFree (re->buffers[i].ptr);
240 makeBuffer (&re->buffers[i], width, height, i);
241 }
242
243 flipBuffer(re->context, MAX_BUFFERS - 1);
244
245 evas_common_tilebuf_free(re->tb);
246 re->tb = evas_common_tilebuf_new(w, h);
247 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
248
249 /* Realloc our backbuf image */
250 if (re->rgba_image)
251 {
252 image_data = re->rgba_image->image.data;
253 evas_cache_image_drop(&re->rgba_image->cache_entry);
254 free (image_data);
255 }
256 image_size = ((w * h * sizeof(u32)) + 0xfffff) & - 0x100000;
257 image_data = memalign (1024 * 1024, image_size);
258 re->rgba_image = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
259 w, h, image_data, 1, EVAS_COLORSPACE_ARGB8888);
260 gcmMapMainMemory(image_data, image_size, &re->rgba_image_offset);
261 }
262}
263
264static void
265eng_output_tile_size_set(void *data, int w, int h)
266{
267 Render_Engine *re;
268
269 printf ("eng_output_tile_size_set called : %dx%d\n", w, h);
270 re = (Render_Engine *)data;
271 evas_common_tilebuf_set_tile_size(re->tb, w, h);
272}
273
274static void
275eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
276{
277 Render_Engine *re;
278
279 //printf ("eng_output_redraws_rect_add called : %d,%d %dx%d\n", x, y, w, h);
280 re = (Render_Engine *)data;
281 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
282}
283
284static void
285eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
286{
287 Render_Engine *re;
288
289 //printf ("eng_output_redraws_rect_del called : %d,%d %dx%d\n", x, y, w, h);
290 re = (Render_Engine *)data;
291 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
292}
293
294static void
295eng_output_redraws_clear(void *data)
296{
297 Render_Engine *re;
298
299 //printf ("eng_output_redraws_clear called\n");
300 re = (Render_Engine *)data;
301 evas_common_tilebuf_clear(re->tb);
302}
303
304static void *
305eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
306{
307 Render_Engine *re;
308 Tilebuf_Rect *rect;
309 int ux, uy, uw, uh;
310
311 re = (Render_Engine *)data;
312 /*printf ("eng_output_redraws_next_update_get called : %d,%d %dx%d -- %d,%d %dx%d\n",
313 *x, *y, *w, *h, *cx, *cy, *cw, *ch);*/
314 if (re->end)
315 {
316 re->end = 0;
317 return NULL;
318 }
319 if (!re->rects)
320 {
321 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
322 re->cur_rect = EINA_INLIST_GET(re->rects);
323 }
324 if (!re->cur_rect)
325 return NULL;
326
327 rect = (Tilebuf_Rect *)re->cur_rect;
328 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
329 re->cur_rect = re->cur_rect->next;
330 if (!re->cur_rect)
331 {
332 evas_common_tilebuf_free_render_rects(re->rects);
333 re->rects = NULL;
334 re->end = 1;
335 }
336
337 *x = *cx = ux;
338 *y = *cy = uy;
339 *w = *cw = uw;
340 *h = *ch = uh;
341 /*printf ("eng_output_redraws_next_update_get returning : %d,%d %dx%d -- %d,%d %dx%d\n",
342 *x, *y, *w, *h, *cx, *cy, *cw, *ch);*/
343
344 return re->rgba_image;
345}
346
347static void
348eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
349{
350 /* Don't do anything, we'll just coy the whole buffer when it's time to flush */
351}
352
353static void
354eng_output_flush(void *data)
355{
356 Render_Engine *re;
357 rsxBuffer *buffer;
358 int width;
359 int height;
360
361 //printf ("eng_output_flush called\n");
362 re = (Render_Engine *)data;
363 buffer = &re->buffers[re->currentBuffer];
364 width = re->rgba_image->cache_entry.w;
365 height = re->rgba_image->cache_entry.h;
366
367 /* Wait for the flip before copying the buffer */
368 waitFlip ();
369
370 if (re->width == width &&
371 re->height == height)
372 {
373 /* DMA the back buffer into the rsx buffer */
374 rsxSetTransferImage (re->context,
375 GCM_TRANSFER_MAIN_TO_LOCAL,
376 buffer->offset, buffer->width * sizeof(u32),
377 0, 0,
378 re->rgba_image_offset, re->width * sizeof(u32),
379 0, 0, re->width, re->height, sizeof(u32));
380 }
381 else
382 {
383 gcmTransferScale gcm_scale;
384 gcmTransferSurface gcm_surface;
385
386 gcm_surface.format = GCM_TRANSFER_SURFACE_FORMAT_A8R8G8B8;
387 gcm_surface.pitch = buffer->width * sizeof(u32);
388 gcm_surface._pad0[0] = gcm_surface._pad0[1] = 0;
389 gcm_surface.offset = buffer->offset;
390
391 gcm_scale.interp = GCM_TRANSFER_INTERPOLATOR_LINEAR;
392 gcm_scale.conversion = GCM_TRANSFER_CONVERSION_TRUNCATE;
393 gcm_scale.format = GCM_TRANSFER_SCALE_FORMAT_A8R8G8B8;
394 gcm_scale.origin = GCM_TRANSFER_ORIGIN_CORNER;
395 gcm_scale.operation = GCM_TRANSFER_OPERATION_SRCCOPY;
396 gcm_scale.offset = re->rgba_image_offset;
397 gcm_scale.clipX = 0;
398 gcm_scale.clipY = 0;
399 gcm_scale.clipW = re->width;
400 gcm_scale.clipH = re->height;
401 gcm_scale.outX = 0;
402 gcm_scale.outY = 0;
403 gcm_scale.outW = re->width;
404 gcm_scale.outH = re->height;
405 gcm_scale.ratioX = rsxGetFixedSint32 ((float)width / (float)re->width);
406 gcm_scale.ratioY = rsxGetFixedSint32 ((float)height / (float)re->height);
407 gcm_scale.inX = 0;
408 gcm_scale.inY = 0;
409 gcm_scale.inW = (width & ~1); // Width must be a multiple of 2
410 gcm_scale.inH = height;
411 if (gcm_scale.inW < 2) // Minimum inW value is 2
412 gcm_scale.inW = 2;
413 if (gcm_scale.inW > 2046) // Maximum inW value is 2046
414 gcm_scale.inW = 2046;
415 if (gcm_scale.inH < 1) // Minimum inH value is 1
416 gcm_scale.inH = 1;
417 if (gcm_scale.inH > 2047) // Maximum inW value is 2047
418 gcm_scale.inH = 2047;
419 gcm_scale.pitch = sizeof(u32) * width;
420
421 rsxSetTransferScaleMode (re->context, GCM_TRANSFER_MAIN_TO_LOCAL, GCM_TRANSFER_SURFACE);
422 rsxSetTransferScaleSurface (re->context, &gcm_scale, &gcm_surface);
423 }
424 /* Wait for the DMA to finish */
425 flushRSX (re->context);
426
427 /* Flip buffer onto screen */
428 flipBuffer (re->context, re->currentBuffer);
429 re->currentBuffer = (re->currentBuffer + 1) % MAX_BUFFERS;
430}
431
432static void
433eng_output_idle_flush(void *data)
434{
435 Render_Engine *re;
436
437 printf ("eng_output_idle_flush called\n");
438 re = (Render_Engine *)data;
439}
440
441static Eina_Bool
442eng_canvas_alpha_get(void *data, void *context __UNUSED__)
443{
444 Render_Engine *re;
445
446 // printf ("eng_output_alpha_get called\n");
447 re = (Render_Engine *)data;
448 return EINA_TRUE;
449}
450
451/* module advertising code */
452static int
453module_open(Evas_Module *em)
454{
455 if (!em) return 0;
456 /* get whatever engine module we inherit from */
457 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
458 _evas_engine_psl1ght_log_dom = eina_log_domain_register
459 ("evas-psl1ght", EVAS_DEFAULT_LOG_COLOR);
460 if (_evas_engine_psl1ght_log_dom < 0)
461 {
462 EINA_LOG_ERR("Can not create a module log domain.");
463 return 0;
464 }
465
466 /* store it for later use */
467 func = pfunc;
468 /* now to override methods */
469#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
470 ORD(info);
471 ORD(info_free);
472 ORD(setup);
473 ORD(canvas_alpha_get);
474 ORD(output_free);
475 ORD(output_resize);
476 ORD(output_tile_size_set);
477 ORD(output_redraws_rect_add);
478 ORD(output_redraws_rect_del);
479 ORD(output_redraws_clear);
480 ORD(output_redraws_next_update_get);
481 ORD(output_redraws_next_update_push);
482 ORD(output_flush);
483 ORD(output_idle_flush);
484
485 /* now advertise out own api */
486 em->functions = (void *)(&func);
487 return 1;
488}
489
490static void
491module_close(Evas_Module *em __UNUSED__)
492{
493 eina_log_domain_unregister(_evas_engine_psl1ght_log_dom);
494}
495
496static Evas_Module_Api evas_modapi =
497{
498 EVAS_MODULE_API_VERSION,
499 "psl1ght",
500 "none",
501 {
502 module_open,
503 module_close
504 }
505};
506
507EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, psl1ght);
508
509#ifndef EVAS_STATIC_BUILD_PSL1GHT
510EVAS_EINA_MODULE_DEFINE(engine, psl1ght);
511#endif
diff --git a/libraries/evas/src/modules/engines/psl1ght/evas_engine.h b/libraries/evas/src/modules/engines/psl1ght/evas_engine.h
deleted file mode 100644
index 0ea6cb1..0000000
--- a/libraries/evas/src/modules/engines/psl1ght/evas_engine.h
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4extern int _evas_engine_psl1ght_log_dom;
5#ifdef ERR
6# undef ERR
7#endif
8#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_psl1ght_log_dom, __VA_ARGS__)
9
10#ifdef DBG
11# undef DBG
12#endif
13#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_psl1ght_log_dom, __VA_ARGS__)
14
15#ifdef INF
16# undef INF
17#endif
18#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_psl1ght_log_dom, __VA_ARGS__)
19
20#ifdef WRN
21# undef WRN
22#endif
23#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_psl1ght_log_dom, __VA_ARGS__)
24
25#ifdef CRIT
26# undef CRIT
27#endif
28#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_psl1ght_log_dom, __VA_ARGS__)
29
30#endif
diff --git a/libraries/evas/src/modules/engines/psl1ght/rsxutil.c b/libraries/evas/src/modules/engines/psl1ght/rsxutil.c
deleted file mode 100644
index 7567a8c..0000000
--- a/libraries/evas/src/modules/engines/psl1ght/rsxutil.c
+++ /dev/null
@@ -1,275 +0,0 @@
1/*
2 * This software is distributed under the terms of the MIT License
3 */
4
5#include <ppu-lv2.h>
6#include <stdio.h>
7#include <malloc.h>
8#include <string.h>
9#include <unistd.h>
10#include <sysutil/video.h>
11#include <rsx/gcm_sys.h>
12#include <rsx/rsx.h>
13#include <io/pad.h>
14#include <time.h>
15#include <cairo/cairo.h>
16#include <math.h>
17
18#include "rsxutil.h"
19
20#define GCM_LABEL_INDEX 255
21
22static void
23waitRSXIdle(gcmContextData *context);
24
25static int flipped = FALSE;
26
27void
28waitFlip()
29{
30 if (flipped)
31 {
32 while (gcmGetFlipStatus () != 0)
33 usleep (200); /* Sleep, to not stress the cpu. */
34 gcmResetFlipStatus ();
35 flipped = FALSE;
36 }
37}
38
39int
40flipBuffer(gcmContextData *context, s32 buffer)
41{
42 if (gcmSetFlip (context, buffer) == 0)
43 {
44 rsxFlushBuffer (context);
45 // Prevent the RSX from continuing until the flip has finished.
46 gcmSetWaitFlip (context);
47
48 flipped = TRUE;
49 return TRUE;
50 }
51 return FALSE;
52}
53
54int
55makeBuffer(rsxBuffer *buffer, u16 width, u16 height, int id)
56{
57 int depth = sizeof(u32);
58 int pitch = depth * width;
59 int size = depth * width * height;
60
61 buffer->ptr = (uint32_t *)rsxMemalign (64, size);
62
63 if (buffer->ptr == NULL)
64 goto error;
65
66 if (rsxAddressToOffset (buffer->ptr, &buffer->offset) != 0)
67 goto error;
68
69 /* Register the display buffer with the RSX */
70 if (gcmSetDisplayBuffer (id, buffer->offset, pitch, width, height) != 0)
71 goto error;
72
73 buffer->width = width;
74 buffer->height = height;
75 buffer->id = id;
76
77 return TRUE;
78
79error:
80 if (buffer->ptr != NULL)
81 rsxFree (buffer->ptr);
82
83 return FALSE;
84}
85
86int
87copyBuffer(gcmContextData *context, rsxBuffer *source, rsxBuffer *destination)
88{
89 rsxSetTransferData(context, GCM_TRANSFER_LOCAL_TO_LOCAL,
90 destination->offset,
91 destination->width * sizeof(u32),
92 source->offset,
93 source->width * sizeof(u32),
94 source->width * sizeof(u32),
95 source->height);
96}
97
98int
99getResolution(u16 *width, u16 *height)
100{
101 videoState state;
102 videoResolution resolution;
103
104 /* Get the state of the display */
105 if (videoGetState (0, 0, &state) == 0 &&
106 videoGetResolution (state.displayMode.resolution, &resolution) == 0)
107 {
108 if (width)
109 *width = resolution.width;
110 if (height)
111 *height = resolution.height;
112
113 return TRUE;
114 }
115 return FALSE;
116}
117
118static u8
119getPreferredResolution(u16 width, u16 height)
120{
121 videoDeviceInfo info;
122 videoResolution res;
123 int area = width * height;
124 int mode_area;
125 int min_area_diff = abs (area - (720 * 480));
126 int area_diff;
127 u8 resolution = VIDEO_RESOLUTION_480;
128 int i;
129
130 videoGetDeviceInfo(0, 0, &info);
131
132 for (i = 0; i < info.availableModeCount; i++) {
133 videoGetResolution (info.availableModes[i].resolution, &res);
134 mode_area = res.width * res.height;
135 area_diff = abs (area - mode_area);
136 if (area_diff < min_area_diff)
137 {
138 min_area_diff = area_diff;
139 resolution = info.availableModes[i].resolution;
140 }
141 }
142
143 return resolution;
144}
145
146int
147setResolution(gcmContextData *context, u16 *width, u16 *height)
148{
149 videoState state;
150 videoConfiguration vconfig;
151 videoResolution res;
152 u8 resolution;
153
154 resolution = getPreferredResolution (*width, *height);
155
156 /* Get the state of the display */
157 if (videoGetState (0, 0, &state) != 0)
158 return FALSE;
159
160 /* Make sure display is enabled */
161 if (state.state != 0)
162 return FALSE;
163
164 if (videoGetResolution (resolution, &res) != 0)
165 return FALSE;
166
167 /* Configure the buffer format to xRGB */
168 memset (&vconfig, 0, sizeof(videoConfiguration));
169 vconfig.resolution = resolution;
170 vconfig.format = VIDEO_BUFFER_FORMAT_XRGB;
171 vconfig.pitch = res.width * sizeof(u32);
172 vconfig.aspect = VIDEO_ASPECT_AUTO;
173
174 flushRSX(context);
175
176 if (videoConfigure (0, &vconfig, NULL, 0) != 0)
177 return FALSE;
178
179 *width = res.width;
180 *height = res.height;
181
182 return TRUE;
183}
184
185gcmContextData *
186initScreen(void *host_addr, u32 size)
187{
188 gcmContextData *context = NULL; /* Context to keep track of the RSX buffer. */
189 videoState state;
190 videoConfiguration vconfig;
191 videoResolution res; /* Screen Resolution */
192
193 /* Initilise Reality, which sets up the command buffer and shared IO memory */
194 context = rsxInit (CB_SIZE, size, host_addr);
195 if (context == NULL)
196 goto error;
197
198 /* Get the state of the display */
199 if (videoGetState (0, 0, &state) != 0)
200 goto error;
201
202 /* Make sure display is enabled */
203 if (state.state != 0)
204 goto error;
205
206 /* Get the current resolution */
207 if (videoGetResolution (state.displayMode.resolution, &res) != 0)
208 goto error;
209
210 /* Configure the buffer format to xRGB */
211 memset (&vconfig, 0, sizeof(videoConfiguration));
212 vconfig.resolution = state.displayMode.resolution;
213 vconfig.format = VIDEO_BUFFER_FORMAT_XRGB;
214 vconfig.pitch = res.width * sizeof(u32);
215 vconfig.aspect = state.displayMode.aspect;
216
217 flushRSX(context);
218
219 if (videoConfigure (0, &vconfig, NULL, 0) != 0)
220 goto error;
221
222 if (videoGetState (0, 0, &state) != 0)
223 goto error;
224
225 gcmSetFlipMode (GCM_FLIP_VSYNC); // Wait for VSYNC to flip
226
227 gcmResetFlipStatus();
228
229 return context;
230
231error:
232 if (context)
233 rsxFinish (context, 0);
234
235 return NULL;
236}
237
238void
239freeScreen(gcmContextData *context)
240{
241 rsxFinish (context, 0);
242}
243
244static void
245waitFinish(gcmContextData *context, u32 sLabelVal)
246{
247 rsxSetWriteBackendLabel (context, GCM_LABEL_INDEX, sLabelVal);
248
249 rsxFlushBuffer (context);
250
251 while (*(vu32 *)gcmGetLabelAddress (GCM_LABEL_INDEX) != sLabelVal)
252 usleep(30);
253}
254
255static void
256waitRSXIdle(gcmContextData *context)
257{
258 static u32 sLabelVal = 1;
259
260 rsxSetWriteBackendLabel (context, GCM_LABEL_INDEX, sLabelVal);
261 rsxSetWaitLabel (context, GCM_LABEL_INDEX, sLabelVal);
262
263 sLabelVal++;
264
265 waitFinish(context, sLabelVal++);
266}
267
268void
269flushRSX(gcmContextData *context)
270{
271 if (flipped)
272 waitFlip ();
273 waitRSXIdle(context);
274}
275
diff --git a/libraries/evas/src/modules/engines/psl1ght/rsxutil.h b/libraries/evas/src/modules/engines/psl1ght/rsxutil.h
deleted file mode 100644
index 838a751..0000000
--- a/libraries/evas/src/modules/engines/psl1ght/rsxutil.h
+++ /dev/null
@@ -1,43 +0,0 @@
1/*
2 * This software is distributed under the terms of the MIT License
3 */
4
5#ifndef __RSXUTIL_H__
6#define __RSXUTIL_H__
7
8#include <rsx/rsx.h>
9#include <ppu-types.h>
10
11#define CB_SIZE 0x100000
12#define HOST_SIZE (32 * 1024 * 1024)
13
14typedef struct
15{
16 int height;
17 int width;
18 int id;
19 uint32_t *ptr;
20 // Internal stuff
21 uint32_t offset;
22} rsxBuffer;
23
24/* Initilize the RSX properly. Returns NULL on error */
25gcmContextData *initScreen(void *host_addr, u32 size);
26/* Block the PPU thread untill the previous flip operation has finished. */
27void waitFlip(void);
28/* Flip a buffer onto the screen. Returns TRUE on success */
29int flipBuffer(gcmContextData *context, s32 buffer);
30/* Create a buffer to draw into and assign it to @id. Returns NULL on error */
31int makeBuffer(rsxBuffer *buffer, u16 width, u16 height, int id);
32/* Copy the contents of a buffer to another buffer */
33int copyBuffer(gcmContextData *context, rsxBuffer *source, rsxBuffer *destination);
34/* Get current screen resolution. returns TRUE on success */
35int getResolution(u16 *width, u16 *height);
36/* Set screen resolution to closest matching and. returns TRUE on success */
37int setResolution(gcmContextData *context, u16 *width, u16 *height);
38/* Initilize the RSX properly. Returns NULL on error */
39void freeScreen(gcmContextData *context);
40/* Flush the RSX pipeline (any commands and wait for flip) */
41void flushRSX(gcmContextData *context);
42
43#endif /* __RSXUTIL_H__ */
diff --git a/libraries/evas/src/modules/engines/software_16/Makefile.am b/libraries/evas/src/modules/engines/software_16/Makefile.am
deleted file mode 100644
index fec60ac..0000000
--- a/libraries/evas/src/modules/engines/software_16/Makefile.am
+++ /dev/null
@@ -1,37 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@
12
13if BUILD_ENGINE_SOFTWARE_16
14
15SOFTWARE_16_SOURCES = evas_engine.c
16
17
18if !EVAS_STATIC_BUILD_SOFTWARE_16
19
20pkgdir = $(libdir)/evas/modules/engines/software_16/$(MODULE_ARCH)
21pkg_LTLIBRARIES = module.la
22module_la_SOURCES = $(SOFTWARE_16_SOURCES)
23module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la
24module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
25module_la_LIBTOOLFLAGS = --tag=disable-static
26
27else
28
29noinst_LTLIBRARIES = libevas_engine_software_16.la
30
31libevas_engine_software_16_la_SOURCES = $(SOFTWARE_16_SOURCES)
32
33endif
34endif
35
36EXTRA_DIST = \
37evas_engine.c
diff --git a/libraries/evas/src/modules/engines/software_16/Makefile.in b/libraries/evas/src/modules/engines/software_16/Makefile.in
deleted file mode 100644
index bca2deb..0000000
--- a/libraries/evas/src/modules/engines/software_16/Makefile.in
+++ /dev/null
@@ -1,768 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = src/modules/engines/software_16
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
41 $(top_srcdir)/m4/efl_coverage.m4 \
42 $(top_srcdir)/m4/efl_doxygen.m4 \
43 $(top_srcdir)/m4/efl_fnmatch.m4 \
44 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
45 $(top_srcdir)/m4/evas_check_engine.m4 \
46 $(top_srcdir)/m4/evas_check_loader.m4 \
47 $(top_srcdir)/m4/evas_converter.m4 \
48 $(top_srcdir)/m4/evas_dither.m4 \
49 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
50 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
51 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
52 $(top_srcdir)/configure.ac
53am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
54 $(ACLOCAL_M4)
55mkinstalldirs = $(install_sh) -d
56CONFIG_HEADER = $(top_builddir)/config.h
57CONFIG_CLEAN_FILES =
58CONFIG_CLEAN_VPATH_FILES =
59am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
60am__vpath_adj = case $$p in \
61 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
62 *) f=$$p;; \
63 esac;
64am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
65am__install_max = 40
66am__nobase_strip_setup = \
67 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
68am__nobase_strip = \
69 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
70am__nobase_list = $(am__nobase_strip_setup); \
71 for p in $$list; do echo "$$p $$p"; done | \
72 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
73 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
74 if (++n[$$2] == $(am__install_max)) \
75 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
76 END { for (dir in files) print dir, files[dir] }'
77am__base_list = \
78 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
79 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
80am__installdirs = "$(DESTDIR)$(pkgdir)"
81LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
82libevas_engine_software_16_la_LIBADD =
83am__libevas_engine_software_16_la_SOURCES_DIST = evas_engine.c
84@BUILD_ENGINE_SOFTWARE_16_TRUE@am__objects_1 = evas_engine.lo
85@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_TRUE@am_libevas_engine_software_16_la_OBJECTS = $(am__objects_1)
86libevas_engine_software_16_la_OBJECTS = \
87 $(am_libevas_engine_software_16_la_OBJECTS)
88AM_V_lt = $(am__v_lt_$(V))
89am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
90am__v_lt_0 = --silent
91@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_TRUE@am_libevas_engine_software_16_la_rpath =
92@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
93am__module_la_SOURCES_DIST = evas_engine.c
94@BUILD_ENGINE_SOFTWARE_16_TRUE@am__objects_2 = \
95@BUILD_ENGINE_SOFTWARE_16_TRUE@ module_la-evas_engine.lo
96@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@am_module_la_OBJECTS = $(am__objects_2)
97module_la_OBJECTS = $(am_module_la_OBJECTS)
98module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
99 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
100 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
101@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@am_module_la_rpath = -rpath \
102@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@ $(pkgdir)
103DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
104depcomp = $(SHELL) $(top_srcdir)/depcomp
105am__depfiles_maybe = depfiles
106am__mv = mv -f
107COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
108 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
109LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
110 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
111 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
112 $(AM_CFLAGS) $(CFLAGS)
113AM_V_CC = $(am__v_CC_$(V))
114am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
115am__v_CC_0 = @echo " CC " $@;
116AM_V_at = $(am__v_at_$(V))
117am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
118am__v_at_0 = @
119CCLD = $(CC)
120LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
121 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
122 $(AM_LDFLAGS) $(LDFLAGS) -o $@
123AM_V_CCLD = $(am__v_CCLD_$(V))
124am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
125am__v_CCLD_0 = @echo " CCLD " $@;
126AM_V_GEN = $(am__v_GEN_$(V))
127am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
128am__v_GEN_0 = @echo " GEN " $@;
129SOURCES = $(libevas_engine_software_16_la_SOURCES) \
130 $(module_la_SOURCES)
131DIST_SOURCES = $(am__libevas_engine_software_16_la_SOURCES_DIST) \
132 $(am__module_la_SOURCES_DIST)
133ETAGS = etags
134CTAGS = ctags
135DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
136ACLOCAL = @ACLOCAL@
137ALLOCA = @ALLOCA@
138AMTAR = @AMTAR@
139AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
140AR = @AR@
141AS = @AS@
142AUTOCONF = @AUTOCONF@
143AUTOHEADER = @AUTOHEADER@
144AUTOMAKE = @AUTOMAKE@
145AWK = @AWK@
146CC = @CC@
147CCDEPMODE = @CCDEPMODE@
148CFLAGS = @CFLAGS@
149CHECK_CFLAGS = @CHECK_CFLAGS@
150CHECK_LIBS = @CHECK_LIBS@
151CPP = @CPP@
152CPPFLAGS = @CPPFLAGS@
153CXX = @CXX@
154CXXCPP = @CXXCPP@
155CXXDEPMODE = @CXXDEPMODE@
156CXXFLAGS = @CXXFLAGS@
157CYGPATH_W = @CYGPATH_W@
158DEFS = @DEFS@
159DEPDIR = @DEPDIR@
160DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
161DIRECTFB_LIBS = @DIRECTFB_LIBS@
162DLLTOOL = @DLLTOOL@
163DSYMUTIL = @DSYMUTIL@
164DUMPBIN = @DUMPBIN@
165ECHO_C = @ECHO_C@
166ECHO_N = @ECHO_N@
167ECHO_T = @ECHO_T@
168ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
169ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
170EDB_CFLAGS = @EDB_CFLAGS@
171EDB_LIBS = @EDB_LIBS@
172EDJE_CFLAGS = @EDJE_CFLAGS@
173EDJE_LIBS = @EDJE_LIBS@
174EET_CFLAGS = @EET_CFLAGS@
175EET_LIBS = @EET_LIBS@
176EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
177EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
178EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
179EGREP = @EGREP@
180EINA_CFLAGS = @EINA_CFLAGS@
181EINA_LIBS = @EINA_LIBS@
182EVAS_CFLAGS = @EVAS_CFLAGS@
183EVAS_LIBS = @EVAS_LIBS@
184EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
185EVIL_CFLAGS = @EVIL_CFLAGS@
186EVIL_LIBS = @EVIL_LIBS@
187EXEEXT = @EXEEXT@
188EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
189EXOTIC_LIBS = @EXOTIC_LIBS@
190FGREP = @FGREP@
191FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
192FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
193FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
194FREETYPE_LIBS = @FREETYPE_LIBS@
195FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
196FRIBIDI_LIBS = @FRIBIDI_LIBS@
197GL_EET_CFLAGS = @GL_EET_CFLAGS@
198GL_EET_LIBS = @GL_EET_LIBS@
199GREP = @GREP@
200HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
201HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
202INSTALL = @INSTALL@
203INSTALL_DATA = @INSTALL_DATA@
204INSTALL_PROGRAM = @INSTALL_PROGRAM@
205INSTALL_SCRIPT = @INSTALL_SCRIPT@
206INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
207LD = @LD@
208LDFLAGS = @LDFLAGS@
209LIBOBJS = @LIBOBJS@
210LIBS = @LIBS@
211LIBTOOL = @LIBTOOL@
212LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
213LINEBREAK_LIBS = @LINEBREAK_LIBS@
214LIPO = @LIPO@
215LN_S = @LN_S@
216LTLIBOBJS = @LTLIBOBJS@
217MAKEINFO = @MAKEINFO@
218MKDIR_P = @MKDIR_P@
219MODULE_ARCH = @MODULE_ARCH@
220NM = @NM@
221NMEDIT = @NMEDIT@
222OBJC = @OBJC@
223OBJCDEPMODE = @OBJCDEPMODE@
224OBJCFLAGS = @OBJCFLAGS@
225OBJDUMP = @OBJDUMP@
226OBJEXT = @OBJEXT@
227OTOOL = @OTOOL@
228OTOOL64 = @OTOOL64@
229PACKAGE = @PACKAGE@
230PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
231PACKAGE_NAME = @PACKAGE_NAME@
232PACKAGE_STRING = @PACKAGE_STRING@
233PACKAGE_TARNAME = @PACKAGE_TARNAME@
234PACKAGE_URL = @PACKAGE_URL@
235PACKAGE_VERSION = @PACKAGE_VERSION@
236PATH_SEPARATOR = @PATH_SEPARATOR@
237PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
238PIXMAN_LIBS = @PIXMAN_LIBS@
239PKG_CONFIG = @PKG_CONFIG@
240PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
241PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
242PNG_CFLAGS = @PNG_CFLAGS@
243PNG_LIBS = @PNG_LIBS@
244RANLIB = @RANLIB@
245SDL_CFLAGS = @SDL_CFLAGS@
246SDL_LIBS = @SDL_LIBS@
247SED = @SED@
248SET_MAKE = @SET_MAKE@
249SHELL = @SHELL@
250SHM_OPEN_LINK = @SHM_OPEN_LINK@
251STRIP = @STRIP@
252SVG_CFLAGS = @SVG_CFLAGS@
253SVG_LIBS = @SVG_LIBS@
254VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
255VALGRIND_LIBS = @VALGRIND_LIBS@
256VERSION = @VERSION@
257VMAJ = @VMAJ@
258WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
259WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
260XCB_CFLAGS = @XCB_CFLAGS@
261XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
262XCB_GL_LIBS = @XCB_GL_LIBS@
263XCB_LIBS = @XCB_LIBS@
264XEXT_CFLAGS = @XEXT_CFLAGS@
265XEXT_LIBS = @XEXT_LIBS@
266XMKMF = @XMKMF@
267X_CFLAGS = @X_CFLAGS@
268X_EXTRA_LIBS = @X_EXTRA_LIBS@
269X_LIBS = @X_LIBS@
270X_PRE_LIBS = @X_PRE_LIBS@
271abs_builddir = @abs_builddir@
272abs_srcdir = @abs_srcdir@
273abs_top_builddir = @abs_top_builddir@
274abs_top_srcdir = @abs_top_srcdir@
275ac_ct_CC = @ac_ct_CC@
276ac_ct_CXX = @ac_ct_CXX@
277ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
278ac_ct_OBJC = @ac_ct_OBJC@
279altivec_cflags = @altivec_cflags@
280am__include = @am__include@
281am__leading_dot = @am__leading_dot@
282am__quote = @am__quote@
283am__tar = @am__tar@
284am__untar = @am__untar@
285bindir = @bindir@
286build = @build@
287build_alias = @build_alias@
288build_cpu = @build_cpu@
289build_os = @build_os@
290build_vendor = @build_vendor@
291builddir = @builddir@
292datadir = @datadir@
293datarootdir = @datarootdir@
294dlopen_libs = @dlopen_libs@
295docdir = @docdir@
296dvidir = @dvidir@
297edje_cc = @edje_cc@
298efl_doxygen = @efl_doxygen@
299efl_have_doxygen = @efl_have_doxygen@
300evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
301evas_engine_buffer_libs = @evas_engine_buffer_libs@
302evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
303evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
304evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
305evas_engine_directfb_libs = @evas_engine_directfb_libs@
306evas_engine_fb_cflags = @evas_engine_fb_cflags@
307evas_engine_fb_libs = @evas_engine_fb_libs@
308evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
309evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
310evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
311evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
312evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
313evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
314evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
315evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
316evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
317evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
318evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
319evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
320evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
321evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
322evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
323evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
324evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
325evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
326evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
327evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
328evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
329evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
330evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
331evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
332evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
333evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
334evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
335evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
336evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
337evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
338evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
339evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
340evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
341evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
342evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
343evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
344evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
345evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
346evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
347evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
348evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
349evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
350evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
351evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
352evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
353evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
354evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
355evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
356evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
357evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
358evas_image_loader_png_libs = @evas_image_loader_png_libs@
359evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
360evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
361evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
362evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
363evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
364evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
365evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
366evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
367evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
368evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
369evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
370evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
371exec_prefix = @exec_prefix@
372have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
373have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
374have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
375have_evas_engine_software_x11 = @have_evas_engine_software_x11@
376have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
377have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
378have_lcov = @have_lcov@
379host = @host@
380host_alias = @host_alias@
381host_cpu = @host_cpu@
382host_os = @host_os@
383host_vendor = @host_vendor@
384htmldir = @htmldir@
385includedir = @includedir@
386infodir = @infodir@
387install_sh = @install_sh@
388libdir = @libdir@
389libexecdir = @libexecdir@
390localedir = @localedir@
391localstatedir = @localstatedir@
392lt_ECHO = @lt_ECHO@
393lt_enable_auto_import = @lt_enable_auto_import@
394mandir = @mandir@
395mkdir_p = @mkdir_p@
396oldincludedir = @oldincludedir@
397pdfdir = @pdfdir@
398pkgconfig_requires_private = @pkgconfig_requires_private@
399prefix = @prefix@
400program_transform_name = @program_transform_name@
401psdir = @psdir@
402pthread_cflags = @pthread_cflags@
403pthread_libs = @pthread_libs@
404release_info = @release_info@
405requirement_evas = @requirement_evas@
406sbindir = @sbindir@
407sharedstatedir = @sharedstatedir@
408srcdir = @srcdir@
409sysconfdir = @sysconfdir@
410target_alias = @target_alias@
411top_build_prefix = @top_build_prefix@
412top_builddir = @top_builddir@
413top_srcdir = @top_srcdir@
414version_info = @version_info@
415MAINTAINERCLEANFILES = Makefile.in
416AM_CPPFLAGS = \
417-I. \
418-I$(top_srcdir)/src/lib \
419-I$(top_srcdir)/src/lib/include \
420-I$(top_srcdir)/src/modules/engines \
421@FREETYPE_CFLAGS@ \
422@PIXMAN_CFLAGS@ \
423@EINA_CFLAGS@
424
425@BUILD_ENGINE_SOFTWARE_16_TRUE@SOFTWARE_16_SOURCES = evas_engine.c
426@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_16/$(MODULE_ARCH)
427@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@pkg_LTLIBRARIES = module.la
428@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@module_la_SOURCES = $(SOFTWARE_16_SOURCES)
429@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la
430@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
431@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
432@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_TRUE@noinst_LTLIBRARIES = libevas_engine_software_16.la
433@BUILD_ENGINE_SOFTWARE_16_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_TRUE@libevas_engine_software_16_la_SOURCES = $(SOFTWARE_16_SOURCES)
434EXTRA_DIST = \
435evas_engine.c
436
437all: all-am
438
439.SUFFIXES:
440.SUFFIXES: .c .lo .o .obj
441$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
442 @for dep in $?; do \
443 case '$(am__configure_deps)' in \
444 *$$dep*) \
445 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
446 && { if test -f $@; then exit 0; else break; fi; }; \
447 exit 1;; \
448 esac; \
449 done; \
450 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_16/Makefile'; \
451 $(am__cd) $(top_srcdir) && \
452 $(AUTOMAKE) --gnu src/modules/engines/software_16/Makefile
453.PRECIOUS: Makefile
454Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
455 @case '$?' in \
456 *config.status*) \
457 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
458 *) \
459 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
460 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
461 esac;
462
463$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
464 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
465
466$(top_srcdir)/configure: $(am__configure_deps)
467 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
468$(ACLOCAL_M4): $(am__aclocal_m4_deps)
469 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
470$(am__aclocal_m4_deps):
471
472clean-noinstLTLIBRARIES:
473 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
474 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
475 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
476 test "$$dir" != "$$p" || dir=.; \
477 echo "rm -f \"$${dir}/so_locations\""; \
478 rm -f "$${dir}/so_locations"; \
479 done
480install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
481 @$(NORMAL_INSTALL)
482 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
483 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
484 list2=; for p in $$list; do \
485 if test -f $$p; then \
486 list2="$$list2 $$p"; \
487 else :; fi; \
488 done; \
489 test -z "$$list2" || { \
490 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
491 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
492 }
493
494uninstall-pkgLTLIBRARIES:
495 @$(NORMAL_UNINSTALL)
496 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
497 for p in $$list; do \
498 $(am__strip_dir) \
499 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
500 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
501 done
502
503clean-pkgLTLIBRARIES:
504 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
505 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
506 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
507 test "$$dir" != "$$p" || dir=.; \
508 echo "rm -f \"$${dir}/so_locations\""; \
509 rm -f "$${dir}/so_locations"; \
510 done
511libevas_engine_software_16.la: $(libevas_engine_software_16_la_OBJECTS) $(libevas_engine_software_16_la_DEPENDENCIES)
512 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_16_la_rpath) $(libevas_engine_software_16_la_OBJECTS) $(libevas_engine_software_16_la_LIBADD) $(LIBS)
513module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
514 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
515
516mostlyclean-compile:
517 -rm -f *.$(OBJEXT)
518
519distclean-compile:
520 -rm -f *.tab.c
521
522@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
523@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
524
525.c.o:
526@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
527@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
528@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
529@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
530@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
531@am__fastdepCC_FALSE@ $(COMPILE) -c $<
532
533.c.obj:
534@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
535@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
536@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
537@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
538@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
539@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
540
541.c.lo:
542@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
543@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
544@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
545@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
546@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
547@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
548
549module_la-evas_engine.lo: evas_engine.c
550@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
551@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
552@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
553@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
554@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
555@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
556
557mostlyclean-libtool:
558 -rm -f *.lo
559
560clean-libtool:
561 -rm -rf .libs _libs
562
563ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
564 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
565 unique=`for i in $$list; do \
566 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
567 done | \
568 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
569 END { if (nonempty) { for (i in files) print i; }; }'`; \
570 mkid -fID $$unique
571tags: TAGS
572
573TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
574 $(TAGS_FILES) $(LISP)
575 set x; \
576 here=`pwd`; \
577 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
578 unique=`for i in $$list; do \
579 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
580 done | \
581 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
582 END { if (nonempty) { for (i in files) print i; }; }'`; \
583 shift; \
584 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
585 test -n "$$unique" || unique=$$empty_fix; \
586 if test $$# -gt 0; then \
587 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
588 "$$@" $$unique; \
589 else \
590 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
591 $$unique; \
592 fi; \
593 fi
594ctags: CTAGS
595CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
596 $(TAGS_FILES) $(LISP)
597 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
598 unique=`for i in $$list; do \
599 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
600 done | \
601 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
602 END { if (nonempty) { for (i in files) print i; }; }'`; \
603 test -z "$(CTAGS_ARGS)$$unique" \
604 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
605 $$unique
606
607GTAGS:
608 here=`$(am__cd) $(top_builddir) && pwd` \
609 && $(am__cd) $(top_srcdir) \
610 && gtags -i $(GTAGS_ARGS) "$$here"
611
612distclean-tags:
613 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
614
615distdir: $(DISTFILES)
616 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
617 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
618 list='$(DISTFILES)'; \
619 dist_files=`for file in $$list; do echo $$file; done | \
620 sed -e "s|^$$srcdirstrip/||;t" \
621 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
622 case $$dist_files in \
623 */*) $(MKDIR_P) `echo "$$dist_files" | \
624 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
625 sort -u` ;; \
626 esac; \
627 for file in $$dist_files; do \
628 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
629 if test -d $$d/$$file; then \
630 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
631 if test -d "$(distdir)/$$file"; then \
632 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
633 fi; \
634 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
635 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
636 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
637 fi; \
638 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
639 else \
640 test -f "$(distdir)/$$file" \
641 || cp -p $$d/$$file "$(distdir)/$$file" \
642 || exit 1; \
643 fi; \
644 done
645check-am: all-am
646check: check-am
647all-am: Makefile $(LTLIBRARIES)
648installdirs:
649 for dir in "$(DESTDIR)$(pkgdir)"; do \
650 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
651 done
652install: install-am
653install-exec: install-exec-am
654install-data: install-data-am
655uninstall: uninstall-am
656
657install-am: all-am
658 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
659
660installcheck: installcheck-am
661install-strip:
662 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
663 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
664 `test -z '$(STRIP)' || \
665 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
666mostlyclean-generic:
667
668clean-generic:
669
670distclean-generic:
671 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
672 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
673
674maintainer-clean-generic:
675 @echo "This command is intended for maintainers to use"
676 @echo "it deletes files that may require special tools to rebuild."
677 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
678clean: clean-am
679
680clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
681 clean-pkgLTLIBRARIES mostlyclean-am
682
683distclean: distclean-am
684 -rm -rf ./$(DEPDIR)
685 -rm -f Makefile
686distclean-am: clean-am distclean-compile distclean-generic \
687 distclean-tags
688
689dvi: dvi-am
690
691dvi-am:
692
693html: html-am
694
695html-am:
696
697info: info-am
698
699info-am:
700
701install-data-am: install-pkgLTLIBRARIES
702
703install-dvi: install-dvi-am
704
705install-dvi-am:
706
707install-exec-am:
708
709install-html: install-html-am
710
711install-html-am:
712
713install-info: install-info-am
714
715install-info-am:
716
717install-man:
718
719install-pdf: install-pdf-am
720
721install-pdf-am:
722
723install-ps: install-ps-am
724
725install-ps-am:
726
727installcheck-am:
728
729maintainer-clean: maintainer-clean-am
730 -rm -rf ./$(DEPDIR)
731 -rm -f Makefile
732maintainer-clean-am: distclean-am maintainer-clean-generic
733
734mostlyclean: mostlyclean-am
735
736mostlyclean-am: mostlyclean-compile mostlyclean-generic \
737 mostlyclean-libtool
738
739pdf: pdf-am
740
741pdf-am:
742
743ps: ps-am
744
745ps-am:
746
747uninstall-am: uninstall-pkgLTLIBRARIES
748
749.MAKE: install-am install-strip
750
751.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
752 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
753 ctags distclean distclean-compile distclean-generic \
754 distclean-libtool distclean-tags distdir dvi dvi-am html \
755 html-am info info-am install install-am install-data \
756 install-data-am install-dvi install-dvi-am install-exec \
757 install-exec-am install-html install-html-am install-info \
758 install-info-am install-man install-pdf install-pdf-am \
759 install-pkgLTLIBRARIES install-ps install-ps-am install-strip \
760 installcheck installcheck-am installdirs maintainer-clean \
761 maintainer-clean-generic mostlyclean mostlyclean-compile \
762 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
763 tags uninstall uninstall-am uninstall-pkgLTLIBRARIES
764
765
766# Tell versions [3.59,3.63) of GNU make to not export all variables.
767# Otherwise a system limit (for SysV at least) may be exceeded.
768.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_16/evas_engine.c b/libraries/evas/src/modules/engines/software_16/evas_engine.c
deleted file mode 100644
index 643e24f..0000000
--- a/libraries/evas/src/modules/engines/software_16/evas_engine.c
+++ /dev/null
@@ -1,399 +0,0 @@
1#include "evas_common.h"/* Also includes international specific stuff */
2#include "evas_common_soft16.h"
3
4/*
5 *****
6 **
7 ** ENGINE ROUTINES
8 **
9 *****
10 */
11int _evas_soft16_log_dom = -1;
12/* function tables - filled in later (func and parent func) */
13static Evas_Func func, pfunc;
14#ifdef ERR
15#undef ERR
16#endif
17#define ERR(...) EINA_LOG_DOM_ERR( _evas_soft16_log_dom, __VA_ARGS__)
18
19#ifdef DBG
20#undef DBG
21#endif
22#define DBG(...) EINA_LOG_DOM_DBG(_evas_soft16_log_dom, __VA_ARGS__)
23
24#ifdef INF
25#undef INF
26#endif
27#define INF(...) EINA_LOG_DOM_INFO(_evas_soft16_log_dom, __VA_ARGS__)
28
29#ifdef WRN
30#undef WRN
31#endif
32#define WRN(...) EINA_LOG_DOM_WARN(_evas_soft16_log_dom, __VA_ARGS__)
33
34#ifdef CRIT
35#undef CRIT
36#endif
37#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_soft16_log_dom, __VA_ARGS__)
38
39#define NOT_IMPLEMENTED() \
40 WRN("NOT_IMPLEMENTED: %s() at %s:%d", \
41 __FUNCTION__, __FILE__, __LINE__)
42
43static void
44eng_rectangle_draw(void *data __UNUSED__, void *context, void *surface, int x, int y, int w, int h)
45{
46 evas_common_soft16_rectangle_draw(surface, context, x, y, w, h);
47}
48
49static void
50eng_line_draw(void *data __UNUSED__, void *context, void *surface, int x1, int y1, int x2, int y2)
51{
52 evas_common_soft16_line_draw(surface, context, x1, y1, x2, y2);
53}
54
55static void
56eng_polygon_draw(void *data __UNUSED__, void *context, void *surface, void *polygon, int x, int y)
57{
58 evas_common_soft16_polygon_draw(surface, context, polygon, x, y);
59}
60
61static int
62eng_image_alpha_get(void *data __UNUSED__, void *image)
63{
64 Soft16_Image *im;
65
66 if (!image) return 0;
67 im = image;
68 return im->cache_entry.flags.alpha;
69}
70
71static void *
72eng_image_alpha_set(void *data __UNUSED__, void *image, int have_alpha)
73{
74 if (!image) return NULL;
75 have_alpha = !!have_alpha;
76 image = evas_common_soft16_image_alpha_set(image, have_alpha);
77 return image;
78}
79
80static char *
81eng_image_comment_get(void *data __UNUSED__, void *image __UNUSED__, char *key __UNUSED__)
82{
83 return NULL;
84}
85
86static char *
87eng_image_format_get(void *data __UNUSED__, void *image __UNUSED__)
88{
89 NOT_IMPLEMENTED();
90 return NULL;
91}
92
93static int
94eng_image_colorspace_get(void *data __UNUSED__, void *image __UNUSED__)
95{
96 return EVAS_COLORSPACE_RGB565_A5P;
97}
98
99
100static void
101eng_image_colorspace_set(void *data __UNUSED__, void *image __UNUSED__, int cspace __UNUSED__)
102{
103 NOT_IMPLEMENTED();
104}
105
106static void *
107eng_image_native_set(void *data __UNUSED__, void *image __UNUSED__, void *native __UNUSED__)
108{
109 NOT_IMPLEMENTED();
110 return NULL;
111}
112
113static void *
114eng_image_native_get(void *data __UNUSED__, void *image __UNUSED__)
115{
116 NOT_IMPLEMENTED();
117 return NULL;
118}
119
120static void *
121eng_image_load(void *data __UNUSED__, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
122{
123 return evas_cache_image_request(evas_common_soft16_image_cache_get(), file, key, lo, error);
124}
125
126static void *
127eng_image_new_from_data(void *data __UNUSED__, int w, int h, DATA32 *image_data, int alpha, int cspace)
128{
129 if ((image_data) && (cspace != EVAS_COLORSPACE_RGB565_A5P))
130 {
131 WRN("Unsupported colorspace %d in %s() (%s:%d)",
132 cspace, __FUNCTION__, __FILE__, __LINE__);
133 return NULL;
134 }
135 return evas_cache_image_data(evas_common_soft16_image_cache_get(), w, h, image_data, alpha, EVAS_COLORSPACE_RGB565_A5P);
136}
137
138static void *
139eng_image_new_from_copied_data(void *data __UNUSED__, int w, int h, DATA32 *image_data, int alpha, int cspace)
140{
141 if ((image_data) && (cspace != EVAS_COLORSPACE_RGB565_A5P))
142 {
143 WRN("Unsupported colorspace %d in %s() (%s:%d)",
144 cspace, __FUNCTION__, __FILE__, __LINE__);
145 return NULL;
146 }
147 return evas_cache_image_copied_data(evas_common_soft16_image_cache_get(), w, h, image_data, alpha, EVAS_COLORSPACE_RGB565_A5P);
148}
149
150static void
151eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
152{
153 Soft16_Image *im;
154
155 if (w) *w = 0;
156 if (h) *h = 0;
157 if (!image) return;
158 im = image;
159 if (w) *w = im->cache_entry.w;
160 if (h) *h = im->cache_entry.h;
161}
162
163static void *
164eng_image_size_set(void *data __UNUSED__, void *image, int w, int h)
165{
166 if (!image) return NULL;
167 if ((w <= 0) || (h <= 0))
168 {
169 evas_cache_image_drop((Image_Entry *) image);
170 return NULL;
171 }
172 return evas_cache_image_size_set((Image_Entry *) image, w, h);
173}
174
175static void
176eng_image_stride_get(void *data __UNUSED__, void *image, int *stride)
177{
178 Soft16_Image *im;
179
180 if (stride) *stride = 0;
181 if (!image) return;
182 im = image;
183 if (stride) *stride = im->stride;
184}
185
186static void *
187eng_image_dirty_region(void *data __UNUSED__, void *image, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
188{
189 /* FIXME: is this required? */
190 //NOT_IMPLEMENTED();
191 return image;
192}
193
194static void *
195eng_image_data_get(void *data __UNUSED__, void *image, int to_write, DATA32 **image_data, int *err)
196{
197 Soft16_Image *im;
198 int error;
199
200 if (!image)
201 {
202 *image_data = NULL;
203 return NULL;
204 }
205
206 im = image;
207 error = evas_cache_image_load_data(&im->cache_entry);
208
209 if (to_write)
210 im = (Soft16_Image *) evas_cache_image_alone(&im->cache_entry);
211
212 if (image_data) *image_data = (DATA32 *) im->pixels;
213
214 if (err) *err = error;
215 return im;
216}
217
218static void *
219eng_image_data_put(void *data __UNUSED__, void *image, DATA32 *image_data)
220{
221 Soft16_Image *old_im, *new_im;
222
223 if (!image) return NULL;
224
225 old_im = image;
226 if ((DATA16 *)image_data == old_im->pixels) return old_im;
227
228 new_im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), old_im->cache_entry.w, old_im->cache_entry.h, image_data, old_im->cache_entry.flags.alpha, EVAS_COLORSPACE_RGB565_A5P);
229 evas_cache_image_drop(&old_im->cache_entry);
230 return new_im;
231}
232
233static void
234eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
235{
236 Soft16_Image *im = image;
237
238 if (!im) return ;
239 evas_cache_image_preload_data(&im->cache_entry, target);
240}
241
242static void
243eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
244{
245 Soft16_Image *im = image;
246
247 if (!im) return ;
248 evas_cache_image_preload_cancel(&im->cache_entry, target);
249}
250
251static void
252eng_image_draw(void *data __UNUSED__, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
253{
254 Soft16_Image *im;
255
256 im = (Soft16_Image *) image;
257
258 evas_cache_image_load_data(&im->cache_entry);
259 evas_common_soft16_image_draw(im, surface, context,
260 src_x, src_y, src_w, src_h,
261 dst_x, dst_y, dst_w, dst_h,
262 smooth);
263}
264
265static void
266eng_image_scale_hint_set(void *data __UNUSED__, void *image __UNUSED__, int hint __UNUSED__)
267{
268}
269
270static int
271eng_image_scale_hint_get(void *data __UNUSED__, void *image __UNUSED__)
272{
273 return EVAS_IMAGE_SCALE_HINT_NONE;
274}
275
276static void
277eng_image_cache_flush(void *data __UNUSED__)
278{
279 evas_cache_image_flush(evas_common_soft16_image_cache_get());
280}
281
282static void
283eng_image_cache_set(void *data __UNUSED__, int bytes)
284{
285 evas_cache_image_set(evas_common_soft16_image_cache_get(), bytes);
286}
287
288static int
289eng_image_cache_get(void *data __UNUSED__)
290{
291 return evas_cache_image_get(evas_common_soft16_image_cache_get());
292}
293
294static void
295eng_font_draw(void *data __UNUSED__, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *text_props)
296{
297 static RGBA_Image *im = NULL;
298 Soft16_Image *dst = surface;
299
300 if (!im)
301 im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
302 evas_cache_image_surface_alloc(&im->cache_entry, dst->cache_entry.w, dst->cache_entry.h);
303 evas_common_draw_context_font_ext_set(context,
304 surface,
305 evas_common_soft16_font_glyph_new,
306 evas_common_soft16_font_glyph_free,
307 evas_common_soft16_font_glyph_draw);
308 evas_common_font_draw(im, context, (RGBA_Font *) font, x, y, text_props);
309 evas_common_draw_context_font_ext_set(context,
310 NULL,
311 NULL,
312 NULL,
313 NULL);
314}
315
316/*
317 *****
318 **
319 ** MODULE ACCESSIBLE API API
320 **
321 *****
322 */
323
324static int
325module_open(Evas_Module *em)
326{
327 if (!em) return 0;
328 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
329 _evas_soft16_log_dom = eina_log_domain_register
330 ("evas-software_16", EVAS_DEFAULT_LOG_COLOR);
331 if (_evas_soft16_log_dom < 0)
332 {
333 EINA_LOG_ERR("Can not create a module log domain.");
334 return 0;
335 }
336 /* store it for later use */
337 func = pfunc;
338 /* now to override methods */
339 EVAS_API_RESET(info, &func);
340 EVAS_API_RESET(info_free, &func);
341 EVAS_API_RESET(setup, &func);
342#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
343 ORD(rectangle_draw);
344 ORD(line_draw);
345 ORD(polygon_draw);
346 ORD(image_load);
347 ORD(image_new_from_data);
348 ORD(image_new_from_copied_data);
349 ORD(image_size_get);
350 ORD(image_size_set);
351 ORD(image_stride_get);
352 ORD(image_dirty_region);
353 ORD(image_data_get);
354 ORD(image_data_put);
355 ORD(image_data_preload_request);
356 ORD(image_data_preload_cancel);
357 ORD(image_alpha_set);
358 ORD(image_alpha_get);
359 ORD(image_draw);
360 ORD(image_comment_get);
361 ORD(image_format_get);
362 ORD(image_colorspace_set);
363 ORD(image_colorspace_get);
364 ORD(image_native_set);
365 ORD(image_native_get);
366 ORD(image_cache_flush);
367 ORD(image_cache_set);
368 ORD(image_cache_get);
369 ORD(font_draw);
370 ORD(image_scale_hint_set);
371 ORD(image_scale_hint_get);
372
373 em->functions = (void *)(&func);
374
375 return 1;
376}
377
378static void
379module_close(Evas_Module *em __UNUSED__)
380{
381 eina_log_domain_unregister(_evas_soft16_log_dom);
382}
383
384static Evas_Module_Api evas_modapi =
385{
386 EVAS_MODULE_API_VERSION,
387 "software_16",
388 "none",
389 {
390 module_open,
391 module_close
392 }
393};
394
395EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16);
396
397#ifndef EVAS_STATIC_BUILD_SOFTWARE_16
398EVAS_EINA_MODULE_DEFINE(engine, software_16);
399#endif
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/Evas_Engine_Software_16_DDraw.h b/libraries/evas/src/modules/engines/software_16_ddraw/Evas_Engine_Software_16_DDraw.h
deleted file mode 100644
index 3c1547a..0000000
--- a/libraries/evas/src/modules/engines/software_16_ddraw/Evas_Engine_Software_16_DDraw.h
+++ /dev/null
@@ -1,32 +0,0 @@
1#ifndef __EVAS_ENGINE_SOFTWARE_16_DDRAW_H__
2#define __EVAS_ENGINE_SOFTWARE_16_DDRAW_H__
3
4
5#include <windows.h>
6#include <ddraw.h>
7
8typedef struct _Evas_Engine_Info_Software_16_DDraw Evas_Engine_Info_Software_16_DDraw;
9
10struct _Evas_Engine_Info_Software_16_DDraw
11{
12 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
13 /* at you and make nasty noises */
14 Evas_Engine_Info magic;
15
16 struct {
17 HWND window;
18 LPDIRECTDRAW object; /* DirectDraw object */
19 LPDIRECTDRAWSURFACE surface_primary; /* DirectDraw primary surface */
20 LPDIRECTDRAWSURFACE surface_back; /* DirectDraw back surface */
21 LPDIRECTDRAWSURFACE surface_source; /* DirectDraw source surface */
22 int depth;
23
24 int rotation;
25 } info;
26
27 /* non-blocking or blocking mode */
28 Evas_Engine_Render_Mode render_mode;
29};
30
31
32#endif /* __EVAS_ENGINE_SOFTWARE_16_DDRAW_H__ */
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.am b/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.am
deleted file mode 100644
index adbf477..0000000
--- a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.am
+++ /dev/null
@@ -1,49 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9-I$(top_srcdir)/src/modules/engines/software_16 \
10@EINA_CFLAGS@ \
11@FREETYPE_CFLAGS@ \
12@PIXMAN_CFLAGS@ \
13@evas_engine_software_16_ddraw_cflags@
14
15if BUILD_ENGINE_SOFTWARE_16_DDRAW
16
17SOFTWARE_16_DDRAW_SOURCES = \
18evas_engine.c \
19evas_ddraw_buffer.cpp \
20evas_ddraw_main.cpp
21
22SOFTWARE_16_DDRAW_LIBADD = @evas_engine_software_16_ddraw_libs@
23
24
25includes_HEADERS = Evas_Engine_Software_16_DDraw.h
26includesdir = $(includedir)/evas-@VMAJ@
27
28if !EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
29
30pkgdir = $(libdir)/evas/modules/engines/software_16_ddraw/$(MODULE_ARCH)
31pkg_LTLIBRARIES = module.la
32
33module_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES)
34module_la_CXXFLAGS = -fno-rtti -fno-exceptions
35module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_16_DDRAW_LIBADD)
36module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
37module_la_LIBTOOLFLAGS = --tag=disable-static
38
39else
40
41noinst_LTLIBRARIES = libevas_engine_software_16_ddraw.la
42
43libevas_engine_software_16_ddraw_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES)
44libevas_engine_software_16_ddraw_la_LIBADD = $(SOFTWARE_16_DDRAW_LIBADD)
45
46endif
47endif
48
49EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in b/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
deleted file mode 100644
index 014411c..0000000
--- a/libraries/evas/src/modules/engines/software_16_ddraw/Makefile.in
+++ /dev/null
@@ -1,873 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_16_ddraw
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE@libevas_engine_software_16_ddraw_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_16_ddraw_la_SOURCES_DIST = evas_engine.c \
87 evas_ddraw_buffer.cpp evas_ddraw_main.cpp
88@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@ evas_ddraw_buffer.lo \
90@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@ evas_ddraw_main.lo
91@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE@am_libevas_engine_software_16_ddraw_la_OBJECTS = $(am__objects_1)
92libevas_engine_software_16_ddraw_la_OBJECTS = \
93 $(am_libevas_engine_software_16_ddraw_la_OBJECTS)
94AM_V_lt = $(am__v_lt_$(V))
95am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
96am__v_lt_0 = --silent
97@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE@am_libevas_engine_software_16_ddraw_la_rpath =
98@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la \
99@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@ $(am__DEPENDENCIES_1)
100am__module_la_SOURCES_DIST = evas_engine.c evas_ddraw_buffer.cpp \
101 evas_ddraw_main.cpp
102@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@am__objects_2 = \
103@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@ module_la-evas_engine.lo \
104@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@ module_la-evas_ddraw_buffer.lo \
105@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@ module_la-evas_ddraw_main.lo
106@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@am_module_la_OBJECTS = $(am__objects_2)
107module_la_OBJECTS = $(am_module_la_OBJECTS)
108module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
109 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
110 $(module_la_CXXFLAGS) $(CXXFLAGS) $(module_la_LDFLAGS) \
111 $(LDFLAGS) -o $@
112@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@am_module_la_rpath = -rpath \
113@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@ $(pkgdir)
114DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
115depcomp = $(SHELL) $(top_srcdir)/depcomp
116am__depfiles_maybe = depfiles
117am__mv = mv -f
118COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
119 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
120LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
121 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
122 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
123 $(AM_CFLAGS) $(CFLAGS)
124AM_V_CC = $(am__v_CC_$(V))
125am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
126am__v_CC_0 = @echo " CC " $@;
127AM_V_at = $(am__v_at_$(V))
128am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
129am__v_at_0 = @
130CCLD = $(CC)
131LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
132 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
133 $(AM_LDFLAGS) $(LDFLAGS) -o $@
134AM_V_CCLD = $(am__v_CCLD_$(V))
135am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
136am__v_CCLD_0 = @echo " CCLD " $@;
137CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
138 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
139LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
140 $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
141 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
142 $(AM_CXXFLAGS) $(CXXFLAGS)
143AM_V_CXX = $(am__v_CXX_$(V))
144am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
145am__v_CXX_0 = @echo " CXX " $@;
146CXXLD = $(CXX)
147CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
148 $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
149 $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
150AM_V_CXXLD = $(am__v_CXXLD_$(V))
151am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
152am__v_CXXLD_0 = @echo " CXXLD " $@;
153AM_V_GEN = $(am__v_GEN_$(V))
154am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
155am__v_GEN_0 = @echo " GEN " $@;
156SOURCES = $(libevas_engine_software_16_ddraw_la_SOURCES) \
157 $(module_la_SOURCES)
158DIST_SOURCES = \
159 $(am__libevas_engine_software_16_ddraw_la_SOURCES_DIST) \
160 $(am__module_la_SOURCES_DIST)
161am__includes_HEADERS_DIST = Evas_Engine_Software_16_DDraw.h
162HEADERS = $(includes_HEADERS)
163ETAGS = etags
164CTAGS = ctags
165DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
166ACLOCAL = @ACLOCAL@
167ALLOCA = @ALLOCA@
168AMTAR = @AMTAR@
169AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
170AR = @AR@
171AS = @AS@
172AUTOCONF = @AUTOCONF@
173AUTOHEADER = @AUTOHEADER@
174AUTOMAKE = @AUTOMAKE@
175AWK = @AWK@
176CC = @CC@
177CCDEPMODE = @CCDEPMODE@
178CFLAGS = @CFLAGS@
179CHECK_CFLAGS = @CHECK_CFLAGS@
180CHECK_LIBS = @CHECK_LIBS@
181CPP = @CPP@
182CPPFLAGS = @CPPFLAGS@
183CXX = @CXX@
184CXXCPP = @CXXCPP@
185CXXDEPMODE = @CXXDEPMODE@
186CXXFLAGS = @CXXFLAGS@
187CYGPATH_W = @CYGPATH_W@
188DEFS = @DEFS@
189DEPDIR = @DEPDIR@
190DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
191DIRECTFB_LIBS = @DIRECTFB_LIBS@
192DLLTOOL = @DLLTOOL@
193DSYMUTIL = @DSYMUTIL@
194DUMPBIN = @DUMPBIN@
195ECHO_C = @ECHO_C@
196ECHO_N = @ECHO_N@
197ECHO_T = @ECHO_T@
198ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
199ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
200EDB_CFLAGS = @EDB_CFLAGS@
201EDB_LIBS = @EDB_LIBS@
202EDJE_CFLAGS = @EDJE_CFLAGS@
203EDJE_LIBS = @EDJE_LIBS@
204EET_CFLAGS = @EET_CFLAGS@
205EET_LIBS = @EET_LIBS@
206EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
207EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
208EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
209EGREP = @EGREP@
210EINA_CFLAGS = @EINA_CFLAGS@
211EINA_LIBS = @EINA_LIBS@
212EVAS_CFLAGS = @EVAS_CFLAGS@
213EVAS_LIBS = @EVAS_LIBS@
214EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
215EVIL_CFLAGS = @EVIL_CFLAGS@
216EVIL_LIBS = @EVIL_LIBS@
217EXEEXT = @EXEEXT@
218EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
219EXOTIC_LIBS = @EXOTIC_LIBS@
220FGREP = @FGREP@
221FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
222FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
223FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
224FREETYPE_LIBS = @FREETYPE_LIBS@
225FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
226FRIBIDI_LIBS = @FRIBIDI_LIBS@
227GL_EET_CFLAGS = @GL_EET_CFLAGS@
228GL_EET_LIBS = @GL_EET_LIBS@
229GREP = @GREP@
230HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
231HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
232INSTALL = @INSTALL@
233INSTALL_DATA = @INSTALL_DATA@
234INSTALL_PROGRAM = @INSTALL_PROGRAM@
235INSTALL_SCRIPT = @INSTALL_SCRIPT@
236INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
237LD = @LD@
238LDFLAGS = @LDFLAGS@
239LIBOBJS = @LIBOBJS@
240LIBS = @LIBS@
241LIBTOOL = @LIBTOOL@
242LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
243LINEBREAK_LIBS = @LINEBREAK_LIBS@
244LIPO = @LIPO@
245LN_S = @LN_S@
246LTLIBOBJS = @LTLIBOBJS@
247MAKEINFO = @MAKEINFO@
248MKDIR_P = @MKDIR_P@
249MODULE_ARCH = @MODULE_ARCH@
250NM = @NM@
251NMEDIT = @NMEDIT@
252OBJC = @OBJC@
253OBJCDEPMODE = @OBJCDEPMODE@
254OBJCFLAGS = @OBJCFLAGS@
255OBJDUMP = @OBJDUMP@
256OBJEXT = @OBJEXT@
257OTOOL = @OTOOL@
258OTOOL64 = @OTOOL64@
259PACKAGE = @PACKAGE@
260PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
261PACKAGE_NAME = @PACKAGE_NAME@
262PACKAGE_STRING = @PACKAGE_STRING@
263PACKAGE_TARNAME = @PACKAGE_TARNAME@
264PACKAGE_URL = @PACKAGE_URL@
265PACKAGE_VERSION = @PACKAGE_VERSION@
266PATH_SEPARATOR = @PATH_SEPARATOR@
267PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
268PIXMAN_LIBS = @PIXMAN_LIBS@
269PKG_CONFIG = @PKG_CONFIG@
270PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
271PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
272PNG_CFLAGS = @PNG_CFLAGS@
273PNG_LIBS = @PNG_LIBS@
274RANLIB = @RANLIB@
275SDL_CFLAGS = @SDL_CFLAGS@
276SDL_LIBS = @SDL_LIBS@
277SED = @SED@
278SET_MAKE = @SET_MAKE@
279SHELL = @SHELL@
280SHM_OPEN_LINK = @SHM_OPEN_LINK@
281STRIP = @STRIP@
282SVG_CFLAGS = @SVG_CFLAGS@
283SVG_LIBS = @SVG_LIBS@
284VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
285VALGRIND_LIBS = @VALGRIND_LIBS@
286VERSION = @VERSION@
287VMAJ = @VMAJ@
288WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
289WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
290XCB_CFLAGS = @XCB_CFLAGS@
291XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
292XCB_GL_LIBS = @XCB_GL_LIBS@
293XCB_LIBS = @XCB_LIBS@
294XEXT_CFLAGS = @XEXT_CFLAGS@
295XEXT_LIBS = @XEXT_LIBS@
296XMKMF = @XMKMF@
297X_CFLAGS = @X_CFLAGS@
298X_EXTRA_LIBS = @X_EXTRA_LIBS@
299X_LIBS = @X_LIBS@
300X_PRE_LIBS = @X_PRE_LIBS@
301abs_builddir = @abs_builddir@
302abs_srcdir = @abs_srcdir@
303abs_top_builddir = @abs_top_builddir@
304abs_top_srcdir = @abs_top_srcdir@
305ac_ct_CC = @ac_ct_CC@
306ac_ct_CXX = @ac_ct_CXX@
307ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
308ac_ct_OBJC = @ac_ct_OBJC@
309altivec_cflags = @altivec_cflags@
310am__include = @am__include@
311am__leading_dot = @am__leading_dot@
312am__quote = @am__quote@
313am__tar = @am__tar@
314am__untar = @am__untar@
315bindir = @bindir@
316build = @build@
317build_alias = @build_alias@
318build_cpu = @build_cpu@
319build_os = @build_os@
320build_vendor = @build_vendor@
321builddir = @builddir@
322datadir = @datadir@
323datarootdir = @datarootdir@
324dlopen_libs = @dlopen_libs@
325docdir = @docdir@
326dvidir = @dvidir@
327edje_cc = @edje_cc@
328efl_doxygen = @efl_doxygen@
329efl_have_doxygen = @efl_have_doxygen@
330evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
331evas_engine_buffer_libs = @evas_engine_buffer_libs@
332evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
333evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
334evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
335evas_engine_directfb_libs = @evas_engine_directfb_libs@
336evas_engine_fb_cflags = @evas_engine_fb_cflags@
337evas_engine_fb_libs = @evas_engine_fb_libs@
338evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
339evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
340evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
341evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
342evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
343evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
344evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
345evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
346evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
347evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
348evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
349evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
350evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
351evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
352evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
353evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
354evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
355evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
356evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
357evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
358evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
359evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
360evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
361evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
362evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
363evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
364evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
365evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
366evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
367evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
368evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
369evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
370evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
371evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
372evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
373evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
374evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
375evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
376evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
377evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
378evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
379evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
380evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
381evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
382evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
383evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
384evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
385evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
386evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
387evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
388evas_image_loader_png_libs = @evas_image_loader_png_libs@
389evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
390evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
391evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
392evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
393evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
394evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
395evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
396evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
397evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
398evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
399evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
400evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
401exec_prefix = @exec_prefix@
402have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
403have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
404have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
405have_evas_engine_software_x11 = @have_evas_engine_software_x11@
406have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
407have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
408have_lcov = @have_lcov@
409host = @host@
410host_alias = @host_alias@
411host_cpu = @host_cpu@
412host_os = @host_os@
413host_vendor = @host_vendor@
414htmldir = @htmldir@
415includedir = @includedir@
416infodir = @infodir@
417install_sh = @install_sh@
418libdir = @libdir@
419libexecdir = @libexecdir@
420localedir = @localedir@
421localstatedir = @localstatedir@
422lt_ECHO = @lt_ECHO@
423lt_enable_auto_import = @lt_enable_auto_import@
424mandir = @mandir@
425mkdir_p = @mkdir_p@
426oldincludedir = @oldincludedir@
427pdfdir = @pdfdir@
428pkgconfig_requires_private = @pkgconfig_requires_private@
429prefix = @prefix@
430program_transform_name = @program_transform_name@
431psdir = @psdir@
432pthread_cflags = @pthread_cflags@
433pthread_libs = @pthread_libs@
434release_info = @release_info@
435requirement_evas = @requirement_evas@
436sbindir = @sbindir@
437sharedstatedir = @sharedstatedir@
438srcdir = @srcdir@
439sysconfdir = @sysconfdir@
440target_alias = @target_alias@
441top_build_prefix = @top_build_prefix@
442top_builddir = @top_builddir@
443top_srcdir = @top_srcdir@
444version_info = @version_info@
445MAINTAINERCLEANFILES = Makefile.in
446AM_CPPFLAGS = \
447-I. \
448-I$(top_srcdir)/src/lib \
449-I$(top_srcdir)/src/lib/include \
450-I$(top_srcdir)/src/modules/engines \
451-I$(top_srcdir)/src/modules/engines/software_16 \
452@EINA_CFLAGS@ \
453@FREETYPE_CFLAGS@ \
454@PIXMAN_CFLAGS@ \
455@evas_engine_software_16_ddraw_cflags@
456
457@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@SOFTWARE_16_DDRAW_SOURCES = \
458@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@evas_engine.c \
459@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@evas_ddraw_buffer.cpp \
460@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@evas_ddraw_main.cpp
461
462@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@SOFTWARE_16_DDRAW_LIBADD = @evas_engine_software_16_ddraw_libs@
463@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@includes_HEADERS = Evas_Engine_Software_16_DDraw.h
464@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@includesdir = $(includedir)/evas-@VMAJ@
465@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_16_ddraw/$(MODULE_ARCH)
466@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@pkg_LTLIBRARIES = module.la
467@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@module_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES)
468@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@module_la_CXXFLAGS = -fno-rtti -fno-exceptions
469@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_16_DDRAW_LIBADD)
470@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
471@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
472@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE@noinst_LTLIBRARIES = libevas_engine_software_16_ddraw.la
473@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE@libevas_engine_software_16_ddraw_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES)
474@BUILD_ENGINE_SOFTWARE_16_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW_TRUE@libevas_engine_software_16_ddraw_la_LIBADD = $(SOFTWARE_16_DDRAW_LIBADD)
475EXTRA_DIST = evas_engine.h
476all: all-am
477
478.SUFFIXES:
479.SUFFIXES: .c .cpp .lo .o .obj
480$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
481 @for dep in $?; do \
482 case '$(am__configure_deps)' in \
483 *$$dep*) \
484 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
485 && { if test -f $@; then exit 0; else break; fi; }; \
486 exit 1;; \
487 esac; \
488 done; \
489 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_16_ddraw/Makefile'; \
490 $(am__cd) $(top_srcdir) && \
491 $(AUTOMAKE) --gnu src/modules/engines/software_16_ddraw/Makefile
492.PRECIOUS: Makefile
493Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
494 @case '$?' in \
495 *config.status*) \
496 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
497 *) \
498 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
499 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
500 esac;
501
502$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
503 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
504
505$(top_srcdir)/configure: $(am__configure_deps)
506 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
507$(ACLOCAL_M4): $(am__aclocal_m4_deps)
508 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
509$(am__aclocal_m4_deps):
510
511clean-noinstLTLIBRARIES:
512 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
513 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
514 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
515 test "$$dir" != "$$p" || dir=.; \
516 echo "rm -f \"$${dir}/so_locations\""; \
517 rm -f "$${dir}/so_locations"; \
518 done
519install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
520 @$(NORMAL_INSTALL)
521 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
522 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
523 list2=; for p in $$list; do \
524 if test -f $$p; then \
525 list2="$$list2 $$p"; \
526 else :; fi; \
527 done; \
528 test -z "$$list2" || { \
529 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
530 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
531 }
532
533uninstall-pkgLTLIBRARIES:
534 @$(NORMAL_UNINSTALL)
535 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
536 for p in $$list; do \
537 $(am__strip_dir) \
538 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
539 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
540 done
541
542clean-pkgLTLIBRARIES:
543 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
544 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
545 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
546 test "$$dir" != "$$p" || dir=.; \
547 echo "rm -f \"$${dir}/so_locations\""; \
548 rm -f "$${dir}/so_locations"; \
549 done
550libevas_engine_software_16_ddraw.la: $(libevas_engine_software_16_ddraw_la_OBJECTS) $(libevas_engine_software_16_ddraw_la_DEPENDENCIES)
551 $(AM_V_CXXLD)$(CXXLINK) $(am_libevas_engine_software_16_ddraw_la_rpath) $(libevas_engine_software_16_ddraw_la_OBJECTS) $(libevas_engine_software_16_ddraw_la_LIBADD) $(LIBS)
552module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
553 $(AM_V_CXXLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
554
555mostlyclean-compile:
556 -rm -f *.$(OBJEXT)
557
558distclean-compile:
559 -rm -f *.tab.c
560
561@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_ddraw_buffer.Plo@am__quote@
562@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_ddraw_main.Plo@am__quote@
563@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
564@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_ddraw_buffer.Plo@am__quote@
565@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_ddraw_main.Plo@am__quote@
566@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
567
568.c.o:
569@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
570@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
571@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
573@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
574@am__fastdepCC_FALSE@ $(COMPILE) -c $<
575
576.c.obj:
577@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
578@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
579@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
581@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
582@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
583
584.c.lo:
585@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
586@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
587@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
588@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
589@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
590@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
591
592module_la-evas_engine.lo: evas_engine.c
593@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
594@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
595@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
596@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
597@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
598@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
599
600.cpp.o:
601@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
602@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
603@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
604@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
605@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
606@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
607
608.cpp.obj:
609@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
610@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
611@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
612@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
613@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
614@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
615
616.cpp.lo:
617@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
618@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
619@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
620@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
621@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
622@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
623
624module_la-evas_ddraw_buffer.lo: evas_ddraw_buffer.cpp
625@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_ddraw_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_ddraw_buffer.Tpo -c -o module_la-evas_ddraw_buffer.lo `test -f 'evas_ddraw_buffer.cpp' || echo '$(srcdir)/'`evas_ddraw_buffer.cpp
626@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_ddraw_buffer.Tpo $(DEPDIR)/module_la-evas_ddraw_buffer.Plo
627@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
628@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_ddraw_buffer.cpp' object='module_la-evas_ddraw_buffer.lo' libtool=yes @AMDEPBACKSLASH@
629@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
630@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_ddraw_buffer.lo `test -f 'evas_ddraw_buffer.cpp' || echo '$(srcdir)/'`evas_ddraw_buffer.cpp
631
632module_la-evas_ddraw_main.lo: evas_ddraw_main.cpp
633@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_ddraw_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_ddraw_main.Tpo -c -o module_la-evas_ddraw_main.lo `test -f 'evas_ddraw_main.cpp' || echo '$(srcdir)/'`evas_ddraw_main.cpp
634@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_ddraw_main.Tpo $(DEPDIR)/module_la-evas_ddraw_main.Plo
635@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
636@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_ddraw_main.cpp' object='module_la-evas_ddraw_main.lo' libtool=yes @AMDEPBACKSLASH@
637@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
638@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_ddraw_main.lo `test -f 'evas_ddraw_main.cpp' || echo '$(srcdir)/'`evas_ddraw_main.cpp
639
640mostlyclean-libtool:
641 -rm -f *.lo
642
643clean-libtool:
644 -rm -rf .libs _libs
645install-includesHEADERS: $(includes_HEADERS)
646 @$(NORMAL_INSTALL)
647 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
648 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
649 for p in $$list; do \
650 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
651 echo "$$d$$p"; \
652 done | $(am__base_list) | \
653 while read files; do \
654 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
655 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
656 done
657
658uninstall-includesHEADERS:
659 @$(NORMAL_UNINSTALL)
660 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
661 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
662 test -n "$$files" || exit 0; \
663 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
664 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
665
666ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
667 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
668 unique=`for i in $$list; do \
669 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
670 done | \
671 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
672 END { if (nonempty) { for (i in files) print i; }; }'`; \
673 mkid -fID $$unique
674tags: TAGS
675
676TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
677 $(TAGS_FILES) $(LISP)
678 set x; \
679 here=`pwd`; \
680 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
681 unique=`for i in $$list; do \
682 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
683 done | \
684 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
685 END { if (nonempty) { for (i in files) print i; }; }'`; \
686 shift; \
687 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
688 test -n "$$unique" || unique=$$empty_fix; \
689 if test $$# -gt 0; then \
690 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
691 "$$@" $$unique; \
692 else \
693 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
694 $$unique; \
695 fi; \
696 fi
697ctags: CTAGS
698CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
699 $(TAGS_FILES) $(LISP)
700 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
701 unique=`for i in $$list; do \
702 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
703 done | \
704 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
705 END { if (nonempty) { for (i in files) print i; }; }'`; \
706 test -z "$(CTAGS_ARGS)$$unique" \
707 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
708 $$unique
709
710GTAGS:
711 here=`$(am__cd) $(top_builddir) && pwd` \
712 && $(am__cd) $(top_srcdir) \
713 && gtags -i $(GTAGS_ARGS) "$$here"
714
715distclean-tags:
716 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
717
718distdir: $(DISTFILES)
719 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
720 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
721 list='$(DISTFILES)'; \
722 dist_files=`for file in $$list; do echo $$file; done | \
723 sed -e "s|^$$srcdirstrip/||;t" \
724 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
725 case $$dist_files in \
726 */*) $(MKDIR_P) `echo "$$dist_files" | \
727 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
728 sort -u` ;; \
729 esac; \
730 for file in $$dist_files; do \
731 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
732 if test -d $$d/$$file; then \
733 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
734 if test -d "$(distdir)/$$file"; then \
735 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
736 fi; \
737 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
738 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
739 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
740 fi; \
741 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
742 else \
743 test -f "$(distdir)/$$file" \
744 || cp -p $$d/$$file "$(distdir)/$$file" \
745 || exit 1; \
746 fi; \
747 done
748check-am: all-am
749check: check-am
750all-am: Makefile $(LTLIBRARIES) $(HEADERS)
751installdirs:
752 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
753 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
754 done
755install: install-am
756install-exec: install-exec-am
757install-data: install-data-am
758uninstall: uninstall-am
759
760install-am: all-am
761 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
762
763installcheck: installcheck-am
764install-strip:
765 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
766 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
767 `test -z '$(STRIP)' || \
768 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
769mostlyclean-generic:
770
771clean-generic:
772
773distclean-generic:
774 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
775 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
776
777maintainer-clean-generic:
778 @echo "This command is intended for maintainers to use"
779 @echo "it deletes files that may require special tools to rebuild."
780 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
781clean: clean-am
782
783clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
784 clean-pkgLTLIBRARIES mostlyclean-am
785
786distclean: distclean-am
787 -rm -rf ./$(DEPDIR)
788 -rm -f Makefile
789distclean-am: clean-am distclean-compile distclean-generic \
790 distclean-tags
791
792dvi: dvi-am
793
794dvi-am:
795
796html: html-am
797
798html-am:
799
800info: info-am
801
802info-am:
803
804install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
805
806install-dvi: install-dvi-am
807
808install-dvi-am:
809
810install-exec-am:
811
812install-html: install-html-am
813
814install-html-am:
815
816install-info: install-info-am
817
818install-info-am:
819
820install-man:
821
822install-pdf: install-pdf-am
823
824install-pdf-am:
825
826install-ps: install-ps-am
827
828install-ps-am:
829
830installcheck-am:
831
832maintainer-clean: maintainer-clean-am
833 -rm -rf ./$(DEPDIR)
834 -rm -f Makefile
835maintainer-clean-am: distclean-am maintainer-clean-generic
836
837mostlyclean: mostlyclean-am
838
839mostlyclean-am: mostlyclean-compile mostlyclean-generic \
840 mostlyclean-libtool
841
842pdf: pdf-am
843
844pdf-am:
845
846ps: ps-am
847
848ps-am:
849
850uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
851
852.MAKE: install-am install-strip
853
854.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
855 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
856 ctags distclean distclean-compile distclean-generic \
857 distclean-libtool distclean-tags distdir dvi dvi-am html \
858 html-am info info-am install install-am install-data \
859 install-data-am install-dvi install-dvi-am install-exec \
860 install-exec-am install-html install-html-am \
861 install-includesHEADERS install-info install-info-am \
862 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
863 install-ps install-ps-am install-strip installcheck \
864 installcheck-am installdirs maintainer-clean \
865 maintainer-clean-generic mostlyclean mostlyclean-compile \
866 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
867 tags uninstall uninstall-am uninstall-includesHEADERS \
868 uninstall-pkgLTLIBRARIES
869
870
871# Tell versions [3.59,3.63) of GNU make to not export all variables.
872# Otherwise a system limit (for SysV at least) may be exceeded.
873.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_buffer.cpp b/libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_buffer.cpp
deleted file mode 100644
index 7a0a8b7..0000000
--- a/libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_buffer.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4
5DDraw_Output_Buffer *
6evas_software_ddraw_output_buffer_new(HWND window,
7 LPDIRECTDRAW object,
8 LPDIRECTDRAWSURFACE surface_primary,
9 LPDIRECTDRAWSURFACE surface_back,
10 LPDIRECTDRAWSURFACE surface_source,
11 int width,
12 int height)
13{
14 DDSURFACEDESC surface_desc;
15 DDraw_Output_Buffer *ddob;
16
17 ddob = (DDraw_Output_Buffer *)calloc(1, sizeof(DDraw_Output_Buffer));
18 if (!ddob) return NULL;
19
20 ddob->dd.window = window;
21 ddob->dd.object = object;
22 ddob->dd.surface_primary = surface_primary;
23 ddob->dd.surface_back = surface_back;
24 ddob->dd.surface_source = surface_source;
25 ddob->width = width;
26 ddob->height = height;
27 ddob->pitch = width * 2;
28
29 ZeroMemory(&surface_desc, sizeof(surface_desc));
30 surface_desc.dwSize = sizeof(surface_desc);
31
32 if (FAILED(ddob->dd.surface_source->Lock(NULL,
33 &surface_desc,
34 DDLOCK_WAIT | DDLOCK_SURFACEMEMORYPTR,
35 NULL)))
36 {
37 free(ddob);
38 return NULL;
39 }
40
41 ddob->data = (DATA16 *)surface_desc.lpSurface;
42
43 if (FAILED(ddob->dd.surface_source->Unlock(NULL)))
44 {
45 free(ddob);
46 return NULL;
47 }
48 if (ddob->im)
49 evas_cache_image_drop(&ddob->im->cache_entry);
50
51 ddob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), width, height, (DATA32 *) ddob->data, 0, EVAS_COLORSPACE_RGB565_A5P);
52 if (ddob->im)
53 ddob->im->stride = ddob->pitch;
54
55 return ddob;
56}
57
58void
59evas_software_ddraw_output_buffer_free(DDraw_Output_Buffer *ddob, int sync)
60{
61 free(ddob);
62}
63
64void
65evas_software_ddraw_output_buffer_paste(DDraw_Output_Buffer *ddob)
66{
67 RECT dst_rect;
68 RECT src_rect;
69 POINT p;
70
71 SetRect(&src_rect, 0, 0, ddob->width, ddob->height);
72
73 if (FAILED(ddob->dd.surface_back->BltFast(0, 0,
74 ddob->dd.surface_source,
75 &src_rect,
76 DDBLTFAST_NOCOLORKEY | DDBLTFAST_WAIT)))
77 return;
78
79 p.x = 0;
80 p.y = 0;
81 ClientToScreen(ddob->dd.window, &p);
82 GetClientRect(ddob->dd.window, &dst_rect);
83 OffsetRect(&dst_rect, p.x, p.y);
84 ddob->dd.surface_primary->Blt(&dst_rect,
85 ddob->dd.surface_back, &src_rect,
86 DDBLT_WAIT, NULL);
87}
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_main.cpp b/libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_main.cpp
deleted file mode 100644
index 7a2eb7f..0000000
--- a/libraries/evas/src/modules/engines/software_16_ddraw/evas_ddraw_main.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
1#include "evas_engine.h"
2
3
4void *
5evas_software_ddraw_lock(DDraw_Output_Buffer *ddob, int *ddraw_width, int *ddraw_height, int *ddraw_pitch, int *ddraw_depth)
6{
7 DDSURFACEDESC surface_desc;
8
9 ZeroMemory(&surface_desc, sizeof(surface_desc));
10 surface_desc.dwSize = sizeof(surface_desc);
11
12 if (FAILED(ddob->dd.surface_back->Lock(NULL,
13 &surface_desc,
14 DDLOCK_WAIT | DDLOCK_SURFACEMEMORYPTR | DDLOCK_WRITEONLY,
15 NULL)))
16 return NULL;
17
18 *ddraw_width = surface_desc.dwWidth;
19 *ddraw_height = surface_desc.dwHeight;
20 *ddraw_pitch = surface_desc.lPitch;
21 *ddraw_depth = surface_desc.ddpfPixelFormat.dwRGBBitCount >> 3;
22
23 return surface_desc.lpSurface;
24}
25
26void
27evas_software_ddraw_unlock_and_flip(DDraw_Output_Buffer *ddob)
28{
29 RECT dst_rect;
30 RECT src_rect;
31 POINT p;
32
33 if (FAILED(ddob->dd.surface_back->Unlock(NULL)))
34 return;
35
36 /* we figure out where on the primary surface our window lives */
37 p.x = 0;
38 p.y = 0;
39 ClientToScreen(ddob->dd.window, &p);
40 GetClientRect(ddob->dd.window, &dst_rect);
41 OffsetRect(&dst_rect, p.x, p.y);
42 SetRect(&src_rect, 0, 0, ddob->width, ddob->height);
43
44 /* nothing to do if the function fails, so we don't check the result */
45 ddob->dd.surface_primary->BltFast(0, 0,
46 ddob->dd.surface_back, &dst_rect,
47 DDBLTFAST_WAIT || DDBLTFAST_NOCOLORKEY);
48}
49
50void
51evas_software_ddraw_surface_resize(DDraw_Output_Buffer *ddob)
52{
53 DDSURFACEDESC surface_desc;
54
55 ddob->dd.surface_back->Release();
56 memset (&surface_desc, 0, sizeof (surface_desc));
57 surface_desc.dwSize = sizeof (surface_desc);
58 /* FIXME: that code does not compile. Must know why */
59#if 0
60 surface_desc.dwFlags = DDSD_HEIGHT | DDSD_WIDTH;
61 surface_desc.dwWidth = width;
62 surface_desc.dwHeight = height;
63 IDirectDrawSurface7_SetSurfaceDesc(ddob->dd.surface_back, &surface_desc, NULL);
64#else
65 surface_desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
66 surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
67 surface_desc.dwWidth = ddob->width;
68 surface_desc.dwHeight = ddob->height;
69 ddob->dd.object->CreateSurface(&surface_desc, &ddob->dd.surface_back, NULL);
70#endif
71}
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.c b/libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.c
deleted file mode 100644
index 9629781..0000000
--- a/libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.c
+++ /dev/null
@@ -1,628 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_16_DDraw.h"
5#include "evas_common_soft16.h"
6
7int _evas_engine_soft16_ddraw_log_dom = -1;
8/* function tables - filled in later (func and parent func) */
9static Evas_Func func, pfunc;
10
11/* engine struct data */
12typedef struct _Render_Engine Render_Engine;
13
14struct _Render_Engine
15{
16 HWND window;
17 LPDIRECTDRAW object;
18 LPDIRECTDRAWSURFACE surface_primary;
19 LPDIRECTDRAWSURFACE surface_back;
20 LPDIRECTDRAWSURFACE surface_source;
21 int width;
22 int height;
23 int rotation;
24 Tilebuf *tb;
25 Tilebuf_Rect *rects;
26 Tilebuf_Rect *cur_rect;
27 DDraw_Output_Buffer *ddob;
28 Soft16_Image *tmp_out; /* used by indirect render, like rotation */
29 HRGN clip_rects;
30 unsigned char end : 1;
31};
32
33/* prototypes we will use here */
34
35static void *eng_info(Evas *e);
36static void eng_info_free(Evas *e, void *info);
37static int eng_setup(Evas *e, void *info);
38static void eng_output_free(void *data);
39static void eng_output_resize(void *data, int w, int h);
40static void eng_output_tile_size_set(void *data, int w, int h);
41static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
42static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
43static void eng_output_redraws_clear(void *data);
44static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
45static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
46static void eng_output_flush(void *data);
47static void eng_output_idle_flush(void *data);
48
49/* engine api this module provides */
50static void *
51eng_info(Evas *e)
52{
53 Evas_Engine_Info_Software_16_DDraw *info;
54 info = calloc(1, sizeof(Evas_Engine_Info_Software_16_DDraw));
55 if (!info) return NULL;
56 info->magic.magic = rand();
57 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
58 return info;
59 e = NULL;
60}
61
62static void
63eng_info_free(Evas *e, void *info)
64{
65 Evas_Engine_Info_Software_16_DDraw *in;
66 in = (Evas_Engine_Info_Software_16_DDraw *)info;
67 free(in);
68}
69
70static void
71_tmp_out_alloc(Render_Engine *re)
72{
73 Tilebuf_Rect *r;
74 int w = 0, h = 0;
75
76 EINA_INLIST_FOREACH(re->rects, r)
77 {
78 if (r->w > w) w = r->w;
79 if (r->h > h) h = r->h;
80 }
81
82 if (re->tmp_out)
83 {
84 if ((re->tmp_out->cache_entry.w < w) || (re->tmp_out->cache_entry.h < h))
85 {
86 evas_cache_image_drop(&re->tmp_out->cache_entry);
87 re->tmp_out = NULL;
88 }
89 }
90
91 if (!re->tmp_out)
92 {
93 Soft16_Image *im;
94
95 im = (Soft16_Image *) evas_cache_image_empty(evas_common_soft16_image_cache_get());
96 im->cache_entry.flags.alpha = 0;
97 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
98
99 re->tmp_out = im;
100 }
101}
102
103
104static int
105eng_setup(Evas *e, void *in)
106{
107 Render_Engine *re;
108 Evas_Engine_Info_Software_16_DDraw *info;
109
110 info = (Evas_Engine_Info_Software_16_DDraw *)in;
111 if (!e->engine.data.output)
112 {
113 /* the only check - simplistic, i know, but enough for this
114 * "special purpose" engine. Remember it is meant to be used
115 * for limited power devices that have a 16bit display mode
116 * and no real other acceleration, and high resolution so we
117 * can pre-dither into 16bpp. */
118 if (info->info.depth != 16)
119 return 0;
120 /* do common routine init - we wil at least use it for core
121 * image loading and font loading/glyph rendering & placement */
122 evas_common_cpu_init();
123
124 evas_common_blend_init();
125 evas_common_image_init();
126 evas_common_convert_init();
127 evas_common_scale_init();
128 evas_common_rectangle_init();
129 evas_common_polygon_init();
130 evas_common_line_init();
131 evas_common_font_init();
132 evas_common_draw_init();
133 evas_common_tilebuf_init();
134 evas_common_soft16_image_init();
135
136 /* render engine specific data */
137 re = calloc(1, sizeof(Render_Engine));
138 if (!re)
139 return 0;
140 e->engine.data.output = re;
141 re->window = info->info.window;
142 re->object = info->info.object;
143 re->surface_primary = info->info.surface_primary;
144 re->surface_back = info->info.surface_back;
145 re->surface_source = info->info.surface_source;
146 re->width = e->output.w;
147 re->height = e->output.h;
148 re->rotation = info->info.rotation;
149 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
150 if (re->tb)
151 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
152 }
153 else
154 {
155 /* we changed the info after first init - do a re-eval where
156 * appropriate */
157 if (info->info.depth != 16)
158 return 0;
159 re = e->engine.data.output;
160 if (re->tb) evas_common_tilebuf_free(re->tb);
161 re->window = info->info.window;
162 re->object = info->info.object;
163 re->surface_primary = info->info.surface_primary;
164 re->surface_back = info->info.surface_back;
165 re->surface_source = info->info.surface_source;
166 re->width = e->output.w;
167 re->height = e->output.h;
168 re->rotation = info->info.rotation;
169 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
170 if (re->tb)
171 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
172 if (re->tmp_out)
173 {
174 evas_cache_image_drop(&re->tmp_out->cache_entry);
175 re->tmp_out = NULL;
176 }
177 }
178 if (!e->engine.data.output) return 0;
179 /* add a draw context if we dont have one */
180 if (!e->engine.data.context)
181 e->engine.data.context =
182 e->engine.func->context_new(e->engine.data.output);
183
184 return 1;
185}
186
187static void
188eng_output_free(void *data)
189{
190 Render_Engine *re;
191
192 re = (Render_Engine *)data;
193 if (re->ddob) evas_software_ddraw_output_buffer_free(re->ddob, 0);
194 if (re->clip_rects) DeleteObject(re->clip_rects);
195 if (re->tb) evas_common_tilebuf_free(re->tb);
196 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
197 if (re->tmp_out) evas_cache_image_drop(&re->tmp_out->cache_entry);
198 free(re);
199
200 evas_common_font_shutdown();
201 evas_common_image_shutdown();
202 evas_common_soft16_image_shutdown();
203}
204
205static void
206eng_output_resize(void *data, int w, int h)
207{
208 Render_Engine *re;
209
210 re = (Render_Engine *)data;
211
212 if ((re->width == w) && (re->height == h)) return;
213
214 if (re->ddob)
215 evas_software_ddraw_surface_resize(re->ddob);
216
217 evas_common_tilebuf_free(re->tb);
218 re->width = w;
219 re->height = h;
220 re->tb = evas_common_tilebuf_new(w, h);
221 if (re->tb)
222 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
223 if (re->ddob)
224 {
225 evas_software_ddraw_output_buffer_free(re->ddob, 0);
226 re->ddob = NULL;
227 }
228 if (re->clip_rects)
229 {
230 DeleteObject(re->clip_rects);
231 re->clip_rects = NULL;
232 }
233 if (re->tmp_out)
234 {
235 evas_cache_image_drop(&re->tmp_out->cache_entry);
236 re->tmp_out = NULL;
237 }
238}
239
240static void
241eng_output_tile_size_set(void *data, int w, int h)
242{
243 Render_Engine *re;
244
245 re = (Render_Engine *)data;
246 evas_common_tilebuf_set_tile_size(re->tb, w, h);
247}
248
249static void
250eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
251{
252 Render_Engine *re;
253
254 re = (Render_Engine *)data;
255 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
256}
257
258static void
259eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
260{
261 Render_Engine *re;
262
263 re = (Render_Engine *)data;
264 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
265}
266
267static void
268eng_output_redraws_clear(void *data)
269{
270 Render_Engine *re;
271
272 re = (Render_Engine *)data;
273 evas_common_tilebuf_clear(re->tb);
274}
275
276static inline void
277_output_buffer_alloc(Render_Engine *re)
278{
279 int width;
280 int height;
281
282 if (re->ddob) return;
283
284 if ((re->rotation == 0) || (re->rotation == 180))
285 {
286 width = re->width;
287 height = re->height;
288 }
289 else
290 {
291 width = re->height;
292 height = re->width;
293 }
294
295 re->ddob = evas_software_ddraw_output_buffer_new(re->window,
296 re->object,
297 re->surface_primary,
298 re->surface_back,
299 re->surface_source,
300 width,
301 height);
302}
303
304static void *
305eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
306{
307 Render_Engine *re;
308 Tilebuf_Rect *rect;
309 int ux, uy, uw, uh;
310
311 re = (Render_Engine *)data;
312 if (re->end)
313 {
314 re->end = 0;
315 return NULL;
316 }
317 if (!re->rects)
318 {
319 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
320 if (!re->rects) return NULL;
321
322 re->cur_rect = re->rects;
323 _output_buffer_alloc(re);
324 if (re->rotation != 0) _tmp_out_alloc(re); /* grows if required */
325 }
326 if (!re->cur_rect)
327 {
328 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
329 re->rects = NULL;
330 return NULL;
331 }
332 rect = re->cur_rect;
333 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
334 re->cur_rect = (Tilebuf_Rect *)((EINA_INLIST_GET(re->cur_rect))->next);
335 if (!re->cur_rect)
336 {
337 evas_common_tilebuf_free_render_rects(re->rects);
338 re->rects = NULL;
339 re->end = 1;
340 }
341
342 *x = ux; *y = uy; *w = uw; *h = uh;
343 if (re->rotation == 0)
344 {
345 *cx = ux; *cy = uy; *cw = uw; *ch = uh;
346 return &re->ddob->im;
347 }
348 else
349 {
350 *cx = 0; *cy = 0; *cw = uw; *ch = uh;
351 return re->tmp_out;
352 }
353}
354
355static void
356_blit_rot_90(Soft16_Image *dst, const Soft16_Image *src,
357 int out_x, int out_y, int w, int h)
358{
359 DATA16 *dp, *sp;
360 int x, y;
361
362 sp = src->pixels;
363 dp = dst->pixels + (out_x +
364 (w + out_y - 1) * dst->stride);
365
366 for (y = 0; y < h; y++)
367 {
368 DATA16 *dp_itr, *sp_itr;
369
370 sp_itr = sp;
371 dp_itr = dp;
372
373 for (x = 0; x < w; x++)
374 {
375 *dp_itr = *sp_itr;
376
377 sp_itr++;
378 dp_itr -= dst->stride;
379 }
380 sp += src->stride;
381 dp++;
382 }
383}
384
385static void
386_blit_rot_180(Soft16_Image *dst, const Soft16_Image *src,
387 int out_x, int out_y, int w, int h)
388{
389 DATA16 *dp, *sp;
390 int x, y;
391
392 sp = src->pixels;
393 dp = dst->pixels + ((w + out_x - 1) +
394 (h + out_y - 1) * dst->stride);
395
396 for (y = 0; y < h; y++)
397 {
398 DATA16 *dp_itr, *sp_itr;
399
400 sp_itr = sp;
401 dp_itr = dp;
402
403 for (x = 0; x < w; x++)
404 {
405 *dp_itr = *sp_itr;
406
407 sp_itr++;
408 dp_itr--;
409 }
410 sp += src->stride;
411 dp -= dst->stride;
412 }
413}
414
415static void
416_blit_rot_270(Soft16_Image *dst, const Soft16_Image *src,
417 int out_x, int out_y, int w, int h)
418{
419 DATA16 *dp, *sp;
420 int x, y;
421
422 sp = src->pixels;
423 dp = dst->pixels + ((h + out_x - 1) +
424 out_y * dst->stride);
425
426 for (y = 0; y < h; y++)
427 {
428 DATA16 *dp_itr, *sp_itr;
429
430 sp_itr = sp;
431 dp_itr = dp;
432
433 for (x = 0; x < w; x++)
434 {
435 *dp_itr = *sp_itr;
436
437 sp_itr++;
438 dp_itr += dst->stride;
439 }
440 sp += src->stride;
441 dp--;
442 }
443}
444
445static void
446_tmp_out_process(Render_Engine *re, int out_x, int out_y, int w, int h)
447{
448 Soft16_Image *d, *s;
449
450 d = &re->ddob->im;
451 s = re->tmp_out;
452
453 if ((w < 1) || (h < 1) || (out_x >= d->cache_entry.w) || (out_y >= d->cache_entry.h))
454 return;
455
456 if (re->rotation == 90)
457 _blit_rot_90(d, s, out_x, out_y, w, h);
458 else if (re->rotation == 180)
459 _blit_rot_180(d, s, out_x, out_y, w, h);
460 else if (re->rotation == 270)
461 _blit_rot_270(d, s, out_x, out_y, w, h);
462}
463
464static void
465eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
466{
467 Render_Engine *re;
468 HRGN region;
469 int xx;
470 int yy;
471 int width;
472 int height;
473
474 re = (Render_Engine *)data;
475
476 if (!re->clip_rects)
477 re->clip_rects = CreateRectRgn(0, 0, 0, 0);
478
479 if (re->rotation == 0)
480 {
481 xx = x;
482 yy = y;
483 width = w;
484 height = h;
485 }
486 else if (re->rotation == 90)
487 {
488 xx = y;
489 yy = re->width - w - x;
490 width = h;
491 height = w;
492 }
493 else if (re->rotation == 180)
494 {
495 xx = re->width - w - x;
496 yy = re->height - h - y;
497 width = w;
498 height = h;
499 }
500 else if (re->rotation == 270)
501 {
502 xx = re->height - h - y;
503 yy = x;
504 width = h;
505 height = w;
506 }
507
508 region = CreateRectRgn(xx, yy, xx + width, yy + height);
509
510 if (re->rotation != 0)
511 _tmp_out_process(re, xx, yy, w, h);
512 CombineRgn(re->clip_rects, re->clip_rects, region, RGN_OR);
513}
514
515static void
516eng_output_flush(void *data)
517{
518 Render_Engine *re;
519 void *ddraw_data;
520 int ddraw_width;
521 int ddraw_height;
522 int ddraw_pitch;
523 int ddraw_depth;
524
525 re = (Render_Engine *)data;
526 if (re->clip_rects)
527 {
528 /* FIXME : i have to manage that */
529/* XSetRegion(re->disp, re->gc, re->clip_rects); */
530 DeleteObject(re->clip_rects);
531 re->clip_rects = NULL;
532 }
533 else return;
534
535 evas_software_ddraw_output_buffer_paste(re->ddob);
536
537 /* FIXME : i have to manage that */
538/* XSetClipMask(re->disp, re->gc, None); */
539}
540
541static void
542eng_output_idle_flush(void *data)
543{
544 Render_Engine *re;
545
546 re = (Render_Engine *)data;
547 if (re->ddob)
548 {
549 evas_software_ddraw_output_buffer_free(re->ddob, 0);
550 re->ddob = NULL;
551 }
552 if (re->clip_rects)
553 {
554 DeleteObject(re->clip_rects);
555 re->clip_rects = NULL;
556 }
557 if (re->tmp_out)
558 {
559 evas_cache_image_drop(&re->tmp_out->cache_entry);
560 re->tmp_out = NULL;
561 }
562}
563
564static Eina_Bool
565eng_canvas_alpha_get(void *data, void *context)
566{
567 return EINA_FALSE;
568}
569
570/* module advertising code */
571static int
572module_open(Evas_Module *em)
573{
574 if (!em) return 0;
575 /* get whatever engine module we inherit from */
576 if (!_evas_module_engine_inherit(&pfunc, "software_16")) return 0;
577 _evas_engine_soft16_ddraw_log_dom = eina_log_domain_register
578 ("evas-software_16_ddraw", EVAS_DEFAULT_LOG_COLOR);
579 if (_evas_engine_soft16_ddraw_log_dom < 0)
580 {
581 EINA_LOG_ERR("Can not create a module log domain.");
582 return 0;
583 }
584 /* store it for later use */
585 func = pfunc;
586 /* now to override methods */
587#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
588 ORD(info);
589 ORD(info_free);
590 ORD(setup);
591 ORD(canvas_alpha_get);
592 ORD(output_free);
593 ORD(output_resize);
594 ORD(output_tile_size_set);
595 ORD(output_redraws_rect_add);
596 ORD(output_redraws_rect_del);
597 ORD(output_redraws_clear);
598 ORD(output_redraws_next_update_get);
599 ORD(output_redraws_next_update_push);
600 ORD(output_flush);
601 ORD(output_idle_flush);
602 /* now advertise out own api */
603 em->functions = (void *)(&func);
604 return 1;
605}
606
607static void
608module_close(Evas_Module *em)
609{
610 eina_log_domain_unregister(_evas_engine_soft16_ddraw_log_dom);
611}
612
613static Evas_Module_Api evas_modapi =
614{
615 EVAS_MODULE_API_VERSION,
616 "software_16_ddraw",
617 "none",
618 {
619 module_open,
620 module_close
621 }
622};
623
624EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_ddraw);
625
626#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
627EVAS_EINA_MODULE_DEFINE(engine, software_16_ddraw);
628#endif
diff --git a/libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.h b/libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.h
deleted file mode 100644
index fe85e97..0000000
--- a/libraries/evas/src/modules/engines/software_16_ddraw/evas_engine.h
+++ /dev/null
@@ -1,85 +0,0 @@
1#ifndef __EVAS_ENGINE_H__
2#define __EVAS_ENGINE_H__
3
4#include <windows.h>
5#include <ddraw.h>
6
7#include "evas_common_soft16.h"
8
9extern int _evas_engine_soft16_ddraw_log_dom ;
10#ifdef ERR
11# undef ERR
12#endif
13#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)
14
15#ifdef DBG
16# undef DBG
17#endif
18#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)
19
20#ifdef INF
21# undef INF
22#endif
23#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)
24
25#ifdef WRN
26# undef WRN
27#endif
28#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)
29
30#ifdef CRIT
31# undef CRIT
32#endif
33#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft16_ddraw_log_dom, __VA_ARGS__)
34
35typedef struct _DDraw_Output_Buffer DDraw_Output_Buffer;
36
37struct _DDraw_Output_Buffer
38{
39 Soft16_Image *im;
40 struct {
41 HWND window;
42 LPDIRECTDRAW object;
43 LPDIRECTDRAWSURFACE surface_primary;
44 LPDIRECTDRAWSURFACE surface_back;
45 LPDIRECTDRAWSURFACE surface_source;
46 } dd;
47 void *data;
48 int x;
49 int y;
50 int width;
51 int height;
52 int depth;
53 int pitch;
54};
55
56/****/
57
58#ifdef __cplusplus
59extern "C" {
60#endif
61
62
63DDraw_Output_Buffer *evas_software_ddraw_output_buffer_new (HWND window,
64 LPDIRECTDRAW object,
65 LPDIRECTDRAWSURFACE surface_primary,
66 LPDIRECTDRAWSURFACE surface_back,
67 LPDIRECTDRAWSURFACE surface_source,
68 int width,
69 int height);
70void evas_software_ddraw_output_buffer_free (DDraw_Output_Buffer *ddob, int sync);
71void evas_software_ddraw_output_buffer_paste (DDraw_Output_Buffer *ddob);
72
73
74void *evas_software_ddraw_lock(DDraw_Output_Buffer *ddob, int *ddraw_width, int *ddraw_height, int *ddraw_pitch, int *ddraw_depth);
75
76void evas_software_ddraw_unlock_and_flip(DDraw_Output_Buffer *ddob);
77
78void evas_software_ddraw_surface_resize(DDraw_Output_Buffer *ddob);
79
80
81#ifdef __cplusplus
82}
83#endif
84
85#endif /* __EVAS_ENGINE_H__ */
diff --git a/libraries/evas/src/modules/engines/software_16_sdl/Evas_Engine_SDL_16.h b/libraries/evas/src/modules/engines/software_16_sdl/Evas_Engine_SDL_16.h
deleted file mode 100644
index 5a133fe..0000000
--- a/libraries/evas/src/modules/engines/software_16_sdl/Evas_Engine_SDL_16.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#ifndef _EVAS_ENGINE_SDL_16_H
2# define _EVAS_ENGINE_SDL_16_H
3
4#include <SDL/SDL.h>
5
6typedef struct _Evas_Engine_Info_SDL_16 Evas_Engine_Info_SDL_16;
7struct _Evas_Engine_Info_SDL_16
8{
9 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
10 /* at you and make nasty noises */
11 Evas_Engine_Info magic;
12
13 struct {
14 int rotation;
15 int fullscreen : 1;
16 int hwsurface : 1;
17 int noframe : 1;
18 int alpha : 1;
19 } info;
20
21 /* non-blocking or blocking mode */
22 Evas_Engine_Render_Mode render_mode;
23};
24
25#endif
diff --git a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.am b/libraries/evas/src/modules/engines/software_16_sdl/Makefile.am
deleted file mode 100644
index 88204c0..0000000
--- a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.am
+++ /dev/null
@@ -1,40 +0,0 @@
1AUTOMAKE_OPTIONS = 1.4 foreign
2
3MAINTAINERCLEANFILES = Makefile.in
4
5INCLUDES = -I. -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/lib/include @FREETYPE_CFLAGS@ @PIXMAN_CFLAGS@ @SDL_CFLAGS@ @EINA_CFLAGS@
6
7if BUILD_ENGINE_SOFTWARE_16_SDL
8
9SOFTWARE_SDL_SOURCES = \
10evas_engine.c \
11evas_engine.h
12
13
14includes_HEADERS = Evas_Engine_SDL_16.h
15includesdir = $(includedir)/evas-@VMAJ@
16
17if !EVAS_STATIC_BUILD_SOFTWARE_16_SDL
18
19pkgdir = $(libdir)/evas/modules/engines/software_16_sdl/$(MODULE_ARCH)
20pkg_LTLIBRARIES = module.la
21
22module_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
23
24module_la_LIBADD = @EINA_LIBS@ @SDL_LIBS@ $(top_builddir)/src/lib/libevas.la
25module_la_LDFLAGS = -no-undefined -module -avoid-version -L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
26
27else
28
29noinst_LTLIBRARIES = libevas_engine_software_16_sdl.la
30
31libevas_engine_software_16_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
32libevas_engine_software_16_sdl_la_LIBADD = @SDL_LIBS@
33
34endif
35endif
36
37EXTRA_DIST = \
38evas_engine.c \
39evas_engine.h \
40Evas_Engine_SDL_16.h
diff --git a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in b/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
deleted file mode 100644
index a8f2cc9..0000000
--- a/libraries/evas/src/modules/engines/software_16_sdl/Makefile.in
+++ /dev/null
@@ -1,784 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_16_sdl
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84libevas_engine_software_16_sdl_la_DEPENDENCIES =
85am__libevas_engine_software_16_sdl_la_SOURCES_DIST = evas_engine.c \
86 evas_engine.h
87@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@am__objects_1 = evas_engine.lo
88@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE@am_libevas_engine_software_16_sdl_la_OBJECTS = $(am__objects_1)
89libevas_engine_software_16_sdl_la_OBJECTS = \
90 $(am_libevas_engine_software_16_sdl_la_OBJECTS)
91AM_V_lt = $(am__v_lt_$(V))
92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
93am__v_lt_0 = --silent
94@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE@am_libevas_engine_software_16_sdl_la_rpath =
95@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
96am__module_la_SOURCES_DIST = evas_engine.c evas_engine.h
97@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@am_module_la_OBJECTS = $(am__objects_1)
98module_la_OBJECTS = $(am_module_la_OBJECTS)
99module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
100 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
101 $(module_la_LDFLAGS) $(LDFLAGS) -o $@
102@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@am_module_la_rpath = -rpath \
103@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@ $(pkgdir)
104DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
105depcomp = $(SHELL) $(top_srcdir)/depcomp
106am__depfiles_maybe = depfiles
107am__mv = mv -f
108COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
109 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
110LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
111 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
112 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
113 $(AM_CFLAGS) $(CFLAGS)
114AM_V_CC = $(am__v_CC_$(V))
115am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
116am__v_CC_0 = @echo " CC " $@;
117AM_V_at = $(am__v_at_$(V))
118am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
119am__v_at_0 = @
120CCLD = $(CC)
121LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
122 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
123 $(AM_LDFLAGS) $(LDFLAGS) -o $@
124AM_V_CCLD = $(am__v_CCLD_$(V))
125am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
126am__v_CCLD_0 = @echo " CCLD " $@;
127AM_V_GEN = $(am__v_GEN_$(V))
128am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
129am__v_GEN_0 = @echo " GEN " $@;
130SOURCES = $(libevas_engine_software_16_sdl_la_SOURCES) \
131 $(module_la_SOURCES)
132DIST_SOURCES = $(am__libevas_engine_software_16_sdl_la_SOURCES_DIST) \
133 $(am__module_la_SOURCES_DIST)
134am__includes_HEADERS_DIST = Evas_Engine_SDL_16.h
135HEADERS = $(includes_HEADERS)
136ETAGS = etags
137CTAGS = ctags
138DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
139ACLOCAL = @ACLOCAL@
140ALLOCA = @ALLOCA@
141AMTAR = @AMTAR@
142AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
143AR = @AR@
144AS = @AS@
145AUTOCONF = @AUTOCONF@
146AUTOHEADER = @AUTOHEADER@
147AUTOMAKE = @AUTOMAKE@
148AWK = @AWK@
149CC = @CC@
150CCDEPMODE = @CCDEPMODE@
151CFLAGS = @CFLAGS@
152CHECK_CFLAGS = @CHECK_CFLAGS@
153CHECK_LIBS = @CHECK_LIBS@
154CPP = @CPP@
155CPPFLAGS = @CPPFLAGS@
156CXX = @CXX@
157CXXCPP = @CXXCPP@
158CXXDEPMODE = @CXXDEPMODE@
159CXXFLAGS = @CXXFLAGS@
160CYGPATH_W = @CYGPATH_W@
161DEFS = @DEFS@
162DEPDIR = @DEPDIR@
163DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
164DIRECTFB_LIBS = @DIRECTFB_LIBS@
165DLLTOOL = @DLLTOOL@
166DSYMUTIL = @DSYMUTIL@
167DUMPBIN = @DUMPBIN@
168ECHO_C = @ECHO_C@
169ECHO_N = @ECHO_N@
170ECHO_T = @ECHO_T@
171ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
172ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
173EDB_CFLAGS = @EDB_CFLAGS@
174EDB_LIBS = @EDB_LIBS@
175EDJE_CFLAGS = @EDJE_CFLAGS@
176EDJE_LIBS = @EDJE_LIBS@
177EET_CFLAGS = @EET_CFLAGS@
178EET_LIBS = @EET_LIBS@
179EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
180EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
181EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
182EGREP = @EGREP@
183EINA_CFLAGS = @EINA_CFLAGS@
184EINA_LIBS = @EINA_LIBS@
185EVAS_CFLAGS = @EVAS_CFLAGS@
186EVAS_LIBS = @EVAS_LIBS@
187EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
188EVIL_CFLAGS = @EVIL_CFLAGS@
189EVIL_LIBS = @EVIL_LIBS@
190EXEEXT = @EXEEXT@
191EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
192EXOTIC_LIBS = @EXOTIC_LIBS@
193FGREP = @FGREP@
194FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
195FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
196FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
197FREETYPE_LIBS = @FREETYPE_LIBS@
198FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
199FRIBIDI_LIBS = @FRIBIDI_LIBS@
200GL_EET_CFLAGS = @GL_EET_CFLAGS@
201GL_EET_LIBS = @GL_EET_LIBS@
202GREP = @GREP@
203HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
204HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
205INSTALL = @INSTALL@
206INSTALL_DATA = @INSTALL_DATA@
207INSTALL_PROGRAM = @INSTALL_PROGRAM@
208INSTALL_SCRIPT = @INSTALL_SCRIPT@
209INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
210LD = @LD@
211LDFLAGS = @LDFLAGS@
212LIBOBJS = @LIBOBJS@
213LIBS = @LIBS@
214LIBTOOL = @LIBTOOL@
215LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
216LINEBREAK_LIBS = @LINEBREAK_LIBS@
217LIPO = @LIPO@
218LN_S = @LN_S@
219LTLIBOBJS = @LTLIBOBJS@
220MAKEINFO = @MAKEINFO@
221MKDIR_P = @MKDIR_P@
222MODULE_ARCH = @MODULE_ARCH@
223NM = @NM@
224NMEDIT = @NMEDIT@
225OBJC = @OBJC@
226OBJCDEPMODE = @OBJCDEPMODE@
227OBJCFLAGS = @OBJCFLAGS@
228OBJDUMP = @OBJDUMP@
229OBJEXT = @OBJEXT@
230OTOOL = @OTOOL@
231OTOOL64 = @OTOOL64@
232PACKAGE = @PACKAGE@
233PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
234PACKAGE_NAME = @PACKAGE_NAME@
235PACKAGE_STRING = @PACKAGE_STRING@
236PACKAGE_TARNAME = @PACKAGE_TARNAME@
237PACKAGE_URL = @PACKAGE_URL@
238PACKAGE_VERSION = @PACKAGE_VERSION@
239PATH_SEPARATOR = @PATH_SEPARATOR@
240PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
241PIXMAN_LIBS = @PIXMAN_LIBS@
242PKG_CONFIG = @PKG_CONFIG@
243PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
244PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
245PNG_CFLAGS = @PNG_CFLAGS@
246PNG_LIBS = @PNG_LIBS@
247RANLIB = @RANLIB@
248SDL_CFLAGS = @SDL_CFLAGS@
249SDL_LIBS = @SDL_LIBS@
250SED = @SED@
251SET_MAKE = @SET_MAKE@
252SHELL = @SHELL@
253SHM_OPEN_LINK = @SHM_OPEN_LINK@
254STRIP = @STRIP@
255SVG_CFLAGS = @SVG_CFLAGS@
256SVG_LIBS = @SVG_LIBS@
257VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
258VALGRIND_LIBS = @VALGRIND_LIBS@
259VERSION = @VERSION@
260VMAJ = @VMAJ@
261WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
262WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
263XCB_CFLAGS = @XCB_CFLAGS@
264XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
265XCB_GL_LIBS = @XCB_GL_LIBS@
266XCB_LIBS = @XCB_LIBS@
267XEXT_CFLAGS = @XEXT_CFLAGS@
268XEXT_LIBS = @XEXT_LIBS@
269XMKMF = @XMKMF@
270X_CFLAGS = @X_CFLAGS@
271X_EXTRA_LIBS = @X_EXTRA_LIBS@
272X_LIBS = @X_LIBS@
273X_PRE_LIBS = @X_PRE_LIBS@
274abs_builddir = @abs_builddir@
275abs_srcdir = @abs_srcdir@
276abs_top_builddir = @abs_top_builddir@
277abs_top_srcdir = @abs_top_srcdir@
278ac_ct_CC = @ac_ct_CC@
279ac_ct_CXX = @ac_ct_CXX@
280ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
281ac_ct_OBJC = @ac_ct_OBJC@
282altivec_cflags = @altivec_cflags@
283am__include = @am__include@
284am__leading_dot = @am__leading_dot@
285am__quote = @am__quote@
286am__tar = @am__tar@
287am__untar = @am__untar@
288bindir = @bindir@
289build = @build@
290build_alias = @build_alias@
291build_cpu = @build_cpu@
292build_os = @build_os@
293build_vendor = @build_vendor@
294builddir = @builddir@
295datadir = @datadir@
296datarootdir = @datarootdir@
297dlopen_libs = @dlopen_libs@
298docdir = @docdir@
299dvidir = @dvidir@
300edje_cc = @edje_cc@
301efl_doxygen = @efl_doxygen@
302efl_have_doxygen = @efl_have_doxygen@
303evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
304evas_engine_buffer_libs = @evas_engine_buffer_libs@
305evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
306evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
307evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
308evas_engine_directfb_libs = @evas_engine_directfb_libs@
309evas_engine_fb_cflags = @evas_engine_fb_cflags@
310evas_engine_fb_libs = @evas_engine_fb_libs@
311evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
312evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
313evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
314evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
315evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
316evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
317evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
318evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
319evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
320evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
321evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
322evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
323evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
324evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
325evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
326evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
327evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
328evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
329evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
330evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
331evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
332evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
333evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
334evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
335evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
336evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
337evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
338evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
339evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
340evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
341evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
342evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
343evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
344evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
345evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
346evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
347evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
348evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
349evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
350evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
351evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
352evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
353evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
354evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
355evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
356evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
357evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
358evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
359evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
360evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
361evas_image_loader_png_libs = @evas_image_loader_png_libs@
362evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
363evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
364evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
365evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
366evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
367evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
368evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
369evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
370evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
371evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
372evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
373evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
374exec_prefix = @exec_prefix@
375have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
376have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
377have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
378have_evas_engine_software_x11 = @have_evas_engine_software_x11@
379have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
380have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
381have_lcov = @have_lcov@
382host = @host@
383host_alias = @host_alias@
384host_cpu = @host_cpu@
385host_os = @host_os@
386host_vendor = @host_vendor@
387htmldir = @htmldir@
388includedir = @includedir@
389infodir = @infodir@
390install_sh = @install_sh@
391libdir = @libdir@
392libexecdir = @libexecdir@
393localedir = @localedir@
394localstatedir = @localstatedir@
395lt_ECHO = @lt_ECHO@
396lt_enable_auto_import = @lt_enable_auto_import@
397mandir = @mandir@
398mkdir_p = @mkdir_p@
399oldincludedir = @oldincludedir@
400pdfdir = @pdfdir@
401pkgconfig_requires_private = @pkgconfig_requires_private@
402prefix = @prefix@
403program_transform_name = @program_transform_name@
404psdir = @psdir@
405pthread_cflags = @pthread_cflags@
406pthread_libs = @pthread_libs@
407release_info = @release_info@
408requirement_evas = @requirement_evas@
409sbindir = @sbindir@
410sharedstatedir = @sharedstatedir@
411srcdir = @srcdir@
412sysconfdir = @sysconfdir@
413target_alias = @target_alias@
414top_build_prefix = @top_build_prefix@
415top_builddir = @top_builddir@
416top_srcdir = @top_srcdir@
417version_info = @version_info@
418AUTOMAKE_OPTIONS = 1.4 foreign
419MAINTAINERCLEANFILES = Makefile.in
420INCLUDES = -I. -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/lib/include @FREETYPE_CFLAGS@ @PIXMAN_CFLAGS@ @SDL_CFLAGS@ @EINA_CFLAGS@
421@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@SOFTWARE_SDL_SOURCES = \
422@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@evas_engine.c \
423@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@evas_engine.h
424
425@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@includes_HEADERS = Evas_Engine_SDL_16.h
426@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@includesdir = $(includedir)/evas-@VMAJ@
427@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_16_sdl/$(MODULE_ARCH)
428@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@pkg_LTLIBRARIES = module.la
429@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@module_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
430@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@module_la_LIBADD = @EINA_LIBS@ @SDL_LIBS@ $(top_builddir)/src/lib/libevas.la
431@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version -L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
432@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE@noinst_LTLIBRARIES = libevas_engine_software_16_sdl.la
433@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE@libevas_engine_software_16_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
434@BUILD_ENGINE_SOFTWARE_16_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_SDL_TRUE@libevas_engine_software_16_sdl_la_LIBADD = @SDL_LIBS@
435EXTRA_DIST = \
436evas_engine.c \
437evas_engine.h \
438Evas_Engine_SDL_16.h
439
440all: all-am
441
442.SUFFIXES:
443.SUFFIXES: .c .lo .o .obj
444$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
445 @for dep in $?; do \
446 case '$(am__configure_deps)' in \
447 *$$dep*) \
448 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
449 && { if test -f $@; then exit 0; else break; fi; }; \
450 exit 1;; \
451 esac; \
452 done; \
453 echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/modules/engines/software_16_sdl/Makefile'; \
454 $(am__cd) $(top_srcdir) && \
455 $(AUTOMAKE) --foreign src/modules/engines/software_16_sdl/Makefile
456.PRECIOUS: Makefile
457Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
458 @case '$?' in \
459 *config.status*) \
460 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
461 *) \
462 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
463 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
464 esac;
465
466$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
467 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
468
469$(top_srcdir)/configure: $(am__configure_deps)
470 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
471$(ACLOCAL_M4): $(am__aclocal_m4_deps)
472 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
473$(am__aclocal_m4_deps):
474
475clean-noinstLTLIBRARIES:
476 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
477 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
478 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
479 test "$$dir" != "$$p" || dir=.; \
480 echo "rm -f \"$${dir}/so_locations\""; \
481 rm -f "$${dir}/so_locations"; \
482 done
483install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
484 @$(NORMAL_INSTALL)
485 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
486 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
487 list2=; for p in $$list; do \
488 if test -f $$p; then \
489 list2="$$list2 $$p"; \
490 else :; fi; \
491 done; \
492 test -z "$$list2" || { \
493 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
494 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
495 }
496
497uninstall-pkgLTLIBRARIES:
498 @$(NORMAL_UNINSTALL)
499 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
500 for p in $$list; do \
501 $(am__strip_dir) \
502 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
503 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
504 done
505
506clean-pkgLTLIBRARIES:
507 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
508 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
509 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
510 test "$$dir" != "$$p" || dir=.; \
511 echo "rm -f \"$${dir}/so_locations\""; \
512 rm -f "$${dir}/so_locations"; \
513 done
514libevas_engine_software_16_sdl.la: $(libevas_engine_software_16_sdl_la_OBJECTS) $(libevas_engine_software_16_sdl_la_DEPENDENCIES)
515 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_16_sdl_la_rpath) $(libevas_engine_software_16_sdl_la_OBJECTS) $(libevas_engine_software_16_sdl_la_LIBADD) $(LIBS)
516module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
517 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
518
519mostlyclean-compile:
520 -rm -f *.$(OBJEXT)
521
522distclean-compile:
523 -rm -f *.tab.c
524
525@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
526
527.c.o:
528@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
529@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
530@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
531@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
532@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
533@am__fastdepCC_FALSE@ $(COMPILE) -c $<
534
535.c.obj:
536@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
537@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
538@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
539@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
540@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
541@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
542
543.c.lo:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
550
551mostlyclean-libtool:
552 -rm -f *.lo
553
554clean-libtool:
555 -rm -rf .libs _libs
556install-includesHEADERS: $(includes_HEADERS)
557 @$(NORMAL_INSTALL)
558 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
559 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
560 for p in $$list; do \
561 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
562 echo "$$d$$p"; \
563 done | $(am__base_list) | \
564 while read files; do \
565 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
566 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
567 done
568
569uninstall-includesHEADERS:
570 @$(NORMAL_UNINSTALL)
571 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
572 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
573 test -n "$$files" || exit 0; \
574 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
575 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
576
577ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
578 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
579 unique=`for i in $$list; do \
580 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
581 done | \
582 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
583 END { if (nonempty) { for (i in files) print i; }; }'`; \
584 mkid -fID $$unique
585tags: TAGS
586
587TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
588 $(TAGS_FILES) $(LISP)
589 set x; \
590 here=`pwd`; \
591 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
592 unique=`for i in $$list; do \
593 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
594 done | \
595 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
596 END { if (nonempty) { for (i in files) print i; }; }'`; \
597 shift; \
598 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
599 test -n "$$unique" || unique=$$empty_fix; \
600 if test $$# -gt 0; then \
601 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
602 "$$@" $$unique; \
603 else \
604 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
605 $$unique; \
606 fi; \
607 fi
608ctags: CTAGS
609CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
610 $(TAGS_FILES) $(LISP)
611 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
612 unique=`for i in $$list; do \
613 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
614 done | \
615 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
616 END { if (nonempty) { for (i in files) print i; }; }'`; \
617 test -z "$(CTAGS_ARGS)$$unique" \
618 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
619 $$unique
620
621GTAGS:
622 here=`$(am__cd) $(top_builddir) && pwd` \
623 && $(am__cd) $(top_srcdir) \
624 && gtags -i $(GTAGS_ARGS) "$$here"
625
626distclean-tags:
627 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
628
629distdir: $(DISTFILES)
630 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
631 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
632 list='$(DISTFILES)'; \
633 dist_files=`for file in $$list; do echo $$file; done | \
634 sed -e "s|^$$srcdirstrip/||;t" \
635 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
636 case $$dist_files in \
637 */*) $(MKDIR_P) `echo "$$dist_files" | \
638 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
639 sort -u` ;; \
640 esac; \
641 for file in $$dist_files; do \
642 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
643 if test -d $$d/$$file; then \
644 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
645 if test -d "$(distdir)/$$file"; then \
646 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
647 fi; \
648 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
649 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
650 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
651 fi; \
652 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
653 else \
654 test -f "$(distdir)/$$file" \
655 || cp -p $$d/$$file "$(distdir)/$$file" \
656 || exit 1; \
657 fi; \
658 done
659check-am: all-am
660check: check-am
661all-am: Makefile $(LTLIBRARIES) $(HEADERS)
662installdirs:
663 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
664 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
665 done
666install: install-am
667install-exec: install-exec-am
668install-data: install-data-am
669uninstall: uninstall-am
670
671install-am: all-am
672 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
673
674installcheck: installcheck-am
675install-strip:
676 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
677 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
678 `test -z '$(STRIP)' || \
679 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
680mostlyclean-generic:
681
682clean-generic:
683
684distclean-generic:
685 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
686 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
687
688maintainer-clean-generic:
689 @echo "This command is intended for maintainers to use"
690 @echo "it deletes files that may require special tools to rebuild."
691 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
692clean: clean-am
693
694clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
695 clean-pkgLTLIBRARIES mostlyclean-am
696
697distclean: distclean-am
698 -rm -rf ./$(DEPDIR)
699 -rm -f Makefile
700distclean-am: clean-am distclean-compile distclean-generic \
701 distclean-tags
702
703dvi: dvi-am
704
705dvi-am:
706
707html: html-am
708
709html-am:
710
711info: info-am
712
713info-am:
714
715install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
716
717install-dvi: install-dvi-am
718
719install-dvi-am:
720
721install-exec-am:
722
723install-html: install-html-am
724
725install-html-am:
726
727install-info: install-info-am
728
729install-info-am:
730
731install-man:
732
733install-pdf: install-pdf-am
734
735install-pdf-am:
736
737install-ps: install-ps-am
738
739install-ps-am:
740
741installcheck-am:
742
743maintainer-clean: maintainer-clean-am
744 -rm -rf ./$(DEPDIR)
745 -rm -f Makefile
746maintainer-clean-am: distclean-am maintainer-clean-generic
747
748mostlyclean: mostlyclean-am
749
750mostlyclean-am: mostlyclean-compile mostlyclean-generic \
751 mostlyclean-libtool
752
753pdf: pdf-am
754
755pdf-am:
756
757ps: ps-am
758
759ps-am:
760
761uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
762
763.MAKE: install-am install-strip
764
765.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
766 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
767 ctags distclean distclean-compile distclean-generic \
768 distclean-libtool distclean-tags distdir dvi dvi-am html \
769 html-am info info-am install install-am install-data \
770 install-data-am install-dvi install-dvi-am install-exec \
771 install-exec-am install-html install-html-am \
772 install-includesHEADERS install-info install-info-am \
773 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
774 install-ps install-ps-am install-strip installcheck \
775 installcheck-am installdirs maintainer-clean \
776 maintainer-clean-generic mostlyclean mostlyclean-compile \
777 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
778 tags uninstall uninstall-am uninstall-includesHEADERS \
779 uninstall-pkgLTLIBRARIES
780
781
782# Tell versions [3.59,3.63) of GNU make to not export all variables.
783# Otherwise a system limit (for SysV at least) may be exceeded.
784.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_16_sdl/evas_engine.c b/libraries/evas/src/modules/engines/software_16_sdl/evas_engine.c
deleted file mode 100644
index 02f9341..0000000
--- a/libraries/evas/src/modules/engines/software_16_sdl/evas_engine.c
+++ /dev/null
@@ -1,1337 +0,0 @@
1#include <assert.h>
2#include <math.h>
3#include <string.h>
4#include <sys/time.h>
5#include <time.h>
6#include <SDL/SDL.h>
7
8#include "evas_common.h"/* Also includes international specific stuff */
9#include "evas_engine.h"
10int _evas_engine_soft16_sdl_log_dom = -1;
11
12/* function tables - filled in later (func and parent func) */
13static Evas_Func func, pfunc;
14
15static Engine_Image_Entry *_sdl16_image_alloc (void);
16static void _sdl16_image_delete (Engine_Image_Entry *eim);
17
18static int _sdl16_image_constructor (Engine_Image_Entry *ie, void* data);
19static void _sdl16_image_destructor (Engine_Image_Entry *eim);
20
21static void _sdl16_image_dirty_region(Engine_Image_Entry *eim, unsigned int x, unsigned int y, unsigned int w, unsigned int h);
22
23static int _sdl16_image_dirty (Engine_Image_Entry *dst, const Engine_Image_Entry *src);
24
25static int _sdl16_image_size_set (Engine_Image_Entry *dst, const Engine_Image_Entry *src);
26
27static int _sdl16_image_update_data (Engine_Image_Entry* dst, void* engine_data);
28
29static void _sdl16_image_load (Engine_Image_Entry *eim, const Image_Entry* im);
30static int _sdl16_image_mem_size_get(Engine_Image_Entry *eim);
31
32#ifdef DEBUG_SDL
33static void _sdl16_image_debug (const char* context, Engine_Image_Entry* im);
34#endif
35
36static const Evas_Cache_Engine_Image_Func _sdl16_cache_engine_image_cb = {
37 NULL /* key */,
38 _sdl16_image_alloc /* alloc */,
39 _sdl16_image_delete /* dealloc */,
40 _sdl16_image_constructor /* constructor */,
41 _sdl16_image_destructor /* destructor */,
42 _sdl16_image_dirty_region /* dirty_region */,
43 _sdl16_image_dirty /* dirty */,
44 _sdl16_image_size_set /* size_set */,
45 _sdl16_image_update_data /* update_data */,
46 _sdl16_image_load /* load */,
47 _sdl16_image_mem_size_get /* mem_size_get */,
48#ifdef DEBUG_SDL /* debug */
49 _sdl16_image_debug
50#else
51 NULL
52#endif
53};
54
55#define _SDL_UPDATE_PIXELS(EIM) \
56 ((Soft16_Image *) EIM->cache_entry.src)->pixels = EIM->surface->pixels;
57
58#define RMASK565 0xf800
59#define GMASK565 0x07e0
60#define BMASK565 0x001f
61#define AMASK565 0x0000
62
63/* engine api this module provides */
64static void *
65evas_engine_sdl16_info(Evas *e __UNUSED__)
66{
67 Evas_Engine_Info_SDL_16 *info;
68 info = calloc(1, sizeof(Evas_Engine_Info_SDL_16));
69 if (!info) return NULL;
70 info->magic.magic = rand();
71 return info;
72}
73
74static void
75evas_engine_sdl16_info_free(Evas *e __UNUSED__, void *info)
76{
77 Evas_Engine_Info_SDL_16 *in;
78 in = (Evas_Engine_Info_SDL_16 *)info;
79 free(in);
80}
81
82static void
83_tmp_out_alloc(Render_Engine *re)
84{
85 Tilebuf_Rect *r;
86 unsigned int w = 0, h = 0;
87
88 EINA_INLIST_FOREACH(re->rects, r)
89 {
90 if (r->w > (int)w) w = r->w;
91 if (r->h > (int)h) h = r->h;
92 }
93
94 if (re->tmp_out)
95 {
96 if ((re->tmp_out->cache_entry.w < w) || (re->tmp_out->cache_entry.h < h))
97 {
98 evas_cache_image_drop(&re->tmp_out->cache_entry);
99 re->tmp_out = NULL;
100 }
101 }
102
103 if (!re->tmp_out)
104 {
105 Soft16_Image *im;
106
107 im = (Soft16_Image *) evas_cache_image_empty(evas_common_soft16_image_cache_get());
108 im->cache_entry.flags.alpha = 0;
109 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
110
111 re->tmp_out = im;
112 }
113}
114
115static void*
116_sdl16_output_setup(int w, int h, int rotation, int fullscreen, int noframe, int hwsurface)
117{
118 Render_Engine *re;
119 SDL_Surface *surface;
120
121 re = calloc(1, sizeof(Render_Engine));
122 if (!re)
123 return NULL;
124 /* if we haven't initialized - init (automatic abort if already done) */
125 evas_common_cpu_init();
126 evas_common_blend_init();
127 evas_common_image_init();
128 evas_common_convert_init();
129 evas_common_scale_init();
130 evas_common_rectangle_init();
131 evas_common_polygon_init();
132 evas_common_line_init();
133 evas_common_font_init();
134 evas_common_draw_init();
135 evas_common_tilebuf_init();
136 evas_common_soft16_image_init();
137
138 if (w <= 0) w = 640;
139 if (h <= 0) h = 480;
140
141 re->cache = evas_cache_engine_image_init(&_sdl16_cache_engine_image_cb, evas_common_soft16_image_cache_get());
142 if (!re->cache)
143 {
144 ERR("Evas_Cache_Engine_Image allocation failed!");
145 free(re);
146 return NULL;
147 }
148
149 re->tb = evas_common_tilebuf_new(w, h);
150 /* in preliminary tests 16x16 gave highest framerates */
151 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
152 re->w = w;
153 re->h = h;
154 re->rot = rotation;
155 re->flags.hwsurface = hwsurface;
156 re->flags.fullscreen = fullscreen;
157 re->flags.noframe = noframe;
158 re->flags.end = 0;
159
160 re->update_rects_count = 0;
161 re->update_rects_limit = 0;
162 re->update_rects = NULL;
163
164 surface = SDL_SetVideoMode(w, h, 16,
165 (hwsurface ? SDL_HWSURFACE : SDL_SWSURFACE)
166 | (fullscreen ? SDL_FULLSCREEN : 0)
167 | (noframe ? SDL_NOFRAME : 0));
168 if (!surface)
169 {
170 ERR("SDL_SetVideoMode [ %i x %i x 16 ] failed", w, h);
171 evas_cache_engine_image_shutdown(re->cache);
172 free(re);
173 return NULL;
174 }
175
176 SDL_SetAlpha(surface, SDL_RLEACCEL, 0);
177 SDL_FillRect(surface, NULL, 0);
178
179 re->soft16_engine_image = (SDL_Engine_Image_Entry *) evas_cache_engine_image_engine(re->cache, surface);
180 if (!re->soft16_engine_image)
181 {
182 ERR("Soft16_Image allocation from SDL failed");
183 evas_cache_engine_image_shutdown(re->cache);
184 free(re);
185 return NULL;
186 }
187
188 return re;
189}
190
191
192static int
193evas_engine_sdl16_setup(Evas *e, void *in)
194{
195 Evas_Engine_Info_SDL_16 *info = (Evas_Engine_Info_SDL_16 *) in;
196
197 if (evas_output_method_get(e) != evas_render_method_lookup("software_16_sdl"))
198 return 0;
199
200 SDL_Init(SDL_INIT_NOPARACHUTE);
201
202 if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
203 {
204 ERR("SDL_Init failed with %s", SDL_GetError());
205 SDL_Quit();
206 return 0;
207 }
208
209 e->engine.data.output = _sdl16_output_setup(e->output.w, e->output.h,
210 info->info.rotation,
211 info->info.fullscreen,
212 info->info.noframe,
213 info->info.hwsurface);
214 if (!e->engine.data.output)
215 return 0;
216
217 e->engine.func = &func;
218 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
219
220 return 1;
221}
222
223static void
224evas_engine_sdl16_output_free(void *data)
225{
226 Render_Engine *re;
227
228 re = (Render_Engine *)data;
229 if (re->tb) evas_common_tilebuf_free(re->tb);
230 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
231 if (re->tmp_out) evas_cache_image_drop(&re->tmp_out->cache_entry);
232 if (re->soft16_engine_image)
233 evas_cache_engine_image_drop(&re->soft16_engine_image->cache_entry);
234 if (re->cache) evas_cache_engine_image_shutdown(re->cache);
235
236 if (re->update_rects)
237 free(re->update_rects);
238 free(re);
239
240 evas_common_font_shutdown();
241 evas_common_image_shutdown();
242 evas_common_soft16_image_shutdown();
243
244 SDL_QuitSubSystem(SDL_INIT_VIDEO);
245}
246
247static void
248evas_engine_sdl16_output_resize(void *data, int w, int h)
249{
250 Render_Engine *re = data;
251 SDL_Surface *surface;
252
253 if ((re->tb->outbuf_w == w) && (re->tb->outbuf_h == h)) return;
254
255 evas_cache_engine_image_drop(&re->soft16_engine_image->cache_entry);
256
257 evas_common_tilebuf_free(re->tb);
258 re->w = w;
259 re->h = h;
260 re->tb = evas_common_tilebuf_new(w, h);
261 if (re->tb)
262 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
263
264 surface = SDL_SetVideoMode(w, h, 16,
265 (re->flags.hwsurface ? SDL_HWSURFACE : SDL_SWSURFACE)
266 | (re->flags.fullscreen ? SDL_FULLSCREEN : 0)
267 | (re->flags.noframe ? SDL_NOFRAME : 0));
268 if (!surface)
269 {
270 ERR("Unable to change the resolution to : %ix%i", w, h);
271 exit(-1);
272 }
273 re->soft16_engine_image = (SDL_Engine_Image_Entry *) evas_cache_engine_image_engine(re->cache, surface);
274 if (!re->soft16_engine_image)
275 {
276 ERR("RGBA_Image allocation from SDL failed");
277 exit(-1);
278 }
279
280 SDL_FillRect(surface, NULL, 0);
281
282 if (re->tmp_out)
283 {
284 evas_cache_image_drop(&re->tmp_out->cache_entry);
285 re->tmp_out = NULL;
286 }
287}
288
289static void
290evas_engine_sdl16_output_tile_size_set(void *data, int w, int h)
291{
292 Render_Engine *re;
293
294 re = (Render_Engine *)data;
295 evas_common_tilebuf_set_tile_size(re->tb, w, h);
296}
297
298static void
299evas_engine_sdl16_output_redraws_rect_add(void *data, int x, int y, int w, int h)
300{
301 Render_Engine *re;
302
303 re = (Render_Engine *)data;
304 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
305}
306
307static void
308evas_engine_sdl16_output_redraws_rect_del(void *data, int x, int y, int w, int h)
309{
310 Render_Engine *re;
311
312 re = (Render_Engine *)data;
313 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
314}
315
316static void
317evas_engine_sdl16_output_redraws_clear(void *data)
318{
319 Render_Engine *re;
320
321 re = (Render_Engine *)data;
322 evas_common_tilebuf_clear(re->tb);
323}
324
325static void *
326evas_engine_sdl16_output_redraws_next_update_get(void *data,
327 int *x, int *y, int *w, int *h,
328 int *cx, int *cy, int *cw, int *ch)
329{
330 Render_Engine *re = data;
331 Tilebuf_Rect *tb_rect;
332 SDL_Rect rect;
333
334 if (re->flags.end)
335 {
336 re->flags.end = 0;
337 return NULL;
338 }
339 if (!re->rects)
340 {
341 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
342 re->cur_rect = re->rects;
343 if (re->rot != 0) _tmp_out_alloc(re); /* grows if required */
344 }
345
346 if (!re->cur_rect)
347 {
348 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
349 re->rects = NULL;
350 return NULL;
351 }
352
353 tb_rect = re->cur_rect;
354 *cx = *x = tb_rect->x;
355 *cy = *y = tb_rect->y;
356 *cw = *w = tb_rect->w;
357 *ch = *h = tb_rect->h;
358 re->cur_rect = (Tilebuf_Rect *)((EINA_INLIST_GET(re->cur_rect))->next);
359 if (!re->cur_rect)
360 {
361 evas_common_tilebuf_free_render_rects(re->rects);
362 re->rects = NULL;
363 re->flags.end = 1;
364 }
365
366 if (re->rot != 0)
367 {
368 *cx = 0;
369 *cy = 0;
370 }
371
372 rect.x = *x;
373 rect.y = *y;
374 rect.w = *w;
375 rect.h = *h;
376
377 /* Return the "fake" surface so it is passed to the drawing routines. */
378 return re->soft16_engine_image;
379}
380
381static void
382_blit_rot_90(Soft16_Image *dst, const Soft16_Image *src,
383 int out_x, int out_y, int w, int h)
384{
385 DATA16 *dp, *sp;
386 int x, y;
387
388 sp = src->pixels;
389 dp = dst->pixels + (out_x +
390 (w + out_y - 1) * dst->stride);
391
392 for (y = 0; y < h; y++)
393 {
394 DATA16 *dp_itr, *sp_itr;
395
396 sp_itr = sp;
397 dp_itr = dp;
398
399 for (x = 0; x < w; x++)
400 {
401 *dp_itr = *sp_itr;
402
403 sp_itr++;
404 dp_itr -= dst->stride;
405 }
406 sp += src->stride;
407 dp++;
408 }
409}
410
411static void
412_blit_rot_180(Soft16_Image *dst, const Soft16_Image *src,
413 int out_x, int out_y, int w, int h)
414{
415 DATA16 *dp, *sp;
416 int x, y;
417
418 sp = src->pixels;
419 dp = dst->pixels + ((w + out_x - 1) +
420 (h + out_y - 1) * dst->stride);
421
422 for (y = 0; y < h; y++)
423 {
424 DATA16 *dp_itr, *sp_itr;
425
426 sp_itr = sp;
427 dp_itr = dp;
428
429 for (x = 0; x < w; x++)
430 {
431 *dp_itr = *sp_itr;
432
433 sp_itr++;
434 dp_itr--;
435 }
436 sp += src->stride;
437 dp -= dst->stride;
438 }
439}
440
441static void
442_blit_rot_270(Soft16_Image *dst, const Soft16_Image *src,
443 int out_x, int out_y, int w, int h)
444{
445 DATA16 *dp, *sp;
446 int x, y;
447
448 sp = src->pixels;
449 dp = dst->pixels + ((h + out_x - 1) +
450 out_y * dst->stride);
451
452 for (y = 0; y < h; y++)
453 {
454 DATA16 *dp_itr, *sp_itr;
455
456 sp_itr = sp;
457 dp_itr = dp;
458
459 for (x = 0; x < w; x++)
460 {
461 *dp_itr = *sp_itr;
462
463 sp_itr++;
464 dp_itr += dst->stride;
465 }
466 sp += src->stride;
467 dp--;
468 }
469}
470
471static void
472_tmp_out_process(Render_Engine *re, int out_x, int out_y, int w, int h)
473{
474 Soft16_Image *d, *s;
475
476 d = (Soft16_Image *) re->soft16_engine_image->cache_entry.src;
477 s = re->tmp_out;
478
479 if ((w < 1) || (h < 1) ||
480 (out_x >= (int)d->cache_entry.w) || (out_y >= (int)d->cache_entry.h))
481 return;
482
483 if (re->rot == 90)
484 _blit_rot_90(d, s, out_x, out_y, w, h);
485 else if (re->rot == 180)
486 _blit_rot_180(d, s, out_x, out_y, w, h);
487 else if (re->rot == 270)
488 _blit_rot_270(d, s, out_x, out_y, w, h);
489}
490
491static void
492evas_engine_sdl16_output_redraws_next_update_push(void *data, void *surface __UNUSED__,
493 int x, int y, int w, int h)
494{
495 Render_Engine *re = data;
496 SDL_Rect rect;
497
498 if (re->update_rects_count + 1 > re->update_rects_limit)
499 {
500 re->update_rects_limit += 8;
501 re->update_rects = realloc(re->update_rects, sizeof (SDL_Rect) * re->update_rects_limit);
502 }
503
504 rect.x = x;
505 rect.y = y;
506 rect.w = w;
507 rect.h = h;
508
509 switch (re->rot)
510 {
511 case 0:
512 break;
513 case 90:
514 rect.x = y;
515 rect.y = re->w - w - x;
516 rect.w = h;
517 rect.h = w;
518 break;
519 case 180:
520 rect.x = re->w - w - x;
521 rect.y = re->h - h - y;
522 break;
523 case 270:
524 rect.x = re->h - h - y;
525 rect.y = x;
526 rect.w = h;
527 rect.h = w;
528 break;
529 default:
530 abort();
531 }
532
533 re->update_rects[re->update_rects_count] = rect;
534
535 if (re->rot != 0)
536 _tmp_out_process(re, rect.x, rect.y, w, h);
537
538 ++re->update_rects_count;
539
540 evas_common_cpu_end_opt();
541}
542
543static void
544evas_engine_sdl16_output_flush(void *data)
545{
546 Render_Engine *re = data;
547
548 if (re->update_rects_count > 0)
549 SDL_UpdateRects(re->soft16_engine_image->surface, re->update_rects_count, re->update_rects);
550
551 re->update_rects_count = 0;
552}
553
554static void
555evas_engine_sdl16_output_idle_flush(void *data)
556{
557 Render_Engine *re;
558
559 re = (Render_Engine *)data;
560 if (re->tmp_out)
561 {
562 evas_cache_image_drop(&re->tmp_out->cache_entry);
563 re->tmp_out = NULL;
564 }
565}
566
567static void*
568evas_engine_sdl16_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
569{
570 Render_Engine* re = (Render_Engine*) data;;
571
572 *error = 0;
573 return evas_cache_engine_image_request(re->cache, file, key, lo, NULL, error);
574}
575
576static int
577evas_engine_sdl16_image_alpha_get(void *data __UNUSED__, void *image)
578{
579 SDL_Engine_Image_Entry *eim = image;
580 Soft16_Image *im;
581
582 if (!eim) return 1;
583 im = (Soft16_Image *) eim->cache_entry.src;
584 switch (eim->cache_entry.src->space)
585 {
586 case EVAS_COLORSPACE_ARGB8888:
587 if (im->cache_entry.flags.alpha) return 1;
588 default:
589 break;
590 }
591 return 0;
592}
593
594static void
595evas_engine_sdl16_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
596{
597 SDL_Engine_Image_Entry *eim;
598
599 eim = image;
600 if (w) *w = eim->cache_entry.src->w;
601 if (h) *h = eim->cache_entry.src->h;
602}
603
604static int
605evas_engine_sdl16_image_colorspace_get(void *data __UNUSED__, void *image __UNUSED__)
606{
607 SDL_Engine_Image_Entry *eim = image;
608
609 if (!eim) return EVAS_COLORSPACE_RGB565_A5P;
610 return eim->cache_entry.src->space;
611}
612
613static void
614evas_engine_sdl16_image_colorspace_set(void *data __UNUSED__, void *image __UNUSED__, int cspace __UNUSED__)
615{
616 SDL_Engine_Image_Entry *eim = image;
617
618 if (!eim) return;
619 if (eim->cache_entry.src->space == cspace) return;
620
621 evas_cache_engine_image_colorspace(&eim->cache_entry, cspace, NULL);
622}
623
624static void*
625evas_engine_sdl16_image_new_from_copied_data(void *data,
626 int w, int h,
627 DATA32* image_data,
628 int alpha, int cspace)
629{
630 Render_Engine *re = data;
631
632 if (cspace != EVAS_COLORSPACE_RGB565_A5P)
633 {
634 WRN("Unsupported colorspace %d in %s() (%s:%d)",
635 cspace, __FUNCTION__, __FILE__, __LINE__);
636 return NULL;
637 }
638
639 WRN("s image_data: %p", image_data);
640
641 return evas_cache_engine_image_copied_data(re->cache,
642 w, h,
643 image_data,
644 alpha, cspace, NULL);
645}
646
647static void*
648evas_engine_sdl16_image_new_from_data(void *data, int w, int h, DATA32* image_data, int alpha, int cspace)
649{
650 Render_Engine *re = data;
651
652 if (cspace != EVAS_COLORSPACE_RGB565_A5P)
653 {
654 WRN("Unsupported colorspace %d in %s() (%s:%d)",
655 cspace, __FUNCTION__, __FILE__, __LINE__);
656 return NULL;
657 }
658
659 return evas_cache_engine_image_data(re->cache,
660 w, h,
661 image_data,
662 alpha, cspace, NULL);
663}
664
665static void
666evas_engine_sdl16_image_free(void *data __UNUSED__, void *image)
667{
668 SDL_Engine_Image_Entry *eim = image;
669
670 evas_cache_engine_image_drop(&eim->cache_entry);
671}
672
673static void*
674evas_engine_sdl16_image_size_set(void *data __UNUSED__, void *image, int w, int h)
675{
676 SDL_Engine_Image_Entry *eim = image;
677
678 return evas_cache_engine_image_size_set(&eim->cache_entry, w, h);
679}
680
681static void*
682evas_engine_sdl16_image_dirty_region(void *data __UNUSED__,
683 void *image,
684 int x, int y, int w, int h)
685{
686 SDL_Engine_Image_Entry *eim = image;
687
688 return evas_cache_engine_image_dirty(&eim->cache_entry, x, y, w, h);
689}
690
691static void*
692evas_engine_sdl16_image_data_get(void *data __UNUSED__, void *image,
693 int to_write, DATA32** image_data, int *err)
694{
695 SDL_Engine_Image_Entry *eim = image;
696 Soft16_Image *im;
697 int error;
698
699 if (!eim)
700 {
701 *image_data = NULL;
702 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
703 return NULL;
704 }
705 im = (Soft16_Image *) eim->cache_entry.src;
706
707 if (to_write)
708 eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_dirty(&eim->cache_entry,
709 0, 0, eim->cache_entry.src->w, eim->cache_entry.src->h);
710
711 error = evas_cache_image_load_data(&im->cache_entry);
712 /* FIXME: Handle colorspace conversion correctly. */
713 if (image_data) *image_data = (DATA32 *) im->pixels;
714
715 if (err) *err = error;
716 return eim;
717}
718
719static void*
720evas_engine_sdl16_image_data_put(void *data, void *image, DATA32* image_data)
721{
722 SDL_Engine_Image_Entry *eim = image;
723 SDL_Engine_Image_Entry *eim_new;
724 Render_Engine *re = data;
725 Soft16_Image *im;
726
727 if (!eim) return NULL;
728 im = (Soft16_Image *) eim->cache_entry.src;
729
730 /* FIXME: Handle colorspace conversion correctly. */
731 if ((DATA16 *) image_data == im->pixels) return eim;
732
733 eim_new = (SDL_Engine_Image_Entry *) evas_cache_engine_image_data(re->cache,
734 eim->cache_entry.w, eim->cache_entry.h,
735 image_data,
736 func.image_alpha_get(data, eim),
737 func.image_colorspace_get(data, eim),
738 NULL);
739 evas_cache_engine_image_drop(&eim->cache_entry);
740
741 return eim_new;
742}
743
744static void
745evas_engine_sdl16_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
746{
747 SDL_Engine_Image_Entry *eim = image;
748 Soft16_Image *im;
749
750 if (!eim) return ;
751 im = (Soft16_Image *) eim->cache_entry.src;
752 if (!im) return ;
753 evas_cache_image_preload_data(&im->cache_entry, target);
754}
755
756static void
757evas_engine_sdl16_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
758{
759 SDL_Engine_Image_Entry *eim = image;
760 Soft16_Image *im;
761
762 if (!eim) return ;
763 im = (Soft16_Image *) eim->cache_entry.src;
764 if (!im) return ;
765 evas_cache_image_preload_cancel(&im->cache_entry, target);
766}
767
768static void*
769evas_engine_sdl16_image_alpha_set(void *data __UNUSED__, void *image, int has_alpha)
770{
771 SDL_Engine_Image_Entry *eim = image;
772 Soft16_Image *im;
773
774 if (!eim) return NULL;
775
776 im = (Soft16_Image *) eim->cache_entry.src;
777
778 if (im->cache_entry.flags.alpha == has_alpha) return eim;
779
780 //eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_alone(&eim->cache_entry, NULL);
781 //im = (Soft16_Image *) eim->cache_entry.src;
782
783 im->cache_entry.flags.alpha = has_alpha;
784 eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_dirty(&eim->cache_entry, 0, 0, eim->cache_entry.w, eim->cache_entry.h);
785
786 return eim;
787}
788
789static void*
790evas_engine_sdl16_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
791{
792 return image;
793}
794
795static void
796evas_engine_sdl16_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
797{
798 /* FIXME: need to know what evas expect from this call */
799}
800
801static void
802evas_engine_sdl16_image_draw(void *data __UNUSED__, void *context, void *surface, void *image,
803 int src_region_x, int src_region_y, int src_region_w, int src_region_h,
804 int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h,
805 int smooth)
806{
807 SDL_Engine_Image_Entry *eim = image;
808 SDL_Engine_Image_Entry *dst = surface;
809 int mustlock_im = 0;
810 int mustlock_dst = 0;
811
812 evas_cache_engine_image_load_data(&eim->cache_entry);
813
814 /* Fallback to software method */
815 if (SDL_MUSTLOCK(dst->surface))
816 {
817 mustlock_dst = 1;
818 SDL_LockSurface(dst->surface);
819 _SDL_UPDATE_PIXELS(dst);
820 }
821
822 if (eim->surface && SDL_MUSTLOCK(eim->surface))
823 {
824 mustlock_im = 1;
825 SDL_LockSurface(eim->surface);
826 _SDL_UPDATE_PIXELS(eim);
827 }
828
829 evas_common_soft16_image_draw((Soft16_Image *) eim->cache_entry.src,
830 (Soft16_Image *) dst->cache_entry.src,
831 context,
832 src_region_x, src_region_y, src_region_w, src_region_h,
833 dst_region_x, dst_region_y, dst_region_w, dst_region_h,
834 smooth);
835
836 evas_common_cpu_end_opt ();
837 if (mustlock_im)
838 SDL_UnlockSurface(eim->surface);
839
840 if (mustlock_dst)
841 SDL_UnlockSurface(dst->surface);
842}
843
844static void
845evas_engine_sdl16_image_map_draw(void *data __UNUSED__, void *context __UNUSED__, void *surface __UNUSED__, void *image __UNUSED__, int npoints __UNUSED__, RGBA_Map_Point *p __UNUSED__, int smooth __UNUSED__, int level __UNUSED__)
846{
847}
848
849static void
850evas_engine_sdl16_image_scale_hint_set(void *data __UNUSED__, void *image __UNUSED__, int hint __UNUSED__)
851{
852}
853
854static int
855evas_engine_sdl16_image_scale_hint_get(void *data __UNUSED__, void *image __UNUSED__)
856{
857 return EVAS_IMAGE_SCALE_HINT_NONE;
858}
859
860
861static void
862evas_engine_sdl16_image_cache_flush(void *data)
863{
864 Render_Engine *re = (Render_Engine*) data;
865 int size;
866
867 size = evas_cache_engine_image_get(re->cache);
868 evas_cache_engine_image_set(re->cache, 0);
869 evas_cache_engine_image_set(re->cache, size);
870}
871
872static void
873evas_engine_sdl16_image_cache_set(void *data, int bytes)
874{
875 Render_Engine *re = (Render_Engine*) data;
876
877 evas_cache_engine_image_set(re->cache, bytes);
878}
879
880static int
881evas_engine_sdl16_image_cache_get(void *data)
882{
883 Render_Engine *re = (Render_Engine*) data;
884
885 return evas_cache_engine_image_get(re->cache);
886}
887
888static char*
889evas_engine_sdl16_image_comment_get(void *data __UNUSED__, void *image __UNUSED__, char *key __UNUSED__)
890{
891 return NULL;
892}
893
894static char*
895evas_engine_sdl16_image_format_get(void *data __UNUSED__, void *image __UNUSED__)
896{
897 /* FIXME: need to know what evas expect from this call */
898 return NULL;
899}
900
901static void
902evas_engine_sdl16_font_draw(void *data __UNUSED__, void *context, void *surface, void *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
903{
904 static RGBA_Image *im = NULL;
905 SDL_Engine_Image_Entry *eim = surface;
906 Soft16_Image *dst = (Soft16_Image *) eim->cache_entry.src;
907 int mustlock_im = 0;
908
909 if (eim->surface && SDL_MUSTLOCK(eim->surface))
910 {
911 mustlock_im = 1;
912 SDL_LockSurface(eim->surface);
913 _SDL_UPDATE_PIXELS(eim);
914 }
915 evas_common_draw_context_font_ext_set(context,
916 dst,
917 evas_common_soft16_font_glyph_new,
918 evas_common_soft16_font_glyph_free,
919 evas_common_soft16_font_glyph_draw);
920 evas_common_font_draw((RGBA_Image *) eim->cache_entry.src, context, font, x, y, intl_props);
921 evas_common_draw_context_font_ext_set(context,
922 NULL,
923 NULL,
924 NULL,
925 NULL);
926
927 if (mustlock_im)
928 SDL_UnlockSurface(eim->surface);
929}
930
931static void
932evas_engine_sdl16_line_draw(void *data __UNUSED__, void *context, void *surface, int x1, int y1, int x2, int y2)
933{
934 SDL_Engine_Image_Entry *eim = surface;
935 int mustlock_im = 0;
936
937 if (eim->surface && SDL_MUSTLOCK(eim->surface))
938 {
939 mustlock_im = 1;
940 SDL_LockSurface(eim->surface);
941 _SDL_UPDATE_PIXELS(eim);
942 }
943
944 evas_common_soft16_line_draw((Soft16_Image *) eim->cache_entry.src,
945 context,
946 x1, y1, x2, y2);
947 evas_common_cpu_end_opt();
948
949 if (mustlock_im)
950 SDL_UnlockSurface(eim->surface);
951}
952
953static void
954evas_engine_sdl16_rectangle_draw(void *data __UNUSED__, void *context, void *surface, int x, int y, int w, int h)
955{
956 SDL_Engine_Image_Entry *eim = surface;
957#if ENGINE_SDL_PRIMITIVE
958 RGBA_Draw_Context *dc = context;
959#endif
960 Soft16_Image *im;
961 int mustlock_im = 0;
962
963#if ENGINE_SDL_PRIMITIVE
964 if (A_VAL(&dc->col.col) != 0x00)
965 {
966 if (A_VAL(&dc->col.col) != 0xFF)
967 {
968#endif
969 if (eim->surface && SDL_MUSTLOCK(eim->surface))
970 {
971 mustlock_im = 1;
972 SDL_LockSurface(eim->surface);
973 _SDL_UPDATE_PIXELS(eim);
974 }
975
976 im = (Soft16_Image *) eim->cache_entry.src;
977
978 evas_common_soft16_rectangle_draw(im, context, x, y, w, h);
979 evas_common_cpu_end_opt();
980
981 if (mustlock_im)
982 SDL_UnlockSurface(eim->surface);
983#if ENGINE_SDL_PRIMITIVE
984 }
985 else
986 {
987 SDL_Rect dstrect;
988
989 if (dc->clip.use)
990 {
991 SDL_Rect cliprect;
992
993 cliprect.x = dc->clip.x;
994 cliprect.y = dc->clip.y;
995 cliprect.w = dc->clip.w;
996 cliprect.h = dc->clip.h;
997
998 SDL_SetClipRect(eim->surface, &cliprect);
999 }
1000
1001 dstrect.x = x;
1002 dstrect.y = y;
1003 dstrect.w = w;
1004 dstrect.h = h;
1005
1006 SDL_FillRect(eim->surface, &dstrect, SDL_MapRGBA(eim->surface->format, R_VAL(&dc->col.col), G_VAL(&dc->col.col), B_VAL(&dc->col.col), 0xFF));
1007
1008 if (dc->clip.use)
1009 SDL_SetClipRect(eim->surface, NULL);
1010 }
1011 }
1012#endif
1013}
1014
1015static void
1016evas_engine_sdl16_polygon_draw(void *data __UNUSED__, void *context, void *surface, void *polygon, int x, int y)
1017{
1018 SDL_Engine_Image_Entry *eim = surface;
1019 int mustlock_im = 0;
1020
1021 if (eim->surface && SDL_MUSTLOCK(eim->surface))
1022 {
1023 mustlock_im = 1;
1024 SDL_LockSurface(eim->surface);
1025 _SDL_UPDATE_PIXELS(eim);
1026 }
1027
1028 evas_common_soft16_polygon_draw((Soft16_Image *) eim->cache_entry.src, context, polygon, x, y);
1029 evas_common_cpu_end_opt();
1030
1031 if (mustlock_im)
1032 SDL_UnlockSurface(eim->surface);
1033}
1034
1035static void
1036evas_engine_sdl16_image_stride_get(void *data __UNUSED__, void *image, int *stride)
1037{
1038 SDL_Engine_Image_Entry *eim = image;
1039
1040 if (stride) *stride = 0;
1041 if (!image) return;
1042 if (stride) *stride = ((Soft16_Image*) eim->cache_entry.src)->stride;
1043}
1044
1045static Eina_Bool
1046evas_engine_sdl16_canvas_alpha_get(void *data __UNUSED__, void *context __UNUSED__)
1047{
1048 return EINA_FALSE;
1049}
1050
1051/* module advertising code */
1052static int
1053module_open(Evas_Module *em)
1054{
1055 if (!em) return 0;
1056 /* get whatever engine module we inherit from */
1057 if (!_evas_module_engine_inherit(&pfunc, "software_16")) return 0;
1058 _evas_engine_soft16_sdl_log_dom = eina_log_domain_register
1059 ("evas-software_16_sdl", EVAS_DEFAULT_LOG_COLOR);
1060 if (_evas_engine_soft16_sdl_log_dom < 0)
1061 {
1062 EINA_LOG_ERR("Can not create a module log domain.");
1063 return 0;
1064 }
1065
1066 /* store it for later use */
1067 func = pfunc;
1068 /* now to override methods */
1069#define ORD(f) EVAS_API_OVERRIDE(f, &func, evas_engine_sdl16_)
1070 ORD(info);
1071 ORD(info_free);
1072 ORD(setup);
1073 ORD(canvas_alpha_get);
1074 ORD(output_free);
1075 ORD(output_resize);
1076 ORD(output_tile_size_set);
1077 ORD(output_redraws_rect_add);
1078 ORD(output_redraws_rect_del);
1079 ORD(output_redraws_clear);
1080 ORD(output_redraws_next_update_get);
1081 ORD(output_redraws_next_update_push);
1082 ORD(output_flush);
1083 ORD(output_idle_flush);
1084 ORD(image_load);
1085 ORD(image_alpha_get);
1086 ORD(image_size_get);
1087 ORD(image_colorspace_get);
1088 ORD(image_colorspace_set);
1089 ORD(image_new_from_copied_data);
1090 ORD(image_new_from_data);
1091 ORD(image_free);
1092 ORD(image_size_set);
1093 ORD(image_dirty_region);
1094 ORD(image_data_get);
1095 ORD(image_data_put);
1096 ORD(image_data_preload_request);
1097 ORD(image_data_preload_cancel);
1098 ORD(image_alpha_set);
1099 ORD(image_border_set);
1100 ORD(image_border_get);
1101 ORD(image_draw);
1102 ORD(image_map_draw);
1103 ORD(image_cache_flush);
1104 ORD(image_cache_set);
1105 ORD(image_cache_get);
1106 ORD(image_comment_get);
1107 ORD(image_format_get);
1108 ORD(image_stride_get);
1109 ORD(font_draw);
1110 ORD(line_draw);
1111 ORD(rectangle_draw);
1112 ORD(polygon_draw);
1113
1114 ORD(image_scale_hint_set);
1115 ORD(image_scale_hint_get);
1116
1117 /* now advertise out own api */
1118 em->functions = (void *)(&func);
1119 return 1;
1120}
1121
1122static void
1123module_close(Evas_Module *em __UNUSED__)
1124{
1125 eina_log_domain_unregister(_evas_engine_soft16_sdl_log_dom);
1126}
1127
1128static Evas_Module_Api evas_modapi =
1129{
1130 EVAS_MODULE_API_VERSION,
1131 "software_16_sdl",
1132 "none",
1133 {
1134 module_open,
1135 module_close
1136 }
1137};
1138
1139EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_sdl);
1140
1141#ifndef EVAS_STATIC_BUILD_SOFTWARE_SDL
1142EVAS_EINA_MODULE_DEFINE(engine, software_16_sdl);
1143#endif
1144
1145static Engine_Image_Entry*
1146_sdl16_image_alloc(void)
1147{
1148 SDL_Engine_Image_Entry *new;
1149
1150 new = calloc(1, sizeof (SDL_Engine_Image_Entry));
1151
1152 return (Engine_Image_Entry *) new;
1153}
1154
1155static void
1156_sdl16_image_delete(Engine_Image_Entry *eim)
1157{
1158 free(eim);
1159}
1160
1161static int
1162_sdl16_image_constructor(Engine_Image_Entry *ie, void* data __UNUSED__)
1163{
1164 SDL_Surface *sdl = NULL;
1165 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) ie;
1166 Soft16_Image *im;
1167
1168 im = (Soft16_Image *) ie->src;
1169
1170 if (im)
1171 {
1172 evas_cache_image_load_data(&im->cache_entry);
1173
1174 if (im->pixels)
1175 {
1176 /* FIXME: Take care of CSPACE */
1177 sdl = SDL_CreateRGBSurfaceFrom(im->pixels,
1178 ie->w, ie->h,
1179 16, ie->w * 2,
1180 RMASK565, GMASK565, BMASK565, AMASK565);
1181 eim->surface = sdl;
1182 eim->flags.engine_surface = 0;
1183 }
1184 }
1185
1186 return EVAS_LOAD_ERROR_NONE;
1187}
1188
1189static void
1190_sdl16_image_destructor(Engine_Image_Entry *eim)
1191{
1192 SDL_Engine_Image_Entry *seie = (SDL_Engine_Image_Entry *) eim;
1193
1194 if (seie->surface && !seie->flags.engine_surface)
1195 SDL_FreeSurface(seie->surface);
1196 seie->surface = NULL;
1197}
1198
1199static void
1200_sdl16_image_dirty_region(Engine_Image_Entry *eim, unsigned int x, unsigned int y, unsigned int w, unsigned int h)
1201{
1202 SDL_Engine_Image_Entry *dst;
1203 RGBA_Image *im;
1204
1205 dst = (SDL_Engine_Image_Entry *) eim;
1206
1207 SDL_UpdateRect(dst->surface, x, y, w, h);
1208
1209 im = (RGBA_Image *)eim->src;
1210 im->flags |= RGBA_IMAGE_IS_DIRTY;
1211}
1212
1213static int
1214_sdl16_image_dirty(Engine_Image_Entry *dst, const Engine_Image_Entry *src __UNUSED__)
1215{
1216 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) dst;
1217 SDL_Surface *sdl = NULL;
1218 Soft16_Image *im;
1219
1220 im = (Soft16_Image *) dst->src;
1221
1222 /* FIXME: Take care of CSPACE */
1223 sdl = SDL_CreateRGBSurfaceFrom(im->pixels,
1224 dst->w, dst->h,
1225 16, dst->w * 2,
1226 RMASK565, GMASK565, BMASK565, AMASK565);
1227 eim->surface = sdl;
1228 eim->flags.engine_surface = 0;
1229
1230 return 0;
1231}
1232
1233static int
1234_sdl16_image_size_set(Engine_Image_Entry *dst, const Engine_Image_Entry *src __UNUSED__)
1235{
1236 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) dst;
1237 SDL_Surface *sdl;
1238 Soft16_Image *im;
1239
1240 im = (Soft16_Image *) dst->src;
1241
1242 /* FIXME: handle im == NULL */
1243 sdl = SDL_CreateRGBSurfaceFrom(im->pixels,
1244 dst->w, dst->h,
1245 16, dst->w * 2,
1246 RMASK565, GMASK565, BMASK565, AMASK565);
1247
1248 eim->surface = sdl;
1249
1250 return 0;
1251}
1252
1253static int
1254_sdl16_image_update_data(Engine_Image_Entry* dst, void* engine_data)
1255{
1256 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) dst;
1257 SDL_Surface *sdl = NULL;
1258 Soft16_Image *im;
1259
1260 im = (Soft16_Image *) dst->src;
1261
1262 if (engine_data)
1263 {
1264 sdl = engine_data;
1265
1266 if (im)
1267 {
1268 im->pixels = sdl->pixels;
1269 im->stride = sdl->pitch / 2;
1270 im->flags.free_pixels = 0;
1271/* im->alpha = calloc(1, sizeof (DATA8) * _calc_stride(sdl->w) * sdl->h); */
1272/* im->flags.free_alpha = 0; */
1273/* im->flags.have_alpha = 1; */
1274 im->alpha = NULL;
1275 im->flags.free_alpha = 0;
1276 im->cache_entry.flags.alpha = 0;
1277
1278 dst->src->w = sdl->w;
1279 dst->src->h = sdl->h;
1280 }
1281 dst->w = sdl->w;
1282 dst->h = sdl->h;
1283 }
1284 else
1285 {
1286 SDL_FreeSurface(eim->surface);
1287 /* FIXME: Take care of CSPACE */
1288 sdl = SDL_CreateRGBSurfaceFrom(im->pixels,
1289 dst->w, dst->h,
1290 16, dst->w * 2,
1291 RMASK565, GMASK565, BMASK565, AMASK565);
1292 }
1293
1294 eim->surface = sdl;
1295
1296 return 0;
1297}
1298
1299static void
1300_sdl16_image_load(Engine_Image_Entry *eim, const Image_Entry* ie_im)
1301{
1302 SDL_Engine_Image_Entry *load = (SDL_Engine_Image_Entry *) eim;
1303 SDL_Surface *sdl;
1304
1305 if (!load->surface)
1306 {
1307 Soft16_Image *im;
1308
1309 im = (Soft16_Image *) ie_im;
1310
1311 sdl = SDL_CreateRGBSurfaceFrom(im->pixels,
1312 eim->w, eim->h,
1313 16, eim->w * 2,
1314 RMASK565, GMASK565, BMASK565, AMASK565);
1315 load->surface = sdl;
1316 }
1317}
1318
1319static int
1320_sdl16_image_mem_size_get(Engine_Image_Entry *eim)
1321{
1322 SDL_Engine_Image_Entry *seie = (SDL_Engine_Image_Entry *) eim;
1323 int size = 0;
1324
1325 /* FIXME: Count surface size. */
1326 if (seie->surface)
1327 size = sizeof (SDL_Surface) + sizeof (SDL_PixelFormat);
1328
1329 return size;
1330}
1331
1332#ifdef DEBUG_SDL
1333static void
1334_sdl16_image_debug(const char* context, Engine_Image_Entry* im)
1335{
1336}
1337#endif
diff --git a/libraries/evas/src/modules/engines/software_16_sdl/evas_engine.h b/libraries/evas/src/modules/engines/software_16_sdl/evas_engine.h
deleted file mode 100644
index a1b0ee0..0000000
--- a/libraries/evas/src/modules/engines/software_16_sdl/evas_engine.h
+++ /dev/null
@@ -1,79 +0,0 @@
1#ifndef EVAS_ENGINE_SDL_16_H
2#define EVAS_ENGINE_SDL_16_H
3
4#include "evas_common.h"
5#include "evas_private.h"
6#include "evas_common_soft16.h"
7#include "Evas_Engine_SDL_16.h"
8extern int _evas_engine_soft16_sdl_log_dom ;
9#ifdef ERR
10# undef ERR
11#endif
12#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft16_sdl_log_dom, __VA_ARGS__)
13
14#ifdef DBG
15# undef DBG
16#endif
17#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft16_sdl_log_dom, __VA_ARGS__)
18
19#ifdef INF
20# undef INF
21#endif
22#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft16_sdl_log_dom, __VA_ARGS__)
23
24#ifdef WRN
25# undef WRN
26#endif
27#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft16_sdl_log_dom, __VA_ARGS__)
28
29#ifdef CRIT
30# undef CRIT
31#endif
32#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft16_sdl_log_dom, __VA_ARGS__)
33
34typedef struct _SDL_Engine_Image_Entry SDL_Engine_Image_Entry;
35struct _SDL_Engine_Image_Entry
36{
37 Engine_Image_Entry cache_entry;
38
39 SDL_Surface *surface;
40
41 struct
42 {
43 unsigned int engine_surface : 1;
44 } flags;
45};
46
47
48typedef struct _Render_Engine Render_Engine;
49struct _Render_Engine
50{
51 SDL_Engine_Image_Entry *soft16_engine_image;
52
53 Evas_Cache_Engine_Image *cache;
54
55 Soft16_Image *tmp_out;
56
57 int w;
58 int h;
59 int rot;
60
61 Tilebuf *tb;
62 Tilebuf_Rect *rects;
63 Tilebuf_Rect *cur_rect;
64
65 SDL_Rect *update_rects;
66 int update_rects_count;
67 int update_rects_limit;
68
69 struct
70 {
71 unsigned int fullscreen : 1;
72 unsigned int noframe : 1;
73 unsigned int alpha : 1;
74 unsigned int hwsurface : 1;
75 unsigned int end : 1;
76 } flags;
77};
78
79#endif
diff --git a/libraries/evas/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h b/libraries/evas/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h
deleted file mode 100644
index e94b7c2..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/Evas_Engine_Software_16_WinCE.h
+++ /dev/null
@@ -1,35 +0,0 @@
1#ifndef __EVAS_ENGINE_SOFTWARE_16_WINCE_H__
2#define __EVAS_ENGINE_SOFTWARE_16_WINCE_H__
3
4
5#include <windows.h>
6
7
8typedef struct _Evas_Engine_Info_Software_16_WinCE Evas_Engine_Info_Software_16_WinCE;
9
10struct _Evas_Engine_Info_Software_16_WinCE
11{
12 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
13 /* at you and make nasty noises */
14 Evas_Engine_Info magic;
15
16 struct {
17 HWND window;
18 int width;
19 int height;
20 int backend; /* 0: auto, 1: raw, 2: gapi, 3: ddraw, 4: gdi */
21 int rotation;
22 unsigned int fullscreen : 1;
23 } info;
24 /* engine specific function calls to query stuff about messages */
25 struct {
26 int (*suspend) (int backend);
27 int (*resume) (int backend);
28 } func;
29
30 /* non-blocking or blocking mode */
31 Evas_Engine_Render_Mode render_mode;
32};
33
34
35#endif /* __EVAS_ENGINE_SOFTWARE_16_WINCE_H__ */
diff --git a/libraries/evas/src/modules/engines/software_16_wince/Makefile.am b/libraries/evas/src/modules/engines/software_16_wince/Makefile.am
deleted file mode 100644
index fcd21b1..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/Makefile.am
+++ /dev/null
@@ -1,51 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9-I$(top_srcdir)/src/modules/engines/software_16 \
10@EINA_CFLAGS@ \
11@FREETYPE_CFLAGS@ \
12@PIXMAN_CFLAGS@ \
13@evas_engine_software_16_wince_cflags@
14
15if BUILD_ENGINE_SOFTWARE_16_WINCE
16
17SOFTWARE_16_WINCE_SOURCE = \
18evas_engine.c \
19evas_wince_ddraw_buffer.cpp \
20evas_wince_fb_buffer.c \
21evas_wince_gapi_buffer.c \
22evas_wince_gdi_buffer.c
23
24SOFTWARE_16_WINCE_LIBADD = @evas_engine_software_16_wince_libs@
25
26
27includes_HEADERS = Evas_Engine_Software_16_WinCE.h
28includesdir = $(includedir)/evas-@VMAJ@
29
30if !EVAS_STATIC_BUILD_SOFTWARE_16_WINCE
31
32pkgdir = $(libdir)/evas/modules/engines/software_16_wince/$(MODULE_ARCH)
33pkg_LTLIBRARIES = module.la
34
35module_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE)
36module_la_CXXFLAGS = -fno-rtti -fno-exceptions
37module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la $(SOFTWARE_16_WINCE_LIBADD)
38module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
39module_la_LIBTOOLFLAGS = --tag=disable-static
40
41else
42
43noinst_LTLIBRARIES = libevas_engine_software_16_wince.la
44
45libevas_engine_software_16_wince_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE)
46libevas_engine_software_16_wince_la_LIBADD = $(SOFTWARE_16_WINCE_LIBADD)
47
48endif
49endif
50
51EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_16_wince/Makefile.in b/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
deleted file mode 100644
index d371be5..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/Makefile.in
+++ /dev/null
@@ -1,901 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_16_wince
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE@libevas_engine_software_16_wince_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_16_wince_la_SOURCES_DIST = evas_engine.c \
87 evas_wince_ddraw_buffer.cpp evas_wince_fb_buffer.c \
88 evas_wince_gapi_buffer.c evas_wince_gdi_buffer.c
89@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@am__objects_1 = evas_engine.lo \
90@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ evas_wince_ddraw_buffer.lo \
91@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ evas_wince_fb_buffer.lo \
92@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ evas_wince_gapi_buffer.lo \
93@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ evas_wince_gdi_buffer.lo
94@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE@am_libevas_engine_software_16_wince_la_OBJECTS = $(am__objects_1)
95libevas_engine_software_16_wince_la_OBJECTS = \
96 $(am_libevas_engine_software_16_wince_la_OBJECTS)
97AM_V_lt = $(am__v_lt_$(V))
98am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
99am__v_lt_0 = --silent
100@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE@am_libevas_engine_software_16_wince_la_rpath =
101@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la \
102@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@ $(am__DEPENDENCIES_1)
103am__module_la_SOURCES_DIST = evas_engine.c evas_wince_ddraw_buffer.cpp \
104 evas_wince_fb_buffer.c evas_wince_gapi_buffer.c \
105 evas_wince_gdi_buffer.c
106@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@am__objects_2 = \
107@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ module_la-evas_engine.lo \
108@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ module_la-evas_wince_ddraw_buffer.lo \
109@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ module_la-evas_wince_fb_buffer.lo \
110@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ module_la-evas_wince_gapi_buffer.lo \
111@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@ module_la-evas_wince_gdi_buffer.lo
112@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@am_module_la_OBJECTS = $(am__objects_2)
113module_la_OBJECTS = $(am_module_la_OBJECTS)
114module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
115 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
116 $(module_la_CXXFLAGS) $(CXXFLAGS) $(module_la_LDFLAGS) \
117 $(LDFLAGS) -o $@
118@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@am_module_la_rpath = -rpath \
119@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@ $(pkgdir)
120DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
121depcomp = $(SHELL) $(top_srcdir)/depcomp
122am__depfiles_maybe = depfiles
123am__mv = mv -f
124COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
125 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
126LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
127 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
128 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
129 $(AM_CFLAGS) $(CFLAGS)
130AM_V_CC = $(am__v_CC_$(V))
131am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
132am__v_CC_0 = @echo " CC " $@;
133AM_V_at = $(am__v_at_$(V))
134am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
135am__v_at_0 = @
136CCLD = $(CC)
137LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
138 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
139 $(AM_LDFLAGS) $(LDFLAGS) -o $@
140AM_V_CCLD = $(am__v_CCLD_$(V))
141am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
142am__v_CCLD_0 = @echo " CCLD " $@;
143CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
144 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
145LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
146 $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
147 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
148 $(AM_CXXFLAGS) $(CXXFLAGS)
149AM_V_CXX = $(am__v_CXX_$(V))
150am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
151am__v_CXX_0 = @echo " CXX " $@;
152CXXLD = $(CXX)
153CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
154 $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
155 $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
156AM_V_CXXLD = $(am__v_CXXLD_$(V))
157am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
158am__v_CXXLD_0 = @echo " CXXLD " $@;
159AM_V_GEN = $(am__v_GEN_$(V))
160am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
161am__v_GEN_0 = @echo " GEN " $@;
162SOURCES = $(libevas_engine_software_16_wince_la_SOURCES) \
163 $(module_la_SOURCES)
164DIST_SOURCES = \
165 $(am__libevas_engine_software_16_wince_la_SOURCES_DIST) \
166 $(am__module_la_SOURCES_DIST)
167am__includes_HEADERS_DIST = Evas_Engine_Software_16_WinCE.h
168HEADERS = $(includes_HEADERS)
169ETAGS = etags
170CTAGS = ctags
171DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
172ACLOCAL = @ACLOCAL@
173ALLOCA = @ALLOCA@
174AMTAR = @AMTAR@
175AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
176AR = @AR@
177AS = @AS@
178AUTOCONF = @AUTOCONF@
179AUTOHEADER = @AUTOHEADER@
180AUTOMAKE = @AUTOMAKE@
181AWK = @AWK@
182CC = @CC@
183CCDEPMODE = @CCDEPMODE@
184CFLAGS = @CFLAGS@
185CHECK_CFLAGS = @CHECK_CFLAGS@
186CHECK_LIBS = @CHECK_LIBS@
187CPP = @CPP@
188CPPFLAGS = @CPPFLAGS@
189CXX = @CXX@
190CXXCPP = @CXXCPP@
191CXXDEPMODE = @CXXDEPMODE@
192CXXFLAGS = @CXXFLAGS@
193CYGPATH_W = @CYGPATH_W@
194DEFS = @DEFS@
195DEPDIR = @DEPDIR@
196DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
197DIRECTFB_LIBS = @DIRECTFB_LIBS@
198DLLTOOL = @DLLTOOL@
199DSYMUTIL = @DSYMUTIL@
200DUMPBIN = @DUMPBIN@
201ECHO_C = @ECHO_C@
202ECHO_N = @ECHO_N@
203ECHO_T = @ECHO_T@
204ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
205ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
206EDB_CFLAGS = @EDB_CFLAGS@
207EDB_LIBS = @EDB_LIBS@
208EDJE_CFLAGS = @EDJE_CFLAGS@
209EDJE_LIBS = @EDJE_LIBS@
210EET_CFLAGS = @EET_CFLAGS@
211EET_LIBS = @EET_LIBS@
212EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
213EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
214EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
215EGREP = @EGREP@
216EINA_CFLAGS = @EINA_CFLAGS@
217EINA_LIBS = @EINA_LIBS@
218EVAS_CFLAGS = @EVAS_CFLAGS@
219EVAS_LIBS = @EVAS_LIBS@
220EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
221EVIL_CFLAGS = @EVIL_CFLAGS@
222EVIL_LIBS = @EVIL_LIBS@
223EXEEXT = @EXEEXT@
224EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
225EXOTIC_LIBS = @EXOTIC_LIBS@
226FGREP = @FGREP@
227FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
228FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
229FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
230FREETYPE_LIBS = @FREETYPE_LIBS@
231FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
232FRIBIDI_LIBS = @FRIBIDI_LIBS@
233GL_EET_CFLAGS = @GL_EET_CFLAGS@
234GL_EET_LIBS = @GL_EET_LIBS@
235GREP = @GREP@
236HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
237HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
238INSTALL = @INSTALL@
239INSTALL_DATA = @INSTALL_DATA@
240INSTALL_PROGRAM = @INSTALL_PROGRAM@
241INSTALL_SCRIPT = @INSTALL_SCRIPT@
242INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
243LD = @LD@
244LDFLAGS = @LDFLAGS@
245LIBOBJS = @LIBOBJS@
246LIBS = @LIBS@
247LIBTOOL = @LIBTOOL@
248LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
249LINEBREAK_LIBS = @LINEBREAK_LIBS@
250LIPO = @LIPO@
251LN_S = @LN_S@
252LTLIBOBJS = @LTLIBOBJS@
253MAKEINFO = @MAKEINFO@
254MKDIR_P = @MKDIR_P@
255MODULE_ARCH = @MODULE_ARCH@
256NM = @NM@
257NMEDIT = @NMEDIT@
258OBJC = @OBJC@
259OBJCDEPMODE = @OBJCDEPMODE@
260OBJCFLAGS = @OBJCFLAGS@
261OBJDUMP = @OBJDUMP@
262OBJEXT = @OBJEXT@
263OTOOL = @OTOOL@
264OTOOL64 = @OTOOL64@
265PACKAGE = @PACKAGE@
266PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
267PACKAGE_NAME = @PACKAGE_NAME@
268PACKAGE_STRING = @PACKAGE_STRING@
269PACKAGE_TARNAME = @PACKAGE_TARNAME@
270PACKAGE_URL = @PACKAGE_URL@
271PACKAGE_VERSION = @PACKAGE_VERSION@
272PATH_SEPARATOR = @PATH_SEPARATOR@
273PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
274PIXMAN_LIBS = @PIXMAN_LIBS@
275PKG_CONFIG = @PKG_CONFIG@
276PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
277PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
278PNG_CFLAGS = @PNG_CFLAGS@
279PNG_LIBS = @PNG_LIBS@
280RANLIB = @RANLIB@
281SDL_CFLAGS = @SDL_CFLAGS@
282SDL_LIBS = @SDL_LIBS@
283SED = @SED@
284SET_MAKE = @SET_MAKE@
285SHELL = @SHELL@
286SHM_OPEN_LINK = @SHM_OPEN_LINK@
287STRIP = @STRIP@
288SVG_CFLAGS = @SVG_CFLAGS@
289SVG_LIBS = @SVG_LIBS@
290VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
291VALGRIND_LIBS = @VALGRIND_LIBS@
292VERSION = @VERSION@
293VMAJ = @VMAJ@
294WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
295WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
296XCB_CFLAGS = @XCB_CFLAGS@
297XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
298XCB_GL_LIBS = @XCB_GL_LIBS@
299XCB_LIBS = @XCB_LIBS@
300XEXT_CFLAGS = @XEXT_CFLAGS@
301XEXT_LIBS = @XEXT_LIBS@
302XMKMF = @XMKMF@
303X_CFLAGS = @X_CFLAGS@
304X_EXTRA_LIBS = @X_EXTRA_LIBS@
305X_LIBS = @X_LIBS@
306X_PRE_LIBS = @X_PRE_LIBS@
307abs_builddir = @abs_builddir@
308abs_srcdir = @abs_srcdir@
309abs_top_builddir = @abs_top_builddir@
310abs_top_srcdir = @abs_top_srcdir@
311ac_ct_CC = @ac_ct_CC@
312ac_ct_CXX = @ac_ct_CXX@
313ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
314ac_ct_OBJC = @ac_ct_OBJC@
315altivec_cflags = @altivec_cflags@
316am__include = @am__include@
317am__leading_dot = @am__leading_dot@
318am__quote = @am__quote@
319am__tar = @am__tar@
320am__untar = @am__untar@
321bindir = @bindir@
322build = @build@
323build_alias = @build_alias@
324build_cpu = @build_cpu@
325build_os = @build_os@
326build_vendor = @build_vendor@
327builddir = @builddir@
328datadir = @datadir@
329datarootdir = @datarootdir@
330dlopen_libs = @dlopen_libs@
331docdir = @docdir@
332dvidir = @dvidir@
333edje_cc = @edje_cc@
334efl_doxygen = @efl_doxygen@
335efl_have_doxygen = @efl_have_doxygen@
336evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
337evas_engine_buffer_libs = @evas_engine_buffer_libs@
338evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
339evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
340evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
341evas_engine_directfb_libs = @evas_engine_directfb_libs@
342evas_engine_fb_cflags = @evas_engine_fb_cflags@
343evas_engine_fb_libs = @evas_engine_fb_libs@
344evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
345evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
346evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
347evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
348evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
349evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
350evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
351evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
352evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
353evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
354evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
355evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
356evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
357evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
358evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
359evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
360evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
361evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
362evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
363evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
364evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
365evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
366evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
367evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
368evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
369evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
370evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
371evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
372evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
373evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
374evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
375evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
376evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
377evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
378evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
379evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
380evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
381evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
382evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
383evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
384evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
385evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
386evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
387evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
388evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
389evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
390evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
391evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
392evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
393evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
394evas_image_loader_png_libs = @evas_image_loader_png_libs@
395evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
396evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
397evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
398evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
399evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
400evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
401evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
402evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
403evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
404evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
405evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
406evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
407exec_prefix = @exec_prefix@
408have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
409have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
410have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
411have_evas_engine_software_x11 = @have_evas_engine_software_x11@
412have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
413have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
414have_lcov = @have_lcov@
415host = @host@
416host_alias = @host_alias@
417host_cpu = @host_cpu@
418host_os = @host_os@
419host_vendor = @host_vendor@
420htmldir = @htmldir@
421includedir = @includedir@
422infodir = @infodir@
423install_sh = @install_sh@
424libdir = @libdir@
425libexecdir = @libexecdir@
426localedir = @localedir@
427localstatedir = @localstatedir@
428lt_ECHO = @lt_ECHO@
429lt_enable_auto_import = @lt_enable_auto_import@
430mandir = @mandir@
431mkdir_p = @mkdir_p@
432oldincludedir = @oldincludedir@
433pdfdir = @pdfdir@
434pkgconfig_requires_private = @pkgconfig_requires_private@
435prefix = @prefix@
436program_transform_name = @program_transform_name@
437psdir = @psdir@
438pthread_cflags = @pthread_cflags@
439pthread_libs = @pthread_libs@
440release_info = @release_info@
441requirement_evas = @requirement_evas@
442sbindir = @sbindir@
443sharedstatedir = @sharedstatedir@
444srcdir = @srcdir@
445sysconfdir = @sysconfdir@
446target_alias = @target_alias@
447top_build_prefix = @top_build_prefix@
448top_builddir = @top_builddir@
449top_srcdir = @top_srcdir@
450version_info = @version_info@
451MAINTAINERCLEANFILES = Makefile.in
452AM_CPPFLAGS = \
453-I. \
454-I$(top_srcdir)/src/lib \
455-I$(top_srcdir)/src/lib/include \
456-I$(top_srcdir)/src/modules/engines \
457-I$(top_srcdir)/src/modules/engines/software_16 \
458@EINA_CFLAGS@ \
459@FREETYPE_CFLAGS@ \
460@PIXMAN_CFLAGS@ \
461@evas_engine_software_16_wince_cflags@
462
463@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@SOFTWARE_16_WINCE_SOURCE = \
464@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@evas_engine.c \
465@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@evas_wince_ddraw_buffer.cpp \
466@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@evas_wince_fb_buffer.c \
467@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@evas_wince_gapi_buffer.c \
468@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@evas_wince_gdi_buffer.c
469
470@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@SOFTWARE_16_WINCE_LIBADD = @evas_engine_software_16_wince_libs@
471@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@includes_HEADERS = Evas_Engine_Software_16_WinCE.h
472@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@includesdir = $(includedir)/evas-@VMAJ@
473@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_16_wince/$(MODULE_ARCH)
474@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@pkg_LTLIBRARIES = module.la
475@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@module_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE)
476@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@module_la_CXXFLAGS = -fno-rtti -fno-exceptions
477@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la $(SOFTWARE_16_WINCE_LIBADD)
478@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
479@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
480@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE@noinst_LTLIBRARIES = libevas_engine_software_16_wince.la
481@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE@libevas_engine_software_16_wince_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE)
482@BUILD_ENGINE_SOFTWARE_16_WINCE_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_TRUE@libevas_engine_software_16_wince_la_LIBADD = $(SOFTWARE_16_WINCE_LIBADD)
483EXTRA_DIST = evas_engine.h
484all: all-am
485
486.SUFFIXES:
487.SUFFIXES: .c .cpp .lo .o .obj
488$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
489 @for dep in $?; do \
490 case '$(am__configure_deps)' in \
491 *$$dep*) \
492 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
493 && { if test -f $@; then exit 0; else break; fi; }; \
494 exit 1;; \
495 esac; \
496 done; \
497 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_16_wince/Makefile'; \
498 $(am__cd) $(top_srcdir) && \
499 $(AUTOMAKE) --gnu src/modules/engines/software_16_wince/Makefile
500.PRECIOUS: Makefile
501Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
502 @case '$?' in \
503 *config.status*) \
504 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
505 *) \
506 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
507 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
508 esac;
509
510$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
511 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
512
513$(top_srcdir)/configure: $(am__configure_deps)
514 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
515$(ACLOCAL_M4): $(am__aclocal_m4_deps)
516 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
517$(am__aclocal_m4_deps):
518
519clean-noinstLTLIBRARIES:
520 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
521 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
522 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
523 test "$$dir" != "$$p" || dir=.; \
524 echo "rm -f \"$${dir}/so_locations\""; \
525 rm -f "$${dir}/so_locations"; \
526 done
527install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
528 @$(NORMAL_INSTALL)
529 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
530 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
531 list2=; for p in $$list; do \
532 if test -f $$p; then \
533 list2="$$list2 $$p"; \
534 else :; fi; \
535 done; \
536 test -z "$$list2" || { \
537 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
538 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
539 }
540
541uninstall-pkgLTLIBRARIES:
542 @$(NORMAL_UNINSTALL)
543 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
544 for p in $$list; do \
545 $(am__strip_dir) \
546 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
547 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
548 done
549
550clean-pkgLTLIBRARIES:
551 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
552 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
553 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
554 test "$$dir" != "$$p" || dir=.; \
555 echo "rm -f \"$${dir}/so_locations\""; \
556 rm -f "$${dir}/so_locations"; \
557 done
558libevas_engine_software_16_wince.la: $(libevas_engine_software_16_wince_la_OBJECTS) $(libevas_engine_software_16_wince_la_DEPENDENCIES)
559 $(AM_V_CXXLD)$(CXXLINK) $(am_libevas_engine_software_16_wince_la_rpath) $(libevas_engine_software_16_wince_la_OBJECTS) $(libevas_engine_software_16_wince_la_LIBADD) $(LIBS)
560module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
561 $(AM_V_CXXLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
562
563mostlyclean-compile:
564 -rm -f *.$(OBJEXT)
565
566distclean-compile:
567 -rm -f *.tab.c
568
569@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
570@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_wince_ddraw_buffer.Plo@am__quote@
571@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_wince_fb_buffer.Plo@am__quote@
572@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_wince_gapi_buffer.Plo@am__quote@
573@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_wince_gdi_buffer.Plo@am__quote@
574@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
575@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_wince_ddraw_buffer.Plo@am__quote@
576@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_wince_fb_buffer.Plo@am__quote@
577@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_wince_gapi_buffer.Plo@am__quote@
578@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_wince_gdi_buffer.Plo@am__quote@
579
580.c.o:
581@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
582@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
583@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
584@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
585@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
586@am__fastdepCC_FALSE@ $(COMPILE) -c $<
587
588.c.obj:
589@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
590@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
591@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
592@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
593@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
594@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
595
596.c.lo:
597@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
598@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
599@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
600@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
601@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
602@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
603
604module_la-evas_engine.lo: evas_engine.c
605@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
606@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
607@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
608@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
609@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
610@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
611
612module_la-evas_wince_fb_buffer.lo: evas_wince_fb_buffer.c
613@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_wince_fb_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_wince_fb_buffer.Tpo -c -o module_la-evas_wince_fb_buffer.lo `test -f 'evas_wince_fb_buffer.c' || echo '$(srcdir)/'`evas_wince_fb_buffer.c
614@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_wince_fb_buffer.Tpo $(DEPDIR)/module_la-evas_wince_fb_buffer.Plo
615@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
616@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_wince_fb_buffer.c' object='module_la-evas_wince_fb_buffer.lo' libtool=yes @AMDEPBACKSLASH@
617@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
618@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_wince_fb_buffer.lo `test -f 'evas_wince_fb_buffer.c' || echo '$(srcdir)/'`evas_wince_fb_buffer.c
619
620module_la-evas_wince_gapi_buffer.lo: evas_wince_gapi_buffer.c
621@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_wince_gapi_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_wince_gapi_buffer.Tpo -c -o module_la-evas_wince_gapi_buffer.lo `test -f 'evas_wince_gapi_buffer.c' || echo '$(srcdir)/'`evas_wince_gapi_buffer.c
622@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_wince_gapi_buffer.Tpo $(DEPDIR)/module_la-evas_wince_gapi_buffer.Plo
623@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
624@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_wince_gapi_buffer.c' object='module_la-evas_wince_gapi_buffer.lo' libtool=yes @AMDEPBACKSLASH@
625@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
626@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_wince_gapi_buffer.lo `test -f 'evas_wince_gapi_buffer.c' || echo '$(srcdir)/'`evas_wince_gapi_buffer.c
627
628module_la-evas_wince_gdi_buffer.lo: evas_wince_gdi_buffer.c
629@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_wince_gdi_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_wince_gdi_buffer.Tpo -c -o module_la-evas_wince_gdi_buffer.lo `test -f 'evas_wince_gdi_buffer.c' || echo '$(srcdir)/'`evas_wince_gdi_buffer.c
630@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_wince_gdi_buffer.Tpo $(DEPDIR)/module_la-evas_wince_gdi_buffer.Plo
631@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
632@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_wince_gdi_buffer.c' object='module_la-evas_wince_gdi_buffer.lo' libtool=yes @AMDEPBACKSLASH@
633@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
634@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_wince_gdi_buffer.lo `test -f 'evas_wince_gdi_buffer.c' || echo '$(srcdir)/'`evas_wince_gdi_buffer.c
635
636.cpp.o:
637@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
638@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
639@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
640@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
641@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
642@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
643
644.cpp.obj:
645@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
646@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
647@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
648@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
649@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
650@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
651
652.cpp.lo:
653@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
654@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
655@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
656@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
657@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
658@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
659
660module_la-evas_wince_ddraw_buffer.lo: evas_wince_ddraw_buffer.cpp
661@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_wince_ddraw_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_wince_ddraw_buffer.Tpo -c -o module_la-evas_wince_ddraw_buffer.lo `test -f 'evas_wince_ddraw_buffer.cpp' || echo '$(srcdir)/'`evas_wince_ddraw_buffer.cpp
662@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_wince_ddraw_buffer.Tpo $(DEPDIR)/module_la-evas_wince_ddraw_buffer.Plo
663@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
664@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_wince_ddraw_buffer.cpp' object='module_la-evas_wince_ddraw_buffer.lo' libtool=yes @AMDEPBACKSLASH@
665@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
666@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_wince_ddraw_buffer.lo `test -f 'evas_wince_ddraw_buffer.cpp' || echo '$(srcdir)/'`evas_wince_ddraw_buffer.cpp
667
668mostlyclean-libtool:
669 -rm -f *.lo
670
671clean-libtool:
672 -rm -rf .libs _libs
673install-includesHEADERS: $(includes_HEADERS)
674 @$(NORMAL_INSTALL)
675 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
676 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
677 for p in $$list; do \
678 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
679 echo "$$d$$p"; \
680 done | $(am__base_list) | \
681 while read files; do \
682 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
683 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
684 done
685
686uninstall-includesHEADERS:
687 @$(NORMAL_UNINSTALL)
688 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
689 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
690 test -n "$$files" || exit 0; \
691 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
692 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
693
694ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
695 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
696 unique=`for i in $$list; do \
697 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
698 done | \
699 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
700 END { if (nonempty) { for (i in files) print i; }; }'`; \
701 mkid -fID $$unique
702tags: TAGS
703
704TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
705 $(TAGS_FILES) $(LISP)
706 set x; \
707 here=`pwd`; \
708 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
709 unique=`for i in $$list; do \
710 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
711 done | \
712 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
713 END { if (nonempty) { for (i in files) print i; }; }'`; \
714 shift; \
715 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
716 test -n "$$unique" || unique=$$empty_fix; \
717 if test $$# -gt 0; then \
718 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
719 "$$@" $$unique; \
720 else \
721 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
722 $$unique; \
723 fi; \
724 fi
725ctags: CTAGS
726CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
727 $(TAGS_FILES) $(LISP)
728 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
729 unique=`for i in $$list; do \
730 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
731 done | \
732 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
733 END { if (nonempty) { for (i in files) print i; }; }'`; \
734 test -z "$(CTAGS_ARGS)$$unique" \
735 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
736 $$unique
737
738GTAGS:
739 here=`$(am__cd) $(top_builddir) && pwd` \
740 && $(am__cd) $(top_srcdir) \
741 && gtags -i $(GTAGS_ARGS) "$$here"
742
743distclean-tags:
744 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
745
746distdir: $(DISTFILES)
747 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
748 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
749 list='$(DISTFILES)'; \
750 dist_files=`for file in $$list; do echo $$file; done | \
751 sed -e "s|^$$srcdirstrip/||;t" \
752 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
753 case $$dist_files in \
754 */*) $(MKDIR_P) `echo "$$dist_files" | \
755 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
756 sort -u` ;; \
757 esac; \
758 for file in $$dist_files; do \
759 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
760 if test -d $$d/$$file; then \
761 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
762 if test -d "$(distdir)/$$file"; then \
763 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
764 fi; \
765 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
766 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
767 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
768 fi; \
769 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
770 else \
771 test -f "$(distdir)/$$file" \
772 || cp -p $$d/$$file "$(distdir)/$$file" \
773 || exit 1; \
774 fi; \
775 done
776check-am: all-am
777check: check-am
778all-am: Makefile $(LTLIBRARIES) $(HEADERS)
779installdirs:
780 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
781 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
782 done
783install: install-am
784install-exec: install-exec-am
785install-data: install-data-am
786uninstall: uninstall-am
787
788install-am: all-am
789 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
790
791installcheck: installcheck-am
792install-strip:
793 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
794 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
795 `test -z '$(STRIP)' || \
796 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
797mostlyclean-generic:
798
799clean-generic:
800
801distclean-generic:
802 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
803 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
804
805maintainer-clean-generic:
806 @echo "This command is intended for maintainers to use"
807 @echo "it deletes files that may require special tools to rebuild."
808 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
809clean: clean-am
810
811clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
812 clean-pkgLTLIBRARIES mostlyclean-am
813
814distclean: distclean-am
815 -rm -rf ./$(DEPDIR)
816 -rm -f Makefile
817distclean-am: clean-am distclean-compile distclean-generic \
818 distclean-tags
819
820dvi: dvi-am
821
822dvi-am:
823
824html: html-am
825
826html-am:
827
828info: info-am
829
830info-am:
831
832install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
833
834install-dvi: install-dvi-am
835
836install-dvi-am:
837
838install-exec-am:
839
840install-html: install-html-am
841
842install-html-am:
843
844install-info: install-info-am
845
846install-info-am:
847
848install-man:
849
850install-pdf: install-pdf-am
851
852install-pdf-am:
853
854install-ps: install-ps-am
855
856install-ps-am:
857
858installcheck-am:
859
860maintainer-clean: maintainer-clean-am
861 -rm -rf ./$(DEPDIR)
862 -rm -f Makefile
863maintainer-clean-am: distclean-am maintainer-clean-generic
864
865mostlyclean: mostlyclean-am
866
867mostlyclean-am: mostlyclean-compile mostlyclean-generic \
868 mostlyclean-libtool
869
870pdf: pdf-am
871
872pdf-am:
873
874ps: ps-am
875
876ps-am:
877
878uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
879
880.MAKE: install-am install-strip
881
882.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
883 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
884 ctags distclean distclean-compile distclean-generic \
885 distclean-libtool distclean-tags distdir dvi dvi-am html \
886 html-am info info-am install install-am install-data \
887 install-data-am install-dvi install-dvi-am install-exec \
888 install-exec-am install-html install-html-am \
889 install-includesHEADERS install-info install-info-am \
890 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
891 install-ps install-ps-am install-strip installcheck \
892 installcheck-am installdirs maintainer-clean \
893 maintainer-clean-generic mostlyclean mostlyclean-compile \
894 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
895 tags uninstall uninstall-am uninstall-includesHEADERS \
896 uninstall-pkgLTLIBRARIES
897
898
899# Tell versions [3.59,3.63) of GNU make to not export all variables.
900# Otherwise a system limit (for SysV at least) may be exceeded.
901.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_16_wince/evas_engine.c b/libraries/evas/src/modules/engines/software_16_wince/evas_engine.c
deleted file mode 100644
index 74d56e6..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/evas_engine.c
+++ /dev/null
@@ -1,770 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_16_WinCE.h"
5#include "evas_common_soft16.h"
6
7int _evas_engine_soft16_wince_log_dom = -1;
8
9typedef enum
10{
11 EVAS_ENGINE_WINCE_FB,
12 EVAS_ENGINE_WINCE_GAPI,
13 EVAS_ENGINE_WINCE_DDRAW,
14 EVAS_ENGINE_WINCE_GDI
15} Evas_Engine_WinCE_Backend;
16
17
18/* function tables - filled in later (func and parent func) */
19static Evas_Func func, pfunc;
20
21/* engine struct data */
22typedef struct _Render_Engine Render_Engine;
23
24struct _Render_Engine
25{
26 Evas_Engine_WinCE_Backend backend; /* 1: raw, 2: gapi, 3: ddraw, 4: GDI */
27 void *backend_priv;
28 void (*backend_shutdown)(void *priv);
29 FB_Output_Buffer *(*backend_output_buffer_new)(void *priv,
30 int width,
31 int height);
32 void (*backend_output_buffer_free)(FB_Output_Buffer *fbob);
33 void (*backend_output_buffer_paste)(FB_Output_Buffer *fbob);
34 void (*backend_surface_resize)(FB_Output_Buffer *fbob);
35
36 int width;
37 int height;
38 int rotation;
39 Tilebuf *tb;
40 Tilebuf_Rect *rects;
41 Tilebuf_Rect *cur_rect;
42 FB_Output_Buffer *fbob;
43 Soft16_Image *tmp_out; /* used by indirect render, like rotation */
44 HRGN clip_rects;
45 unsigned char end : 1;
46};
47
48/* prototypes we will use here */
49
50static void *eng_info(Evas *e);
51static void eng_info_free(Evas *e, void *info);
52static int eng_setup(Evas *e, void *info);
53static void eng_output_free(void *data);
54static void eng_output_resize(void *data, int w, int h);
55static void eng_output_tile_size_set(void *data, int w, int h);
56static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
57static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
58static void eng_output_redraws_clear(void *data);
59static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
60static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
61static void eng_output_flush(void *data);
62static void eng_output_idle_flush(void *data);
63
64static int
65_suspend(int backend)
66{
67 switch (backend)
68 {
69 case 2: /* gapi */
70 return evas_software_wince_gapi_suspend();
71 default: /* other engines do not need it */
72 return 0;
73 }
74}
75
76static int
77_resume(int backend)
78{
79 switch (backend)
80 {
81 case 2: /* gapi */
82 return evas_software_wince_gapi_resume();
83 default: /* other engines do not need it */
84 return 0;
85 }
86}
87
88/* engine api this module provides */
89static void *
90eng_info(Evas *e)
91{
92 Evas_Engine_Info_Software_16_WinCE *info;
93 info = calloc(1, sizeof(Evas_Engine_Info_Software_16_WinCE));
94 if (!info) return NULL;
95 info->magic.magic = rand();
96 info->func.suspend = _suspend;
97 info->func.resume = _resume;
98 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
99 return info;
100 e = NULL;
101}
102
103static void
104eng_info_free(Evas *e, void *info)
105{
106 Evas_Engine_Info_Software_16_WinCE *in;
107 in = (Evas_Engine_Info_Software_16_WinCE *)info;
108 free(in);
109}
110
111static void
112_tmp_out_alloc(Render_Engine *re)
113{
114 Tilebuf_Rect *r;
115 int w = 0, h = 0;
116
117 EINA_INLIST_FOREACH(re->rects, r)
118 {
119 if (r->w > w) w = r->w;
120 if (r->h > h) h = r->h;
121 }
122
123 if (re->tmp_out)
124 {
125 if ((re->tmp_out->cache_entry.w < w) || (re->tmp_out->cache_entry.h < h))
126 {
127 evas_cache_image_drop(&re->tmp_out->cache_entry);
128 re->tmp_out = NULL;
129 }
130 }
131
132 if (!re->tmp_out)
133 {
134 Soft16_Image *im;
135
136 im = (Soft16_Image *) evas_cache_image_empty(evas_common_soft16_image_cache_get());
137 im->cache_entry.flags.alpha = 0;
138 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
139
140 re->tmp_out = im;
141 }
142}
143
144
145static int
146eng_setup(Evas *e, void *in)
147{
148 Render_Engine *re;
149 Evas_Engine_Info_Software_16_WinCE *info;
150
151 info = (Evas_Engine_Info_Software_16_WinCE *)in;
152 if (!e->engine.data.output)
153 {
154 /* do common routine init - we wil at least use it for core
155 * image loading and font loading/glyph rendering & placement */
156 evas_common_cpu_init();
157
158 evas_common_blend_init();
159 evas_common_image_init();
160 evas_common_convert_init();
161 evas_common_scale_init();
162 evas_common_rectangle_init();
163 evas_common_polygon_init();
164 evas_common_line_init();
165 evas_common_font_init();
166 evas_common_draw_init();
167 evas_common_tilebuf_init();
168 evas_common_soft16_image_init();
169
170 /* render engine specific data */
171 re = calloc(1, sizeof(Render_Engine));
172 if (!re)
173 return 0;
174 e->engine.data.output = re;
175
176 switch(info->info.backend)
177 {
178 case 1: /* FB */
179 re->backend = EVAS_ENGINE_WINCE_FB;
180 re->backend_priv = evas_software_wince_fb_init(info->info.window, info->info.width, info->info.height);
181 if (!re->backend_priv)
182 {
183 free(re);
184 return 0;
185 }
186 re->backend_shutdown = evas_software_wince_fb_shutdown;
187 re->backend_output_buffer_new = evas_software_wince_fb_output_buffer_new;
188 re->backend_output_buffer_free = evas_software_wince_fb_output_buffer_free;
189 re->backend_output_buffer_paste = evas_software_wince_fb_output_buffer_paste;
190 re->backend_surface_resize = evas_software_wince_fb_surface_resize;
191 break;
192 case 2: /* GAPI */
193 re->backend = EVAS_ENGINE_WINCE_GAPI;
194 re->backend_priv = evas_software_wince_gapi_init(info->info.window, info->info.width, info->info.height);
195 if (!re->backend_priv)
196 {
197 free(re);
198 return 0;
199 }
200 re->backend_shutdown = evas_software_wince_gapi_shutdown;
201 re->backend_output_buffer_new = evas_software_wince_gapi_output_buffer_new;
202 re->backend_output_buffer_free = evas_software_wince_gapi_output_buffer_free;
203 re->backend_output_buffer_paste = evas_software_wince_gapi_output_buffer_paste;
204 re->backend_surface_resize = evas_software_wince_gapi_surface_resize;
205 break;
206 case 3: /* DirectDraw */
207 re->backend = EVAS_ENGINE_WINCE_DDRAW;
208 re->backend_priv = evas_software_wince_ddraw_init(info->info.window, info->info.width, info->info.height);
209 if (!re->backend_priv)
210 {
211 free(re);
212 return 0;
213 }
214 re->backend_shutdown = evas_software_wince_ddraw_shutdown;
215 re->backend_output_buffer_new = evas_software_wince_ddraw_output_buffer_new;
216 re->backend_output_buffer_free = evas_software_wince_ddraw_output_buffer_free;
217 re->backend_output_buffer_paste = evas_software_wince_ddraw_output_buffer_paste;
218 re->backend_surface_resize = evas_software_wince_ddraw_surface_resize;
219 break;
220 case 4: /* GDI */
221 re->backend = EVAS_ENGINE_WINCE_GDI;
222 re->backend_priv = evas_software_wince_gdi_init(info->info.window, info->info.width, info->info.height, info->info.fullscreen);
223 if (!re->backend_priv)
224 {
225 free(re);
226 return 0;
227 }
228 re->backend_shutdown = evas_software_wince_gdi_shutdown;
229 re->backend_output_buffer_new = evas_software_wince_gdi_output_buffer_new;
230 re->backend_output_buffer_free = evas_software_wince_gdi_output_buffer_free;
231 re->backend_output_buffer_paste = evas_software_wince_gdi_output_buffer_paste;
232 re->backend_surface_resize = evas_software_wince_gdi_surface_resize;
233 break;
234 default:
235 free(re);
236 return 0;
237 }
238
239 re->width = e->output.w;
240 re->height = e->output.h;
241 re->rotation = info->info.rotation;
242 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
243 if (re->tb)
244 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
245 }
246 else
247 {
248 re = e->engine.data.output;
249 if (re->tb) evas_common_tilebuf_free(re->tb);
250
251 switch(info->info.backend)
252 {
253 case 1: /* FB */
254 re->backend = EVAS_ENGINE_WINCE_FB;
255 re->backend_priv = evas_software_wince_fb_init(info->info.window, info->info.width, info->info.height);
256 if (!re->backend_priv)
257 {
258 free(re);
259 return 0;
260 }
261 re->backend_shutdown = evas_software_wince_fb_shutdown;
262 re->backend_output_buffer_new = evas_software_wince_fb_output_buffer_new;
263 re->backend_output_buffer_free = evas_software_wince_fb_output_buffer_free;
264 re->backend_output_buffer_paste = evas_software_wince_fb_output_buffer_paste;
265 re->backend_surface_resize = evas_software_wince_fb_surface_resize;
266 break;
267 case 2: /* GAPI */
268 re->backend = EVAS_ENGINE_WINCE_GAPI;
269 re->backend_priv = evas_software_wince_gapi_init(info->info.window, info->info.width, info->info.height);
270 if (!re->backend_priv)
271 {
272 free(re);
273 return 0;
274 }
275 re->backend_shutdown = evas_software_wince_gapi_shutdown;
276 re->backend_output_buffer_new = evas_software_wince_gapi_output_buffer_new;
277 re->backend_output_buffer_free = evas_software_wince_gapi_output_buffer_free;
278 re->backend_output_buffer_paste = evas_software_wince_gapi_output_buffer_paste;
279 re->backend_surface_resize = evas_software_wince_gapi_surface_resize;
280 break;
281 case 3: /* DirectDraw */
282 re->backend = EVAS_ENGINE_WINCE_DDRAW;
283 re->backend_priv = evas_software_wince_ddraw_init(info->info.window, info->info.width, info->info.height);
284 if (!re->backend_priv)
285 {
286 free(re);
287 return 0;
288 }
289 re->backend_shutdown = evas_software_wince_ddraw_shutdown;
290 re->backend_output_buffer_new = evas_software_wince_ddraw_output_buffer_new;
291 re->backend_output_buffer_free = evas_software_wince_ddraw_output_buffer_free;
292 re->backend_output_buffer_paste = evas_software_wince_ddraw_output_buffer_paste;
293 re->backend_surface_resize = evas_software_wince_ddraw_surface_resize;
294 break;
295 case 4: /* GDI */
296 re->backend = EVAS_ENGINE_WINCE_GDI;
297 re->backend_priv = evas_software_wince_gdi_init(info->info.window, info->info.width, info->info.height, info->info.fullscreen);
298 if (!re->backend_priv)
299 {
300 free(re);
301 return 0;
302 }
303 re->backend_shutdown = evas_software_wince_gdi_shutdown;
304 re->backend_output_buffer_new = evas_software_wince_gdi_output_buffer_new;
305 re->backend_output_buffer_free = evas_software_wince_gdi_output_buffer_free;
306 re->backend_output_buffer_paste = evas_software_wince_gdi_output_buffer_paste;
307 re->backend_surface_resize = evas_software_wince_gdi_surface_resize;
308 break;
309 default:
310 free(re);
311 return 0;
312 }
313
314 re->width = e->output.w;
315 re->height = e->output.h;
316 re->rotation = info->info.rotation;
317 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
318 if (re->tb)
319 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
320 if (re->tmp_out)
321 {
322 evas_cache_image_drop(&re->tmp_out->cache_entry);
323 re->tmp_out = NULL;
324 }
325 }
326 if (!e->engine.data.output) return 0;
327 /* add a draw context if we dont have one */
328 if (!e->engine.data.context)
329 e->engine.data.context =
330 e->engine.func->context_new(e->engine.data.output);
331
332 return 1;
333}
334
335static void
336eng_output_free(void *data)
337{
338 Render_Engine *re;
339
340 re = (Render_Engine *)data;
341 if (re->fbob) re->backend_output_buffer_free(re->backend_priv);
342 re->backend_shutdown(re->backend_priv);
343 if (re->clip_rects) DeleteObject(re->clip_rects);
344 if (re->tb) evas_common_tilebuf_free(re->tb);
345 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
346 if (re->tmp_out) evas_cache_image_drop(&re->tmp_out->cache_entry);
347 free(re);
348
349 evas_common_font_shutdown();
350 evas_common_image_shutdown();
351 evas_common_soft16_image_shutdown();
352}
353
354static void
355eng_output_resize(void *data, int w, int h)
356{
357 Render_Engine *re;
358
359 re = (Render_Engine *)data;
360
361 if ((re->width == w) && (re->height == h)) return;
362
363 /* FIXME: is it needed ?? */
364 if (re->fbob)
365 re->backend_surface_resize(re->fbob);
366
367 evas_common_tilebuf_free(re->tb);
368 re->width = w;
369 re->height = h;
370 re->tb = evas_common_tilebuf_new(w, h);
371 if (re->tb)
372 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
373 if (re->fbob)
374 {
375 re->backend_output_buffer_free(re->fbob);
376 re->fbob = NULL;
377 }
378 if (re->clip_rects)
379 {
380 DeleteObject(re->clip_rects);
381 re->clip_rects = NULL;
382 }
383 if (re->tmp_out)
384 {
385 evas_cache_image_drop(&re->tmp_out->cache_entry);
386 re->tmp_out = NULL;
387 }
388}
389
390static void
391eng_output_tile_size_set(void *data, int w, int h)
392{
393 Render_Engine *re;
394
395 re = (Render_Engine *)data;
396 evas_common_tilebuf_set_tile_size(re->tb, w, h);
397}
398
399static void
400eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
401{
402 Render_Engine *re;
403
404 re = (Render_Engine *)data;
405 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
406}
407
408static void
409eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
410{
411 Render_Engine *re;
412
413 re = (Render_Engine *)data;
414 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
415}
416
417static void
418eng_output_redraws_clear(void *data)
419{
420 Render_Engine *re;
421
422 re = (Render_Engine *)data;
423 evas_common_tilebuf_clear(re->tb);
424}
425
426static inline void
427_output_buffer_alloc(Render_Engine *re)
428{
429 int width;
430 int height;
431
432 if (re->fbob) return;
433
434 if ((re->rotation == 0) || (re->rotation == 180))
435 {
436 width = re->width;
437 height = re->height;
438 }
439 else
440 {
441 width = re->height;
442 height = re->width;
443 }
444
445 re->fbob = re->backend_output_buffer_new(re->backend_priv,
446 width,
447 height);
448}
449
450static void *
451eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
452{
453 Render_Engine *re;
454 Tilebuf_Rect *rect;
455 int ux, uy, uw, uh;
456
457 re = (Render_Engine *)data;
458 if (re->end)
459 {
460 re->end = 0;
461 return NULL;
462 }
463 if (!re->rects)
464 {
465 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
466 if (!re->rects) return NULL;
467
468 re->cur_rect = re->rects;
469 _output_buffer_alloc(re);
470 if (re->rotation != 0) _tmp_out_alloc(re); /* grows if required */
471 }
472 if (!re->cur_rect)
473 {
474 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
475 re->rects = NULL;
476 return NULL;
477 }
478 rect = re->cur_rect;
479 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
480 re->cur_rect = (Tilebuf_Rect *)((EINA_INLIST_GET(re->cur_rect))->next);
481 if (!re->cur_rect)
482 {
483 evas_common_tilebuf_free_render_rects(re->rects);
484 re->rects = NULL;
485 re->end = 1;
486 }
487
488 *x = ux; *y = uy; *w = uw; *h = uh;
489 if (re->rotation == 0)
490 {
491 *cx = ux; *cy = uy; *cw = uw; *ch = uh;
492 return re->fbob->im;
493 }
494 else
495 {
496 *cx = 0; *cy = 0; *cw = uw; *ch = uh;
497 return re->tmp_out;
498 }
499}
500
501static void
502_blit_rot_90(Soft16_Image *dst, const Soft16_Image *src,
503 int out_x, int out_y, int w, int h)
504{
505 DATA16 *dp, *sp;
506 int x, y;
507
508 sp = src->pixels;
509 dp = dst->pixels + (out_x +
510 (w + out_y - 1) * dst->stride);
511
512 for (y = 0; y < h; y++)
513 {
514 DATA16 *dp_itr, *sp_itr;
515
516 sp_itr = sp;
517 dp_itr = dp;
518
519 for (x = 0; x < w; x++)
520 {
521 *dp_itr = *sp_itr;
522
523 sp_itr++;
524 dp_itr -= dst->stride;
525 }
526 sp += src->stride;
527 dp++;
528 }
529}
530
531static void
532_blit_rot_180(Soft16_Image *dst, const Soft16_Image *src,
533 int out_x, int out_y, int w, int h)
534{
535 DATA16 *dp, *sp;
536 int x, y;
537
538 sp = src->pixels;
539 dp = dst->pixels + ((w + out_x - 1) +
540 (h + out_y - 1) * dst->stride);
541
542 for (y = 0; y < h; y++)
543 {
544 DATA16 *dp_itr, *sp_itr;
545
546 sp_itr = sp;
547 dp_itr = dp;
548
549 for (x = 0; x < w; x++)
550 {
551 *dp_itr = *sp_itr;
552
553 sp_itr++;
554 dp_itr--;
555 }
556 sp += src->stride;
557 dp -= dst->stride;
558 }
559}
560
561static void
562_blit_rot_270(Soft16_Image *dst, const Soft16_Image *src,
563 int out_x, int out_y, int w, int h)
564{
565 DATA16 *dp, *sp;
566 int x, y;
567
568 sp = src->pixels;
569 dp = dst->pixels + ((h + out_x - 1) +
570 out_y * dst->stride);
571
572 for (y = 0; y < h; y++)
573 {
574 DATA16 *dp_itr, *sp_itr;
575
576 sp_itr = sp;
577 dp_itr = dp;
578
579 for (x = 0; x < w; x++)
580 {
581 *dp_itr = *sp_itr;
582
583 sp_itr++;
584 dp_itr += dst->stride;
585 }
586 sp += src->stride;
587 dp--;
588 }
589}
590
591static void
592_tmp_out_process(Render_Engine *re, int out_x, int out_y, int w, int h)
593{
594 Soft16_Image *d, *s;
595
596 d = re->fbob->im;
597 s = re->tmp_out;
598
599 if ((w < 1) || (h < 1) || (out_x >= d->cache_entry.w) || (out_y >= d->cache_entry.h))
600 return;
601
602 if (re->rotation == 90)
603 _blit_rot_90(d, s, out_x, out_y, w, h);
604 else if (re->rotation == 180)
605 _blit_rot_180(d, s, out_x, out_y, w, h);
606 else if (re->rotation == 270)
607 _blit_rot_270(d, s, out_x, out_y, w, h);
608}
609
610static void
611eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
612{
613 Render_Engine *re;
614 HRGN region;
615 int xx;
616 int yy;
617 int width;
618 int height;
619
620 re = (Render_Engine *)data;
621
622 if (!re->clip_rects)
623 re->clip_rects = CreateRectRgn(0, 0, 0, 0);
624
625 if (re->rotation == 0)
626 {
627 xx = x;
628 yy = y;
629 width = w;
630 height = h;
631 }
632 else if (re->rotation == 90)
633 {
634 xx = y;
635 yy = re->width - w - x;
636 width = h;
637 height = w;
638 }
639 else if (re->rotation == 180)
640 {
641 xx = re->width - w - x;
642 yy = re->height - h - y;
643 width = w;
644 height = h;
645 }
646 else if (re->rotation == 270)
647 {
648 xx = re->height - h - y;
649 yy = x;
650 width = h;
651 height = w;
652 }
653
654 region = CreateRectRgn(xx, yy, xx + width, yy + height);
655
656 if (re->rotation != 0)
657 _tmp_out_process(re, xx, yy, w, h);
658 CombineRgn(re->clip_rects, re->clip_rects, region, RGN_OR);
659}
660
661static void
662eng_output_flush(void *data)
663{
664 Render_Engine *re;
665
666 re = (Render_Engine *)data;
667 if (re->clip_rects)
668 {
669 /* FIXME : i have to manage that */
670/* XSetRegion(re->disp, re->gc, re->clip_rects); */
671 DeleteObject(re->clip_rects);
672 re->clip_rects = NULL;
673 }
674 else return;
675
676 re->backend_output_buffer_paste(re->fbob);
677
678 /* FIXME : i have to manage that */
679/* XSetClipMask(re->disp, re->gc, None); */
680}
681
682static void
683eng_output_idle_flush(void *data)
684{
685 Render_Engine *re;
686
687 re = (Render_Engine *)data;
688 if (re->fbob)
689 {
690 re->backend_output_buffer_free(re->fbob);
691 re->fbob = NULL;
692 }
693 if (re->clip_rects)
694 {
695 DeleteObject(re->clip_rects);
696 re->clip_rects = NULL;
697 }
698 if (re->tmp_out)
699 {
700 evas_cache_image_drop(&re->tmp_out->cache_entry);
701 re->tmp_out = NULL;
702 }
703}
704
705static Eina_Bool
706eng_canvas_alpha_get(void *data, void *context)
707{
708 return EINA_FALSE;
709}
710
711/* module advertising code */
712static int
713module_open(Evas_Module *em)
714{
715 if (!em) return 0;
716 /* get whatever engine module we inherit from */
717 if (!_evas_module_engine_inherit(&pfunc, "software_16")) return 0;
718 _evas_engine_soft16_wince_log_dom = eina_log_domain_register
719 ("evas-software_16_wince", EVAS_DEFAULT_LOG_COLOR);
720 if (_evas_engine_soft16_wince_log_dom < 0)
721 {
722 EINA_LOG_ERR("Can not create a module log domain.");
723 return 0;
724 }
725
726 /* store it for later use */
727 func = pfunc;
728 /* now to override methods */
729#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
730 ORD(info);
731 ORD(info_free);
732 ORD(setup);
733 ORD(canvas_alpha_get);
734 ORD(output_free);
735 ORD(output_resize);
736 ORD(output_tile_size_set);
737 ORD(output_redraws_rect_add);
738 ORD(output_redraws_rect_del);
739 ORD(output_redraws_clear);
740 ORD(output_redraws_next_update_get);
741 ORD(output_redraws_next_update_push);
742 ORD(output_flush);
743 ORD(output_idle_flush);
744 /* now advertise out own api */
745 em->functions = (void *)(&func);
746 return 1;
747}
748
749static void
750module_close(Evas_Module *em)
751{
752 eina_log_domain_unregister(_evas_engine_soft16_wince_log_dom);
753}
754
755static Evas_Module_Api evas_modapi =
756{
757 EVAS_MODULE_API_VERSION,
758 "software_16_wince",
759 "none",
760 {
761 module_open,
762 module_close
763 }
764};
765
766EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_wince);
767
768#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_WINCE
769EVAS_EINA_MODULE_DEFINE(engine, software_16_wince);
770#endif
diff --git a/libraries/evas/src/modules/engines/software_16_wince/evas_engine.h b/libraries/evas/src/modules/engines/software_16_wince/evas_engine.h
deleted file mode 100644
index 344e7b9..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/evas_engine.h
+++ /dev/null
@@ -1,120 +0,0 @@
1#ifndef __EVAS_ENGINE_H__
2#define __EVAS_ENGINE_H__
3
4#define WIN32_LEAN_AND_MEAN
5#include <windows.h>
6#undef WIN32_LEAN_AND_MEAN
7#include "evas_common.h"
8#include "evas_common_soft16.h"
9
10extern int _evas_engine_soft16_wince_log_dom;
11#ifdef ERR
12# undef ERR
13#endif
14#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft16_wince_log_dom, __VA_ARGS__)
15
16#ifdef DBG
17# undef DBG
18#endif
19#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft16_wince_log_dom, __VA_ARGS__)
20
21#ifdef INF
22# undef INF
23#endif
24#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft16_wince_log_dom, __VA_ARGS__)
25
26#ifdef WRN
27# undef WRN
28#endif
29#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft16_wince_log_dom, __VA_ARGS__)
30
31#ifdef CRIT
32# undef CRIT
33#endif
34#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft16_wince_log_dom, __VA_ARGS__)
35
36typedef struct _FB_Output_Buffer FB_Output_Buffer;
37
38struct _FB_Output_Buffer
39{
40 Soft16_Image *im;
41 void *priv;
42};
43
44
45/* Raw FrameBuffer */
46
47void *evas_software_wince_fb_init (HWND window,
48 int width,
49 int height);
50FB_Output_Buffer *evas_software_wince_fb_output_buffer_new (void *priv,
51 int width,
52 int height);
53void evas_software_wince_fb_shutdown(void *priv);
54void evas_software_wince_fb_output_buffer_free (FB_Output_Buffer *fbob);
55void evas_software_wince_fb_output_buffer_paste (FB_Output_Buffer *fbob);
56
57void evas_software_wince_fb_surface_resize(FB_Output_Buffer *fbob);
58
59
60/* GAPI */
61
62void *evas_software_wince_gapi_init (HWND window,
63 int width,
64 int height);
65FB_Output_Buffer *evas_software_wince_gapi_output_buffer_new (void *priv,
66 int width,
67 int height);
68void evas_software_wince_gapi_shutdown(void *priv);
69void evas_software_wince_gapi_output_buffer_free (FB_Output_Buffer *fbob);
70void evas_software_wince_gapi_output_buffer_paste (FB_Output_Buffer *fbob);
71
72void evas_software_wince_gapi_surface_resize(FB_Output_Buffer *fbob);
73
74void *evas_software_wince_gapi_default_keys(void);
75int evas_software_wince_gapi_suspend(void);
76int evas_software_wince_gapi_resume(void);
77
78
79/* DirectDraw */
80
81#ifdef __cplusplus
82extern "C" {
83#endif
84
85
86void *evas_software_wince_ddraw_init (HWND window,
87 int width,
88 int height);
89FB_Output_Buffer *evas_software_wince_ddraw_output_buffer_new (void *priv,
90 int width,
91 int height);
92void evas_software_wince_ddraw_shutdown(void *priv);
93void evas_software_wince_ddraw_output_buffer_free (FB_Output_Buffer *fbob);
94void evas_software_wince_ddraw_output_buffer_paste (FB_Output_Buffer *fbob);
95
96void evas_software_wince_ddraw_surface_resize(FB_Output_Buffer *fbob);
97
98
99#ifdef __cplusplus
100}
101#endif
102
103
104/* GDI */
105
106void *evas_software_wince_gdi_init (HWND window,
107 int width,
108 int height,
109 int fullscreen);
110FB_Output_Buffer *evas_software_wince_gdi_output_buffer_new (void *priv,
111 int width,
112 int height);
113void evas_software_wince_gdi_shutdown(void *priv);
114void evas_software_wince_gdi_output_buffer_free (FB_Output_Buffer *fbob);
115void evas_software_wince_gdi_output_buffer_paste (FB_Output_Buffer *fbob);
116
117void evas_software_wince_gdi_surface_resize(FB_Output_Buffer *fbob);
118
119
120#endif /* __EVAS_ENGINE_H__ */
diff --git a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_ddraw_buffer.cpp b/libraries/evas/src/modules/engines/software_16_wince/evas_wince_ddraw_buffer.cpp
deleted file mode 100644
index 944ed53..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_ddraw_buffer.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
1
2#include <cstdio>
3
4#define WIN32_LEAN_AND_MEAN
5#include <windows.h>
6#undef WIN32_LEAN_AND_MEAN
7#include <ddraw.h>
8
9#include "evas_common.h"
10#include "evas_engine.h"
11
12
13typedef LONG (*fct_DirectDrawCreate)(LPGUID, LPUNKNOWN *, LPUNKNOWN *);
14
15fct_DirectDrawCreate lib_DirectDrawCreate;
16
17typedef struct Evas_Engine_WinCE_DDraw_Priv Evas_Engine_WinCE_DDraw_Priv;
18
19struct Evas_Engine_WinCE_DDraw_Priv
20{
21 HMODULE module;
22 LPDIRECTDRAW object;
23 LPDIRECTDRAWSURFACE surface;
24 int width;
25 int height;
26 int stride;
27};
28
29void *
30evas_software_wince_ddraw_init(HWND window,
31 int width,
32 int height)
33{
34 DDSURFACEDESC surface_desc;
35 Evas_Engine_WinCE_DDraw_Priv *priv;
36 HRESULT res;
37
38 priv = (Evas_Engine_WinCE_DDraw_Priv *)malloc(sizeof(Evas_Engine_WinCE_DDraw_Priv));
39 if (!priv)
40 return NULL;
41
42 priv->module = LoadLibrary(L"ddraw.dll");
43 if (!priv->module)
44 {
45 fprintf(stderr, "[Engine] [WinCE DDraw] Can not load ddraw.dll\n");
46 goto free_priv;
47 }
48
49 lib_DirectDrawCreate = (fct_DirectDrawCreate)GetProcAddress(priv->module, L"DirectDrawCreate");
50 if (!lib_DirectDrawCreate)
51 {
52 fprintf(stderr, "[Engine] [WinCE DDraw] Can not initialize DirectDraw\n");
53 goto free_lib;
54 }
55
56 res = lib_DirectDrawCreate(NULL, (IUnknown**)&priv->object, NULL);
57 if (FAILED(res))
58 {
59 fprintf(stderr, "[Engine] [WinCE DDraw] Can not create DirectDraw object\n");
60 goto free_lib;
61 }
62
63 res = priv->object->SetCooperativeLevel(window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
64 if (FAILED(res))
65 {
66 fprintf(stderr, "[Engine] [WinCE DDraw] Can not set window to fullscreen\n");
67 goto release_object;
68 }
69
70 memset(&surface_desc, 0, sizeof(surface_desc));
71 surface_desc.dwSize = sizeof(surface_desc);
72 surface_desc.dwFlags = DDSD_CAPS;
73 surface_desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
74
75 res = priv->object->CreateSurface(&surface_desc, &priv->surface, NULL);
76 if (FAILED(res))
77 {
78 fprintf(stderr, "[Engine] [WinCE DDraw] Can not create surface\n");
79 goto release_object;
80 }
81
82 memset(&surface_desc, 0, sizeof(surface_desc));
83 surface_desc.dwSize = sizeof(surface_desc);
84 res = priv->surface->Lock(NULL, &surface_desc, DDLOCK_READONLY, NULL);
85 if (FAILED(res))
86 {
87 fprintf(stderr, "[Evas] [Engine] [WinCE DDraw] Can not lock surface\n");
88 goto release_surface;
89 }
90
91 priv->width = surface_desc.dwWidth;
92 priv->height = surface_desc.dwHeight;
93 priv->stride = surface_desc.lPitch / 2;
94
95 if ((priv->width != width) ||
96 (priv->height != height))
97 {
98 fprintf(stderr, "[Engine] [WinCE DDraw] Size mismatch\n");
99 fprintf(stderr, "[Engine] [WinCE DDraw] asked : %dx%d\n", width, height);
100 fprintf(stderr, "[Engine] [WinCE DDraw] got : %dx%d\n", priv->width, priv->height);
101 goto release_surface;
102 }
103
104 res = priv->surface->Unlock(NULL);
105 if (FAILED(res))
106 {
107 fprintf(stderr, "[Engine] [WinCE DDraw] Can not unlock surface\n");
108 goto release_surface;
109 }
110
111 return priv;
112
113 release_surface:
114 priv->surface->Release();
115 release_object:
116 priv->object->Release();
117 free_lib:
118 FreeLibrary(priv->module);
119 free_priv:
120 free(priv);
121
122 return 0;
123}
124
125void
126evas_software_wince_ddraw_shutdown(void *priv)
127{
128 ((Evas_Engine_WinCE_DDraw_Priv *)priv)->surface->Release();
129 ((Evas_Engine_WinCE_DDraw_Priv *)priv)->object->Release();
130 FreeLibrary(((Evas_Engine_WinCE_DDraw_Priv *)priv)->module);
131 free(priv);
132}
133
134
135FB_Output_Buffer *
136evas_software_wince_ddraw_output_buffer_new(void *priv,
137 int width,
138 int height)
139{
140 FB_Output_Buffer *fbob;
141 void *buffer;
142
143 fbob = (FB_Output_Buffer *)calloc(1, sizeof(FB_Output_Buffer));
144 if (!fbob) return NULL;
145
146 buffer = malloc (width * height * 2); /* we are sure to have 16bpp */
147 if (!buffer)
148 {
149 free(fbob);
150 return NULL;
151 }
152
153 fbob->priv = priv;
154
155 fbob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), width, height, (DATA32 *)buffer, 0, EVAS_COLORSPACE_RGB565_A5P);
156 if (fbob->im)
157 fbob->im->stride = ((Evas_Engine_WinCE_DDraw_Priv *)priv)->stride;
158
159 return fbob;
160}
161
162void
163evas_software_wince_ddraw_output_buffer_free(FB_Output_Buffer *fbob)
164{
165 free(fbob->im->pixels);
166 free(fbob);
167}
168
169void
170evas_software_wince_ddraw_output_buffer_paste(FB_Output_Buffer *fbob)
171{
172 DDSURFACEDESC surface_desc;
173 Evas_Engine_WinCE_DDraw_Priv *priv;
174 HRESULT res;
175
176 priv = (Evas_Engine_WinCE_DDraw_Priv *)fbob->priv;
177
178 memset(&surface_desc, 0, sizeof(surface_desc));
179 surface_desc.dwSize = sizeof(surface_desc);
180 res = priv->surface->Lock(NULL, &surface_desc, DDLOCK_WRITEONLY, NULL);
181 if (FAILED(res))
182 return;
183
184 if ((fbob->im->cache_entry.w == surface_desc.dwWidth) &&
185 (fbob->im->cache_entry.h == surface_desc.dwHeight))
186 memcpy(surface_desc.lpSurface, fbob->im->pixels,
187 surface_desc.dwWidth * surface_desc.dwHeight * 2);
188
189 priv->surface->Unlock(NULL);
190}
191
192void
193evas_software_wince_ddraw_surface_resize(FB_Output_Buffer *fbob)
194{
195}
diff --git a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c b/libraries/evas/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c
deleted file mode 100644
index 6a81bf4..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_fb_buffer.c
+++ /dev/null
@@ -1,210 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4
5#define GETGXINFO 0x00020000
6
7typedef struct GXDeviceInfo
8{
9 long Version; //00 (should filled with 100 before calling ExtEscape)
10 void *pvFrameBuffer; //04
11 unsigned long cbStride; //08
12 unsigned long cxWidth; //0c
13 unsigned long cyHeight; //10
14 unsigned long cBPP; //14
15 unsigned long ffFormat; //18
16 char Unused[0x84 - 7 * 4];
17} GXDeviceInfo;
18
19
20#define GETRAWFRAMEBUFFER 0x00020001
21
22typedef struct _RawFrameBufferInfo
23{
24 WORD wFormat;
25 WORD wBPP;
26 VOID *pFramePointer;
27 int cxStride;
28 int cyStride;
29 int cxPixels;
30 int cyPixels;
31} RawFrameBufferInfo;
32
33
34typedef struct Evas_Engine_WinCE_FB_Priv Evas_Engine_WinCE_FB_Priv;
35
36struct Evas_Engine_WinCE_FB_Priv
37{
38 int width;
39 int height;
40 void *buffer;
41};
42
43static int
44_evas_software_wince_gxinfo_init(HDC dc, int *width, int *height, void **buffer)
45{
46 GXDeviceInfo gxInfo = { 0 };
47 int result;
48
49 gxInfo.Version = 100;
50 result = ExtEscape(dc, GETGXINFO, 0, NULL, sizeof(gxInfo),
51 (char *) &gxInfo);
52 if (result <= 0)
53 {
54 ERR("ExtEscape() with GETGXINFO failed");
55 return 0;
56 }
57
58 *width = gxInfo.cyHeight;
59 *height = gxInfo.cxWidth;
60 *buffer = gxInfo.pvFrameBuffer;
61
62 return 1;
63}
64
65void *
66evas_software_wince_fb_init(HWND window,
67 int width,
68 int height)
69{
70 WCHAR oemstr[100];
71 RawFrameBufferInfo rfbi;
72 HDC dc;
73 Evas_Engine_WinCE_FB_Priv *priv;
74
75 priv = (Evas_Engine_WinCE_FB_Priv *)malloc(sizeof(Evas_Engine_WinCE_FB_Priv));
76 if (!priv)
77 return NULL;
78
79 dc = GetDC (window);
80 if (!dc)
81 {
82 ERR("Can not get DC");
83 free(priv);
84 return NULL;
85 }
86
87 SystemParametersInfo (SPI_GETOEMINFO, sizeof (oemstr), oemstr, 0);
88 if (((oemstr[12] == 'H') &&
89 (oemstr[13] == '3') &&
90 (oemstr[14] == '8')) ||
91 ((oemstr[12] == 'H') &&
92 (oemstr[13] == '3') &&
93 (oemstr[14] == '9')))
94 {
95 if (!_evas_software_wince_gxinfo_init(dc, &priv->width, &priv->height, &priv->buffer))
96 {
97 ReleaseDC(window, dc);
98 free(priv);
99 return NULL;
100 }
101
102 if ((priv->width != width) ||
103 (priv->height != height))
104 {
105 ERR("Size mismatch: asked: %dx%d, got: %dx%d",
106 width, height, priv->width, priv->height);
107 ReleaseDC(window, dc);
108 free(priv);
109 return NULL;
110 }
111
112 ReleaseDC(window, dc);
113
114 return priv;
115 }
116
117 if (!ExtEscape(dc, GETRAWFRAMEBUFFER, 0, 0, sizeof(rfbi), (char *) &rfbi)||
118 (rfbi.wBPP != 16) ||
119 (rfbi.wFormat != 1))
120 {
121 ERR("ExtEscape() with GETRAWFRAMEBUFFER failed. "
122 "Trying ExtEscape() with GETGXINFO");
123 if (!_evas_software_wince_gxinfo_init(dc, &priv->width, &priv->height, &priv->buffer))
124 {
125 ReleaseDC(window, dc);
126 free(priv);
127 return NULL;
128 }
129
130 ReleaseDC(window, dc);
131 return priv;
132 }
133
134 priv->width = rfbi.cxPixels;
135 priv->height = rfbi.cyPixels;
136 priv->buffer = rfbi.pFramePointer;
137
138 if ((priv->width != width) ||
139 (priv->height != height))
140 {
141 ERR("Size mismatch: asked: %dx%d, got: %dx%d",
142 width, height, priv->width, priv->height);
143 ReleaseDC(window, dc);
144 free(priv);
145 return NULL;
146 }
147
148 ReleaseDC(window, dc);
149
150 return priv;
151}
152
153void
154evas_software_wince_fb_shutdown(void *priv)
155{
156 free(priv);
157}
158
159
160FB_Output_Buffer *
161evas_software_wince_fb_output_buffer_new(void *priv,
162 int width,
163 int height)
164{
165 FB_Output_Buffer *fbob;
166 void *buffer;
167
168 fbob = calloc(1, sizeof(FB_Output_Buffer));
169 if (!fbob) return NULL;
170
171 buffer = malloc (width * height * 2); /* we are sure to have 16bpp */
172 if (!buffer)
173 {
174 free(fbob);
175 return NULL;
176 }
177
178 fbob->priv = priv;
179
180 fbob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), width, height, (DATA32 *)buffer, 0, EVAS_COLORSPACE_RGB565_A5P);
181 if (fbob->im)
182 fbob->im->stride = width;
183
184 return fbob;
185}
186
187void
188evas_software_wince_fb_output_buffer_free(FB_Output_Buffer *fbob)
189{
190 free(fbob->im->pixels);
191 free(fbob);
192}
193
194void
195evas_software_wince_fb_output_buffer_paste(FB_Output_Buffer *fbob)
196{
197 Evas_Engine_WinCE_FB_Priv *priv;
198
199 priv = (Evas_Engine_WinCE_FB_Priv *)fbob->priv;
200
201 if ((fbob->im->cache_entry.w == priv->width) &&
202 (fbob->im->cache_entry.h == priv->height))
203 memcpy(priv->buffer, fbob->im->pixels,
204 priv->width * priv->height * 2);
205}
206
207void
208evas_software_wince_fb_surface_resize(FB_Output_Buffer *fbob)
209{
210}
diff --git a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c b/libraries/evas/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c
deleted file mode 100644
index c23c863..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_gapi_buffer.c
+++ /dev/null
@@ -1,341 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4
5typedef int (*evas_engine_wince_close_display)();
6
7typedef struct Evas_Engine_WinCE_GAPI_Priv Evas_Engine_WinCE_GAPI_Priv;
8
9
10#define GETGXINFO 0x00020000
11
12typedef struct
13{
14 long Version; //00 (should filled with 100 before calling ExtEscape)
15 void *pvFrameBuffer; //04
16 unsigned long cbStride; //08
17 unsigned long cxWidth; //0c
18 unsigned long cyHeight; //10
19 unsigned long cBPP; //14
20 unsigned long ffFormat; //18
21 char Unused[0x84 - 7 * 4];
22} _GXDeviceInfo;
23
24
25#define LINK(type,name,import) \
26 name = (gapi_##type)GetProcAddress (gapi_lib, import)
27
28#define GX_FULLSCREEN 0x01
29#define GX_NORMALKEYS 0x02
30
31#define kfDirect555 0x40
32#define kfDirect565 0x80
33
34
35typedef struct
36{
37 DWORD cxWidth;
38 DWORD cyHeight;
39 LONG cbxPitch;
40 LONG cbyPitch;
41 LONG cBPP;
42 DWORD ffFormat;
43} _GAPI_Display_Properties;
44
45typedef int (*gapi_display_open)(HWND hWnd, DWORD dwFlags);
46typedef int (*gapi_display_close)();
47typedef _GAPI_Display_Properties (*gapi_display_properties_get)(void);
48typedef void* (*gapi_draw_begin)(void);
49typedef int (*gapi_draw_end)(void);
50typedef int (*gapi_suspend)(void);
51typedef int (*gapi_resume)(void);
52
53gapi_suspend suspend = NULL;
54gapi_resume resume = NULL;
55
56int
57evas_software_wince_gapi_suspend(void)
58{
59 if (suspend)
60 return suspend();
61 else
62 return 0;
63}
64
65int
66evas_software_wince_gapi_resume(void)
67{
68 if (resume)
69 return resume();
70 else
71 return 0;
72}
73
74
75struct Evas_Engine_WinCE_GAPI_Priv
76{
77 HMODULE lib;
78 gapi_display_close close_display;
79 gapi_draw_begin draw_begin;
80 gapi_draw_end draw_end;
81 void *buffer;
82 int width;
83 int height;
84 int stride;
85};
86
87void *
88evas_software_wince_gapi_init(HWND window,
89 int width,
90 int height)
91{
92 WCHAR oemstr[100];
93 _GAPI_Display_Properties prop;
94 HMODULE gapi_lib;
95 Evas_Engine_WinCE_GAPI_Priv *priv;
96
97 gapi_display_open display_open = NULL;
98 gapi_display_close display_close = NULL;
99 gapi_display_properties_get display_properties_get = NULL;
100 gapi_draw_begin draw_begin = NULL;
101 gapi_draw_end draw_end = NULL;
102
103 priv = (Evas_Engine_WinCE_GAPI_Priv *)malloc(sizeof(Evas_Engine_WinCE_GAPI_Priv));
104 if (!priv)
105 return NULL;
106
107 gapi_lib = LoadLibrary(L"\\Windows\\gx.dll");
108 if (!gapi_lib)
109 {
110 gapi_lib = LoadLibrary(L"gx.dll");
111 if (!gapi_lib)
112 {
113 ERR("[Engine] [WinCE GAPI] Can not load gx.dll");
114 goto free_priv;
115 }
116 }
117
118 LINK(display_open, display_open, L"?GXOpenDisplay@@YAHPAUHWND__@@K@Z");
119 LINK(display_close, display_close, L"?GXCloseDisplay@@YAHXZ");
120 LINK(display_properties_get, display_properties_get, L"?GXGetDisplayProperties@@YA?AUGXDisplayProperties@@XZ");
121 LINK(draw_begin, draw_begin, L"?GXBeginDraw@@YAPAXXZ");
122 LINK(draw_end, draw_end, L"?GXEndDraw@@YAHXZ");
123 LINK(suspend, suspend, L"?GXSuspend@@YAHXZ" );
124 LINK(resume, resume, L"?GXResume@@YAHXZ" );
125
126 if (!display_open ||
127 !display_close ||
128 !display_properties_get ||
129 !draw_begin ||
130 !draw_end ||
131 !suspend ||
132 !resume)
133 {
134 ERR("[Engine] [WinCE GAPI] Can not find valid symbols");
135 goto free_lib;
136 }
137
138 if (!display_open(window, GX_FULLSCREEN))
139 {
140 ERR("[Engine] [WinCE GAPI] Can not open display");
141 goto free_lib;
142 }
143
144 prop = display_properties_get();
145
146 // verify pixel format
147 if(!(prop.ffFormat & kfDirect565) || (prop.cBPP != 16))
148 {
149 ERR("display format mismatch");
150 goto close_display;
151 }
152
153 // verify we have a vga device
154 if ((GetSystemMetrics(SM_CXSCREEN) != (int)prop.cxWidth) ||
155 (GetSystemMetrics(SM_CYSCREEN) != (int)prop.cyHeight))
156 {
157 ERR("display size mismatch");
158 goto close_display;
159 }
160
161 priv->lib = gapi_lib;
162 priv->close_display = display_close;
163 priv->draw_begin = draw_begin;
164 priv->draw_end = draw_end;
165
166 /* GAPI on Ipaq H38** and H39** is completely buggy */
167 /* They are detected as portrait device (width = 240 and height = 320) */
168 /* but the framebuffer is managed like a landscape device : */
169 /*
170 240
171 +---------+
172 | |
173 | |
174 | |
175 | |
176 | | 320
177 | ^^^ |
178 | ||| |
179 | ||| |
180 | ||| |
181 +---------+
182 ---->
183
184 */
185 /* So these devices are considered as landscape devices */
186 /* and width and height are switched. */
187 /* Other devices are managed normally : */
188 /*
189 240
190 +---------+
191| |---> |
192| |---> |
193| |---> |
194v | |
195 | | 320
196 | |
197 | |
198 | |
199 | |
200 +---------+
201
202 */
203
204 SystemParametersInfo (SPI_GETOEMINFO, sizeof (oemstr), oemstr, 0);
205
206 if (((oemstr[12] == 'H') &&
207 (oemstr[13] == '3') &&
208 (oemstr[14] == '8')) ||
209 ((oemstr[12] == 'H') &&
210 (oemstr[13] == '3') &&
211 (oemstr[14] == '9')))
212 {
213 _GXDeviceInfo gxInfo = { 0 };
214 HDC dc;
215 int result;
216
217 priv->width = prop.cyHeight;
218 priv->height = prop.cxWidth;
219 priv->stride = prop.cbxPitch;
220
221 dc = GetDC (window);
222 if (!dc)
223 {
224 ERR("Can not get device");
225 goto close_display;
226 }
227
228 gxInfo.Version = 100;
229 result = ExtEscape(dc, GETGXINFO, 0, NULL, sizeof(gxInfo),
230 (char *) &gxInfo);
231 if (result <= 0)
232 {
233 ERR("ExtEscape failed");
234 ReleaseDC(window, dc);
235 goto close_display;
236 }
237
238 priv->buffer = gxInfo.pvFrameBuffer;
239 ReleaseDC(window, dc);
240 }
241 else
242 {
243 priv->width = prop.cxWidth;
244 priv->height = prop.cyHeight;
245 priv->stride = prop.cbyPitch;
246 priv->buffer = NULL;
247 }
248
249 if ((priv->width != width) ||
250 (priv->height != height))
251 {
252 ERR("Size mismatch: asked: %dx%d, got: %dx%d",
253 width, height, priv->width, priv->height);
254 goto close_display;
255 }
256
257 return priv;
258
259 close_display:
260 display_close();
261 free_lib:
262 FreeLibrary(gapi_lib);
263 free_priv:
264 free(priv);
265 return NULL;
266}
267
268void
269evas_software_wince_gapi_shutdown(void *priv)
270{
271 Evas_Engine_WinCE_GAPI_Priv *p;
272
273 p = (Evas_Engine_WinCE_GAPI_Priv *)priv;
274 p->close_display();
275 suspend = NULL;
276 resume = NULL;
277 FreeLibrary(p->lib);
278 free(p);
279}
280
281
282FB_Output_Buffer *
283evas_software_wince_gapi_output_buffer_new(void *priv,
284 int width,
285 int height)
286{
287 FB_Output_Buffer *fbob;
288 void *buffer;
289
290 fbob = calloc(1, sizeof(FB_Output_Buffer));
291 if (!fbob) return NULL;
292
293 buffer = malloc (width * height * 2); /* we are sure to have 16bpp */
294 if (!buffer)
295 {
296 free(fbob);
297 return NULL;
298 }
299
300 fbob->priv = priv;
301
302 fbob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), width, height, (DATA32 *)buffer, 0, EVAS_COLORSPACE_RGB565_A5P);
303 if (fbob->im)
304 fbob->im->stride = ((Evas_Engine_WinCE_GAPI_Priv *)priv)->stride >> 1;
305
306 return fbob;
307}
308
309void
310evas_software_wince_gapi_output_buffer_free(FB_Output_Buffer *fbob)
311{
312 free(fbob->im->pixels);
313 free(fbob);
314}
315
316void
317evas_software_wince_gapi_output_buffer_paste(FB_Output_Buffer *fbob)
318{
319 Evas_Engine_WinCE_GAPI_Priv *priv;
320 void *buffer;
321
322 priv = (Evas_Engine_WinCE_GAPI_Priv *)fbob->priv;
323
324 buffer = priv->draw_begin();
325 if (!buffer)
326 return;
327
328 if (priv->buffer) buffer = priv->buffer;
329
330 if ((fbob->im->cache_entry.w == priv->width) &&
331 (fbob->im->cache_entry.h == priv->height))
332 memcpy(buffer, fbob->im->pixels,
333 priv->width * priv->height * 2);
334
335 priv->draw_end();
336}
337
338void
339evas_software_wince_gapi_surface_resize(FB_Output_Buffer *fbob)
340{
341}
diff --git a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_gdi_buffer.c b/libraries/evas/src/modules/engines/software_16_wince/evas_wince_gdi_buffer.c
deleted file mode 100644
index f32db4a..0000000
--- a/libraries/evas/src/modules/engines/software_16_wince/evas_wince_gdi_buffer.c
+++ /dev/null
@@ -1,165 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4
5typedef struct BITMAPINFO_16bpp BITMAPINFO_16bpp;
6typedef struct Evas_Engine_WinCE_GDI_Priv Evas_Engine_WinCE_GDI_Priv;
7
8struct BITMAPINFO_16bpp
9{
10 BITMAPINFOHEADER bih;
11 DWORD masks[3];
12};
13
14struct Evas_Engine_WinCE_GDI_Priv
15{
16 HWND window;
17 HDC dc;
18 BITMAPINFO_16bpp *bitmap_info;
19 HBITMAP bitmap;
20 int width;
21 int height;
22};
23
24void *
25evas_software_wince_gdi_init(HWND window,
26 int width,
27 int height,
28 int fullscreen)
29{
30 Evas_Engine_WinCE_GDI_Priv *priv;
31
32 priv = (Evas_Engine_WinCE_GDI_Priv *)malloc(sizeof(Evas_Engine_WinCE_GDI_Priv));
33 if (!priv)
34 return NULL;
35
36 priv->window = window;
37 priv->dc = GetDC(window);
38 if (!priv->dc)
39 {
40 ERR("Can not get DC");
41 free(priv);
42 return NULL;
43 }
44
45 if (fullscreen)
46 {
47 priv->width = GetSystemMetrics(SM_CXSCREEN);
48 priv->height = GetSystemMetrics(SM_CYSCREEN);
49 }
50 else
51 {
52 priv->width = width;
53 priv->height = height;
54 }
55
56 priv->bitmap_info = (BITMAPINFO_16bpp *)malloc(sizeof(BITMAPINFO_16bpp));
57 if (!priv->bitmap_info)
58 {
59 ERR("Can not allocate bitmap info");
60 ReleaseDC(window, priv->dc);
61 free(priv);
62 return NULL;
63 }
64
65 priv->bitmap_info->bih.biSize = sizeof(BITMAPINFOHEADER);
66 priv->bitmap_info->bih.biWidth = priv->width;
67 priv->bitmap_info->bih.biHeight = -priv->height;
68 priv->bitmap_info->bih.biPlanes = 1;
69 priv->bitmap_info->bih.biSizeImage = 2 * priv->width * priv->height;
70 priv->bitmap_info->bih.biXPelsPerMeter = 0;
71 priv->bitmap_info->bih.biYPelsPerMeter = 0;
72 priv->bitmap_info->bih.biClrUsed = 0;
73 priv->bitmap_info->bih.biClrImportant = 0;
74 priv->bitmap_info->bih.biBitCount = 16;
75 priv->bitmap_info->bih.biCompression = BI_BITFIELDS;
76 priv->bitmap_info->masks[0] = 0x0000f800;
77 priv->bitmap_info->masks[1] = 0x000007e0;
78 priv->bitmap_info->masks[2] = 0x0000001f;
79
80 return priv;
81}
82
83void
84evas_software_wince_gdi_shutdown(void *priv)
85{
86 free(((Evas_Engine_WinCE_GDI_Priv *)priv)->bitmap_info);
87 ReleaseDC(((Evas_Engine_WinCE_GDI_Priv *)priv)->window, ((Evas_Engine_WinCE_GDI_Priv *)priv)->dc);
88 free(priv);
89}
90
91
92FB_Output_Buffer *
93evas_software_wince_gdi_output_buffer_new(void *priv,
94 int width,
95 int height)
96{
97 Evas_Engine_WinCE_GDI_Priv *priv2;
98 FB_Output_Buffer *fbob;
99 void *buffer;
100
101 fbob = calloc(1, sizeof(FB_Output_Buffer));
102 if (!fbob) return NULL;
103
104 fbob->priv = priv;
105
106 priv2 = (Evas_Engine_WinCE_GDI_Priv *)fbob->priv;
107
108 priv2->bitmap = CreateDIBSection(priv2->dc,
109 (const BITMAPINFO *)priv2->bitmap_info,
110 DIB_RGB_COLORS,
111 (void **)(&buffer),
112 NULL,
113 0);
114 if (!priv2->bitmap)
115 {
116 free(fbob);
117 return NULL;
118 }
119
120 fbob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), width, height, (DATA32 *)buffer, 0, EVAS_COLORSPACE_RGB565_A5P);
121 if (fbob->im)
122 fbob->im->stride = width;
123
124 return fbob;
125}
126
127void
128evas_software_wince_gdi_output_buffer_free(FB_Output_Buffer *fbob)
129{
130 Evas_Engine_WinCE_GDI_Priv *priv;
131
132 priv = (Evas_Engine_WinCE_GDI_Priv *)fbob->priv;
133 DeleteObject(priv->bitmap);
134 free(fbob);
135}
136
137void
138evas_software_wince_gdi_output_buffer_paste(FB_Output_Buffer *fbob)
139{
140 Evas_Engine_WinCE_GDI_Priv *priv;
141
142 priv = (Evas_Engine_WinCE_GDI_Priv *)fbob->priv;
143
144 if ((fbob->im->cache_entry.w == priv->width) &&
145 (fbob->im->cache_entry.h == priv->height))
146 {
147 HDC dc;
148
149 dc = CreateCompatibleDC(priv->dc);
150 SelectObject(dc, priv->bitmap);
151 BitBlt(priv->dc,
152 0, 0,
153 priv->width, priv->height,
154 dc,
155 0, 0,
156 SRCCOPY);
157 DeleteDC(dc);
158
159 }
160}
161
162void
163evas_software_wince_gdi_surface_resize(FB_Output_Buffer *fbob)
164{
165}
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h b/libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h
deleted file mode 100644
index 9768f0a..0000000
--- a/libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h
+++ /dev/null
@@ -1,26 +0,0 @@
1#ifndef _EVAS_ENGINE_SOFTWARE_16_X11_H
2#define _EVAS_ENGINE_SOFTWARE_16_X11_H
3
4#include <X11/Xlib.h>
5
6typedef struct _Evas_Engine_Info_Software_16_X11 Evas_Engine_Info_Software_16_X11;
7
8struct _Evas_Engine_Info_Software_16_X11
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 Display *display;
17 Drawable drawable;
18 int rotation;
19 } info;
20
21 /* non-blocking or blocking mode */
22 Evas_Engine_Render_Mode render_mode;
23};
24#endif
25
26
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Makefile.am b/libraries/evas/src/modules/engines/software_16_x11/Makefile.am
deleted file mode 100644
index 812492e..0000000
--- a/libraries/evas/src/modules/engines/software_16_x11/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9-I$(top_srcdir)/src/modules/engines/software_16 \
10@FREETYPE_CFLAGS@ \
11@EINA_CFLAGS@ \
12@PIXMAN_CFLAGS@ \
13@evas_engine_software_16_x11_cflags@
14
15if BUILD_ENGINE_SOFTWARE_16_X11
16
17SOFTWARE_16_X11_SOURCES = \
18evas_engine.c \
19evas_x_buffer.c
20
21SOFTWARE_16_X11_LIBADD = @evas_engine_software_16_x11_libs@
22
23
24includes_HEADERS = Evas_Engine_Software_16_X11.h
25includesdir = $(includedir)/evas-@VMAJ@
26
27if !EVAS_STATIC_BUILD_SOFTWARE_16_X11
28
29pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH)
30pkg_LTLIBRARIES = module.la
31
32module_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
33module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_16_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
34module_la_LDFLAGS = -no-undefined -module -avoid-version
35module_la_LIBTOOLFLAGS = --tag=disable-static
36
37else
38
39noinst_LTLIBRARIES = libevas_engine_software_16_x11.la
40
41libevas_engine_software_16_x11_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
42libevas_engine_software_16_x11_la_LIBADD = $(SOFTWARE_16_X11_LIBADD)
43
44endif
45endif
46
47EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Makefile.in b/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
deleted file mode 100644
index 2ce18e6..0000000
--- a/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
+++ /dev/null
@@ -1,816 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_16_x11
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@libevas_engine_software_16_x11_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_16_x11_la_SOURCES_DIST = evas_engine.c \
87 evas_x_buffer.c
88@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@ evas_x_buffer.lo
90@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@am_libevas_engine_software_16_x11_la_OBJECTS = $(am__objects_1)
91libevas_engine_software_16_x11_la_OBJECTS = \
92 $(am_libevas_engine_software_16_x11_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@am_libevas_engine_software_16_x11_la_rpath =
97@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_x_buffer.c
100@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@am__objects_2 = \
101@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@ module_la-evas_x_buffer.lo
103@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_software_16_x11_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_software_16_x11_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Software_16_X11.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
198EXOTIC_LIBS = @EXOTIC_LIBS@
199FGREP = @FGREP@
200FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
201FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
202FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
203FREETYPE_LIBS = @FREETYPE_LIBS@
204FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
205FRIBIDI_LIBS = @FRIBIDI_LIBS@
206GL_EET_CFLAGS = @GL_EET_CFLAGS@
207GL_EET_LIBS = @GL_EET_LIBS@
208GREP = @GREP@
209HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
210HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
211INSTALL = @INSTALL@
212INSTALL_DATA = @INSTALL_DATA@
213INSTALL_PROGRAM = @INSTALL_PROGRAM@
214INSTALL_SCRIPT = @INSTALL_SCRIPT@
215INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
216LD = @LD@
217LDFLAGS = @LDFLAGS@
218LIBOBJS = @LIBOBJS@
219LIBS = @LIBS@
220LIBTOOL = @LIBTOOL@
221LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
222LINEBREAK_LIBS = @LINEBREAK_LIBS@
223LIPO = @LIPO@
224LN_S = @LN_S@
225LTLIBOBJS = @LTLIBOBJS@
226MAKEINFO = @MAKEINFO@
227MKDIR_P = @MKDIR_P@
228MODULE_ARCH = @MODULE_ARCH@
229NM = @NM@
230NMEDIT = @NMEDIT@
231OBJC = @OBJC@
232OBJCDEPMODE = @OBJCDEPMODE@
233OBJCFLAGS = @OBJCFLAGS@
234OBJDUMP = @OBJDUMP@
235OBJEXT = @OBJEXT@
236OTOOL = @OTOOL@
237OTOOL64 = @OTOOL64@
238PACKAGE = @PACKAGE@
239PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
240PACKAGE_NAME = @PACKAGE_NAME@
241PACKAGE_STRING = @PACKAGE_STRING@
242PACKAGE_TARNAME = @PACKAGE_TARNAME@
243PACKAGE_URL = @PACKAGE_URL@
244PACKAGE_VERSION = @PACKAGE_VERSION@
245PATH_SEPARATOR = @PATH_SEPARATOR@
246PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
247PIXMAN_LIBS = @PIXMAN_LIBS@
248PKG_CONFIG = @PKG_CONFIG@
249PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
250PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251PNG_CFLAGS = @PNG_CFLAGS@
252PNG_LIBS = @PNG_LIBS@
253RANLIB = @RANLIB@
254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_LIBS = @SDL_LIBS@
256SED = @SED@
257SET_MAKE = @SET_MAKE@
258SHELL = @SHELL@
259SHM_OPEN_LINK = @SHM_OPEN_LINK@
260STRIP = @STRIP@
261SVG_CFLAGS = @SVG_CFLAGS@
262SVG_LIBS = @SVG_LIBS@
263VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
264VALGRIND_LIBS = @VALGRIND_LIBS@
265VERSION = @VERSION@
266VMAJ = @VMAJ@
267WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
268WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
269XCB_CFLAGS = @XCB_CFLAGS@
270XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
271XCB_GL_LIBS = @XCB_GL_LIBS@
272XCB_LIBS = @XCB_LIBS@
273XEXT_CFLAGS = @XEXT_CFLAGS@
274XEXT_LIBS = @XEXT_LIBS@
275XMKMF = @XMKMF@
276X_CFLAGS = @X_CFLAGS@
277X_EXTRA_LIBS = @X_EXTRA_LIBS@
278X_LIBS = @X_LIBS@
279X_PRE_LIBS = @X_PRE_LIBS@
280abs_builddir = @abs_builddir@
281abs_srcdir = @abs_srcdir@
282abs_top_builddir = @abs_top_builddir@
283abs_top_srcdir = @abs_top_srcdir@
284ac_ct_CC = @ac_ct_CC@
285ac_ct_CXX = @ac_ct_CXX@
286ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
287ac_ct_OBJC = @ac_ct_OBJC@
288altivec_cflags = @altivec_cflags@
289am__include = @am__include@
290am__leading_dot = @am__leading_dot@
291am__quote = @am__quote@
292am__tar = @am__tar@
293am__untar = @am__untar@
294bindir = @bindir@
295build = @build@
296build_alias = @build_alias@
297build_cpu = @build_cpu@
298build_os = @build_os@
299build_vendor = @build_vendor@
300builddir = @builddir@
301datadir = @datadir@
302datarootdir = @datarootdir@
303dlopen_libs = @dlopen_libs@
304docdir = @docdir@
305dvidir = @dvidir@
306edje_cc = @edje_cc@
307efl_doxygen = @efl_doxygen@
308efl_have_doxygen = @efl_have_doxygen@
309evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
310evas_engine_buffer_libs = @evas_engine_buffer_libs@
311evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
312evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
313evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
314evas_engine_directfb_libs = @evas_engine_directfb_libs@
315evas_engine_fb_cflags = @evas_engine_fb_cflags@
316evas_engine_fb_libs = @evas_engine_fb_libs@
317evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
318evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
319evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
320evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
321evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
322evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
323evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
324evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
325evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
326evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
327evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
328evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
329evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
330evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
331evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
332evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
333evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
334evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
335evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
336evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
337evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
338evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
339evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
340evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
341evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines \
430-I$(top_srcdir)/src/modules/engines/software_16 \
431@FREETYPE_CFLAGS@ \
432@EINA_CFLAGS@ \
433@PIXMAN_CFLAGS@ \
434@evas_engine_software_16_x11_cflags@
435
436@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@SOFTWARE_16_X11_SOURCES = \
437@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@evas_engine.c \
438@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@evas_x_buffer.c
439
440@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@SOFTWARE_16_X11_LIBADD = @evas_engine_software_16_x11_libs@
441@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@includes_HEADERS = Evas_Engine_Software_16_X11.h
442@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@includesdir = $(includedir)/evas-@VMAJ@
443@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH)
444@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@pkg_LTLIBRARIES = module.la
445@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
446@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_16_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
447@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
448@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
449@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@noinst_LTLIBRARIES = libevas_engine_software_16_x11.la
450@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@libevas_engine_software_16_x11_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
451@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@libevas_engine_software_16_x11_la_LIBADD = $(SOFTWARE_16_X11_LIBADD)
452EXTRA_DIST = evas_engine.h
453all: all-am
454
455.SUFFIXES:
456.SUFFIXES: .c .lo .o .obj
457$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
458 @for dep in $?; do \
459 case '$(am__configure_deps)' in \
460 *$$dep*) \
461 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
462 && { if test -f $@; then exit 0; else break; fi; }; \
463 exit 1;; \
464 esac; \
465 done; \
466 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_16_x11/Makefile'; \
467 $(am__cd) $(top_srcdir) && \
468 $(AUTOMAKE) --gnu src/modules/engines/software_16_x11/Makefile
469.PRECIOUS: Makefile
470Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
471 @case '$?' in \
472 *config.status*) \
473 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
474 *) \
475 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
476 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
477 esac;
478
479$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
480 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
481
482$(top_srcdir)/configure: $(am__configure_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(ACLOCAL_M4): $(am__aclocal_m4_deps)
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
486$(am__aclocal_m4_deps):
487
488clean-noinstLTLIBRARIES:
489 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
490 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
491 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
492 test "$$dir" != "$$p" || dir=.; \
493 echo "rm -f \"$${dir}/so_locations\""; \
494 rm -f "$${dir}/so_locations"; \
495 done
496install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
497 @$(NORMAL_INSTALL)
498 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
499 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
500 list2=; for p in $$list; do \
501 if test -f $$p; then \
502 list2="$$list2 $$p"; \
503 else :; fi; \
504 done; \
505 test -z "$$list2" || { \
506 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
507 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
508 }
509
510uninstall-pkgLTLIBRARIES:
511 @$(NORMAL_UNINSTALL)
512 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
513 for p in $$list; do \
514 $(am__strip_dir) \
515 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
516 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
517 done
518
519clean-pkgLTLIBRARIES:
520 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
521 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
522 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
523 test "$$dir" != "$$p" || dir=.; \
524 echo "rm -f \"$${dir}/so_locations\""; \
525 rm -f "$${dir}/so_locations"; \
526 done
527libevas_engine_software_16_x11.la: $(libevas_engine_software_16_x11_la_OBJECTS) $(libevas_engine_software_16_x11_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_16_x11_la_rpath) $(libevas_engine_software_16_x11_la_OBJECTS) $(libevas_engine_software_16_x11_la_LIBADD) $(LIBS)
529module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
530 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
531
532mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535distclean-compile:
536 -rm -f *.tab.c
537
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_x_buffer.Plo@am__quote@
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_x_buffer.Plo@am__quote@
542
543.c.o:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c $<
550
551.c.obj:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
558
559.c.lo:
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
566
567module_la-evas_engine.lo: evas_engine.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574
575module_la-evas_x_buffer.lo: evas_x_buffer.c
576@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_x_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_x_buffer.Tpo -c -o module_la-evas_x_buffer.lo `test -f 'evas_x_buffer.c' || echo '$(srcdir)/'`evas_x_buffer.c
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_x_buffer.Tpo $(DEPDIR)/module_la-evas_x_buffer.Plo
578@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_x_buffer.c' object='module_la-evas_x_buffer.lo' libtool=yes @AMDEPBACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
581@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_x_buffer.lo `test -f 'evas_x_buffer.c' || echo '$(srcdir)/'`evas_x_buffer.c
582
583mostlyclean-libtool:
584 -rm -f *.lo
585
586clean-libtool:
587 -rm -rf .libs _libs
588install-includesHEADERS: $(includes_HEADERS)
589 @$(NORMAL_INSTALL)
590 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
591 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
592 for p in $$list; do \
593 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
594 echo "$$d$$p"; \
595 done | $(am__base_list) | \
596 while read files; do \
597 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
598 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
599 done
600
601uninstall-includesHEADERS:
602 @$(NORMAL_UNINSTALL)
603 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
604 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
605 test -n "$$files" || exit 0; \
606 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
607 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
608
609ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
610 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
611 unique=`for i in $$list; do \
612 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
613 done | \
614 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
615 END { if (nonempty) { for (i in files) print i; }; }'`; \
616 mkid -fID $$unique
617tags: TAGS
618
619TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
620 $(TAGS_FILES) $(LISP)
621 set x; \
622 here=`pwd`; \
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 shift; \
630 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
631 test -n "$$unique" || unique=$$empty_fix; \
632 if test $$# -gt 0; then \
633 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
634 "$$@" $$unique; \
635 else \
636 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
637 $$unique; \
638 fi; \
639 fi
640ctags: CTAGS
641CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
642 $(TAGS_FILES) $(LISP)
643 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
644 unique=`for i in $$list; do \
645 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
646 done | \
647 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
648 END { if (nonempty) { for (i in files) print i; }; }'`; \
649 test -z "$(CTAGS_ARGS)$$unique" \
650 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
651 $$unique
652
653GTAGS:
654 here=`$(am__cd) $(top_builddir) && pwd` \
655 && $(am__cd) $(top_srcdir) \
656 && gtags -i $(GTAGS_ARGS) "$$here"
657
658distclean-tags:
659 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
660
661distdir: $(DISTFILES)
662 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
663 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
664 list='$(DISTFILES)'; \
665 dist_files=`for file in $$list; do echo $$file; done | \
666 sed -e "s|^$$srcdirstrip/||;t" \
667 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
668 case $$dist_files in \
669 */*) $(MKDIR_P) `echo "$$dist_files" | \
670 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
671 sort -u` ;; \
672 esac; \
673 for file in $$dist_files; do \
674 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
675 if test -d $$d/$$file; then \
676 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
677 if test -d "$(distdir)/$$file"; then \
678 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
679 fi; \
680 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
681 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
682 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
683 fi; \
684 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
685 else \
686 test -f "$(distdir)/$$file" \
687 || cp -p $$d/$$file "$(distdir)/$$file" \
688 || exit 1; \
689 fi; \
690 done
691check-am: all-am
692check: check-am
693all-am: Makefile $(LTLIBRARIES) $(HEADERS)
694installdirs:
695 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
696 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
697 done
698install: install-am
699install-exec: install-exec-am
700install-data: install-data-am
701uninstall: uninstall-am
702
703install-am: all-am
704 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
705
706installcheck: installcheck-am
707install-strip:
708 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
709 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
710 `test -z '$(STRIP)' || \
711 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
712mostlyclean-generic:
713
714clean-generic:
715
716distclean-generic:
717 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
718 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
719
720maintainer-clean-generic:
721 @echo "This command is intended for maintainers to use"
722 @echo "it deletes files that may require special tools to rebuild."
723 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
724clean: clean-am
725
726clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
727 clean-pkgLTLIBRARIES mostlyclean-am
728
729distclean: distclean-am
730 -rm -rf ./$(DEPDIR)
731 -rm -f Makefile
732distclean-am: clean-am distclean-compile distclean-generic \
733 distclean-tags
734
735dvi: dvi-am
736
737dvi-am:
738
739html: html-am
740
741html-am:
742
743info: info-am
744
745info-am:
746
747install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
748
749install-dvi: install-dvi-am
750
751install-dvi-am:
752
753install-exec-am:
754
755install-html: install-html-am
756
757install-html-am:
758
759install-info: install-info-am
760
761install-info-am:
762
763install-man:
764
765install-pdf: install-pdf-am
766
767install-pdf-am:
768
769install-ps: install-ps-am
770
771install-ps-am:
772
773installcheck-am:
774
775maintainer-clean: maintainer-clean-am
776 -rm -rf ./$(DEPDIR)
777 -rm -f Makefile
778maintainer-clean-am: distclean-am maintainer-clean-generic
779
780mostlyclean: mostlyclean-am
781
782mostlyclean-am: mostlyclean-compile mostlyclean-generic \
783 mostlyclean-libtool
784
785pdf: pdf-am
786
787pdf-am:
788
789ps: ps-am
790
791ps-am:
792
793uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
794
795.MAKE: install-am install-strip
796
797.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
798 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
799 ctags distclean distclean-compile distclean-generic \
800 distclean-libtool distclean-tags distdir dvi dvi-am html \
801 html-am info info-am install install-am install-data \
802 install-data-am install-dvi install-dvi-am install-exec \
803 install-exec-am install-html install-html-am \
804 install-includesHEADERS install-info install-info-am \
805 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
806 install-ps install-ps-am install-strip installcheck \
807 installcheck-am installdirs maintainer-clean \
808 maintainer-clean-generic mostlyclean mostlyclean-compile \
809 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
810 tags uninstall uninstall-am uninstall-includesHEADERS \
811 uninstall-pkgLTLIBRARIES
812
813
814# Tell versions [3.59,3.63) of GNU make to not export all variables.
815# Otherwise a system limit (for SysV at least) may be exceeded.
816.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_16_x11/evas_engine.c b/libraries/evas/src/modules/engines/software_16_x11/evas_engine.c
deleted file mode 100644
index 5378972..0000000
--- a/libraries/evas/src/modules/engines/software_16_x11/evas_engine.c
+++ /dev/null
@@ -1,741 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_16_X11.h"
5#include "evas_common_soft16.h"
6
7int _evas_engine_soft16_x11_log_dom = -1;
8/* function tables - filled in later (func and parent func) */
9static Evas_Func func, pfunc;
10/*
11struct xrdb_user
12{
13 time_t last_stat;
14 time_t last_mtime;
15 XrmDatabase db;
16};
17static struct xrdb_user xrdb_user = {0, 0, NULL};
18
19static Eina_Bool
20xrdb_user_query(const char *name, const char *cls, char **type, XrmValue *val)
21{
22 time_t last = xrdb_user.last_stat, now = time(NULL);
23
24 xrdb_user.last_stat = now;
25 if (last != now) // don't stat() more than once every second
26 {
27 struct stat st;
28 const char *home = getenv("HOME");
29 char tmp[PATH_MAX];
30
31 if (!home) goto failed;
32 snprintf(tmp, sizeof(tmp), "%s/.Xdefaults", home);
33 if (stat(tmp, &st) != 0) goto failed;
34 if (xrdb_user.last_mtime != st.st_mtime)
35 {
36 if (xrdb_user.db) XrmDestroyDatabase(xrdb_user.db);
37 xrdb_user.db = XrmGetFileDatabase(tmp);
38 if (!xrdb_user.db) goto failed;
39 xrdb_user.last_mtime = st.st_mtime;
40 }
41 }
42
43 if (!xrdb_user.db) return EINA_FALSE;
44 return XrmGetResource(xrdb_user.db, name, cls, type, val);
45
46 failed:
47 if (xrdb_user.db)
48 {
49 XrmDestroyDatabase(xrdb_user.db);
50 xrdb_user.db = NULL;
51 }
52 xrdb_user.last_mtime = 0;
53 return EINA_FALSE;
54}
55*/
56
57/* engine struct data */
58typedef struct _Render_Engine Render_Engine;
59
60struct _Render_Engine
61{
62 Display *disp;
63 Drawable draw;
64 GC gc;
65 int w, h, rot;
66 Tilebuf *tb;
67 Tilebuf_Rect *rects;
68 Tilebuf_Rect *cur_rect;
69/*
70 XrmDatabase xrdb; // xres - dpi
71 struct { // xres - dpi
72 int dpi; // xres - dpi
73 } xr; // xres - dpi
74 */
75 X_Output_Buffer *shbuf;
76 Soft16_Image *tmp_out; /* used by indirect render, like rotation */
77 Region clip_rects;
78 unsigned char end : 1;
79 unsigned char shm : 1;
80};
81
82/* prototypes we will use here */
83
84static void *eng_info(Evas *e);
85static void eng_info_free(Evas *e, void *info);
86static int eng_setup(Evas *e, void *info);
87static void eng_output_free(void *data);
88static void eng_output_resize(void *data, int w, int h);
89static void eng_output_tile_size_set(void *data, int w, int h);
90static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
91static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
92static void eng_output_redraws_clear(void *data);
93static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
94static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
95static void eng_output_flush(void *data);
96static void eng_output_idle_flush(void *data);
97
98/* engine api this module provides */
99static void *
100eng_info(Evas *e)
101{
102 Evas_Engine_Info_Software_16_X11 *info;
103
104 info = calloc(1, sizeof(Evas_Engine_Info_Software_16_X11));
105 if (!info) return NULL;
106 info->magic.magic = rand();
107 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
108 return info;
109 e = NULL;
110}
111
112static void
113eng_info_free(Evas *e __UNUSED__, void *info)
114{
115 Evas_Engine_Info_Software_16_X11 *in;
116 in = (Evas_Engine_Info_Software_16_X11 *)info;
117 free(in);
118}
119
120static void
121_tmp_out_alloc(Render_Engine *re)
122{
123 Tilebuf_Rect *r;
124 unsigned int w = 0, h = 0;
125
126 EINA_INLIST_FOREACH(re->rects, r)
127 {
128 if (r->w > (int)w) w = r->w;
129 if (r->h > (int)h) h = r->h;
130 }
131
132 if (re->tmp_out)
133 {
134 if ((re->tmp_out->cache_entry.w < w) || (re->tmp_out->cache_entry.h < h))
135 {
136 evas_cache_image_drop(&re->tmp_out->cache_entry);
137 re->tmp_out = NULL;
138 }
139 }
140
141 if (!re->tmp_out)
142 {
143 Soft16_Image *im;
144
145 im = (Soft16_Image *) evas_cache_image_empty(evas_common_soft16_image_cache_get());
146 im->cache_entry.flags.alpha = 0;
147 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
148
149 re->tmp_out = im;
150 }
151}
152
153
154static int
155eng_setup(Evas *e, void *in)
156{
157 Render_Engine *re;
158 Evas_Engine_Info_Software_16_X11 *info;
159/* X_Output_Buffer *xob; */
160 XGCValues gcv;
161
162 info = (Evas_Engine_Info_Software_16_X11 *)in;
163 if (!e->engine.data.output)
164 {
165 /* the only check - simplistic, i know, but enough for this
166 * "special purpose" engine. Remember it is meant to be used
167 * for limited power devices that have a 16bit display mode
168 * and no real other acceleration, and high resolution so we
169 * can pre-dither into 16bpp. */
170// if (DefaultDepth(info->info.display,
171// DefaultScreen(info->info.display)) != 16)
172// return;
173 /* do common routine init - we wil at least use it for core
174 * image loading and font loading/glyph rendering & placement */
175 evas_common_cpu_init();
176
177 evas_common_blend_init();
178 evas_common_image_init();
179 evas_common_convert_init();
180 evas_common_scale_init();
181 evas_common_rectangle_init();
182 evas_common_polygon_init();
183 evas_common_line_init();
184 evas_common_font_init();
185 evas_common_draw_init();
186 evas_common_tilebuf_init();
187 evas_common_soft16_image_init();
188
189 /* render engine specific data */
190 re = calloc(1, sizeof(Render_Engine));
191 if (!re)
192 return 0;
193 e->engine.data.output = re;
194 re->disp = info->info.display;
195 re->draw = info->info.drawable;
196 re->gc = XCreateGC(re->disp, re->draw, 0, &gcv);
197 re->w = e->output.w;
198 re->h = e->output.h;
199 re->rot = info->info.rotation;
200 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
201 if (re->tb)
202 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
203 }
204 else
205 {
206 /* we changed the info after first init - do a re-eval where
207 * appropriate */
208// if (DefaultDepth(info->info.display,
209// DefaultScreen(info->info.display)) != 16)
210// return;
211 re = e->engine.data.output;
212 if (re->tb) evas_common_tilebuf_free(re->tb);
213 re->disp = info->info.display;
214 re->draw = info->info.drawable;
215 XFreeGC(re->disp, re->gc);
216 re->gc = XCreateGC(re->disp, re->draw, 0, &gcv);
217 re->w = e->output.w;
218 re->h = e->output.h;
219 re->rot = info->info.rotation;
220 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
221 if (re->tb)
222 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
223 if (re->tmp_out)
224 {
225 evas_cache_image_drop(&re->tmp_out->cache_entry);
226 re->tmp_out = NULL;
227 }
228 }
229 if (!e->engine.data.output) return 0;
230
231/*
232 {
233 int status;
234 char *type = NULL;
235 XrmValue val;
236
237 re->xr.dpi = 75000; // dpy * 1000
238
239 status = xrdb_user_query("Xft.dpi", "Xft.Dpi", &type, &val);
240 if ((!status) || (!type))
241 {
242 if (!re->xrdb) re->xrdb = XrmGetDatabase(re->disp);
243 if (re->xrdb)
244 status = XrmGetResource(re->xrdb,
245 "Xft.dpi", "Xft.Dpi", &type, &val);
246 }
247
248 if ((status) && (type))
249 {
250 if (!strcmp(type, "String"))
251 {
252 const char *str, *dp;
253
254 str = val.addr;
255 dp = strchr(str, '.');
256 if (!dp) dp = strchr(str, ',');
257
258 if (dp)
259 {
260 int subdpi, len, i;
261 char *buf;
262
263 buf = alloca(dp - str + 1);
264 strncpy(buf, str, dp - str);
265 buf[dp - str] = 0;
266 len = strlen(dp + 1);
267 subdpi = atoi(dp + 1);
268
269 if (len < 3)
270 {
271 for (i = len; i < 3; i++) subdpi *= 10;
272 }
273 else if (len > 3)
274 {
275 for (i = len; i > 3; i--) subdpi /= 10;
276 }
277 re->xr.dpi = atoi(buf) * 1000;
278 }
279 else
280 re->xr.dpi = atoi(str) * 1000;
281 }
282 }
283 evas_common_font_dpi_set(re->xr.dpi / 1000);
284 }
285 */
286
287 /* add a draw context if we dont have one */
288 if (!e->engine.data.context)
289 e->engine.data.context =
290 e->engine.func->context_new(e->engine.data.output);
291 /* check if the display can do shm */
292 re->shm = evas_software_16_x11_x_can_do_shm(re->disp);
293
294 return 1;
295}
296
297static void
298eng_output_free(void *data)
299{
300 Render_Engine *re;
301
302 re = (Render_Engine *)data;
303
304// NOTE: XrmGetDatabase() result is shared per connection, do not free it.
305// if (re->xrdb) XrmDestroyDatabase(re->xrdb);
306
307 if (re->shbuf) evas_software_16_x11_x_output_buffer_free(re->shbuf, 0);
308 if (re->clip_rects) XDestroyRegion(re->clip_rects);
309 if (re->gc) XFreeGC(re->disp, re->gc);
310 if (re->tb) evas_common_tilebuf_free(re->tb);
311 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
312 if (re->tmp_out) evas_cache_image_drop(&re->tmp_out->cache_entry);
313 free(re);
314
315 evas_common_font_shutdown();
316 evas_common_image_shutdown();
317 evas_common_soft16_image_shutdown();
318}
319
320static void
321eng_output_resize(void *data, int w, int h)
322{
323 Render_Engine *re;
324
325 re = (Render_Engine *)data;
326
327 if ((re->w == w) && (re->h == h)) return;
328
329 evas_common_tilebuf_free(re->tb);
330 re->w = w;
331 re->h = h;
332 re->tb = evas_common_tilebuf_new(w, h);
333 if (re->tb)
334 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
335 if (re->shbuf)
336 {
337 evas_software_16_x11_x_output_buffer_free(re->shbuf, 0);
338 re->shbuf = NULL;
339 }
340 if (re->clip_rects)
341 {
342 XDestroyRegion(re->clip_rects);
343 re->clip_rects = NULL;
344 }
345 if (re->tmp_out)
346 {
347 evas_cache_image_drop(&re->tmp_out->cache_entry);
348 re->tmp_out = NULL;
349 }
350}
351
352static void
353eng_output_tile_size_set(void *data, int w, int h)
354{
355 Render_Engine *re;
356
357 re = (Render_Engine *)data;
358 evas_common_tilebuf_set_tile_size(re->tb, w, h);
359}
360
361static void
362eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
363{
364 Render_Engine *re;
365
366 re = (Render_Engine *)data;
367 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
368}
369
370static void
371eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
372{
373 Render_Engine *re;
374
375 re = (Render_Engine *)data;
376 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
377}
378
379static void
380eng_output_redraws_clear(void *data)
381{
382 Render_Engine *re;
383
384 re = (Render_Engine *)data;
385 evas_common_tilebuf_clear(re->tb);
386}
387
388static inline void
389_output_buffer_alloc(Render_Engine *re)
390{
391 int w, h;
392 if (re->shbuf) return;
393
394 if ((re->rot == 0) || (re->rot == 180))
395 {
396 w = re->w;
397 h = re->h;
398 }
399 else
400 {
401 w = re->h;
402 h = re->w;
403 }
404
405 re->shbuf = evas_software_16_x11_x_output_buffer_new
406 (re->disp, DefaultVisual(re->disp, DefaultScreen(re->disp)),
407 DefaultDepth(re->disp, DefaultScreen(re->disp)),
408 w, h, 1, NULL);
409}
410
411static void *
412eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
413{
414 Render_Engine *re;
415 Tilebuf_Rect *rect;
416 int ux, uy, uw, uh;
417
418 re = (Render_Engine *)data;
419 if (re->end)
420 {
421 re->end = 0;
422 return NULL;
423 }
424 if (!re->rects)
425 {
426 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
427 if (!re->rects) return NULL;
428
429 re->cur_rect = re->rects;
430 _output_buffer_alloc(re);
431 if (re->rot != 0) _tmp_out_alloc(re); /* grows if required */
432 }
433 if (!re->cur_rect)
434 {
435 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
436 re->rects = NULL;
437 return NULL;
438 }
439 rect = re->cur_rect;
440 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
441 re->cur_rect = (Tilebuf_Rect *)((EINA_INLIST_GET(re->cur_rect))->next);
442 if (!re->cur_rect)
443 {
444 evas_common_tilebuf_free_render_rects(re->rects);
445 re->rects = NULL;
446 re->end = 1;
447 }
448
449 *x = ux; *y = uy; *w = uw; *h = uh;
450 if (re->rot == 0)
451 {
452 *cx = ux; *cy = uy; *cw = uw; *ch = uh;
453 return re->shbuf->im;
454 }
455 else
456 {
457 *cx = 0; *cy = 0; *cw = uw; *ch = uh;
458 return re->tmp_out;
459 }
460}
461
462static void
463_blit_rot_90(Soft16_Image *dst, const Soft16_Image *src,
464 int out_x, int out_y, int w, int h)
465{
466 DATA16 *dp, *sp;
467 int x, y;
468
469 sp = src->pixels;
470 dp = dst->pixels + (out_x +
471 (w + out_y - 1) * dst->stride);
472
473 for (y = 0; y < h; y++)
474 {
475 DATA16 *dp_itr, *sp_itr;
476
477 sp_itr = sp;
478 dp_itr = dp;
479
480 for (x = 0; x < w; x++)
481 {
482 *dp_itr = *sp_itr;
483
484 sp_itr++;
485 dp_itr -= dst->stride;
486 }
487 sp += src->stride;
488 dp++;
489 }
490}
491
492static void
493_blit_rot_180(Soft16_Image *dst, const Soft16_Image *src,
494 int out_x, int out_y, int w, int h)
495{
496 DATA16 *dp, *sp;
497 int x, y;
498
499 sp = src->pixels;
500 dp = dst->pixels + ((w + out_x - 1) +
501 (h + out_y - 1) * dst->stride);
502
503 for (y = 0; y < h; y++)
504 {
505 DATA16 *dp_itr, *sp_itr;
506
507 sp_itr = sp;
508 dp_itr = dp;
509
510 for (x = 0; x < w; x++)
511 {
512 *dp_itr = *sp_itr;
513
514 sp_itr++;
515 dp_itr--;
516 }
517 sp += src->stride;
518 dp -= dst->stride;
519 }
520}
521
522static void
523_blit_rot_270(Soft16_Image *dst, const Soft16_Image *src,
524 int out_x, int out_y, int w, int h)
525{
526 DATA16 *dp, *sp;
527 int x, y;
528
529 sp = src->pixels;
530 dp = dst->pixels + ((h + out_x - 1) +
531 out_y * dst->stride);
532
533 for (y = 0; y < h; y++)
534 {
535 DATA16 *dp_itr, *sp_itr;
536
537 sp_itr = sp;
538 dp_itr = dp;
539
540 for (x = 0; x < w; x++)
541 {
542 *dp_itr = *sp_itr;
543
544 sp_itr++;
545 dp_itr += dst->stride;
546 }
547 sp += src->stride;
548 dp--;
549 }
550}
551
552static void
553_tmp_out_process(Render_Engine *re, int out_x, int out_y, int w, int h)
554{
555 Soft16_Image *d, *s;
556
557 d = re->shbuf->im;
558 s = re->tmp_out;
559
560 if ((w < 1) || (h < 1) ||
561 (out_x >= (int)d->cache_entry.w) || (out_y >= (int)d->cache_entry.h))
562 return;
563
564 if (re->rot == 90)
565 _blit_rot_90(d, s, out_x, out_y, w, h);
566 else if (re->rot == 180)
567 _blit_rot_180(d, s, out_x, out_y, w, h);
568 else if (re->rot == 270)
569 _blit_rot_270(d, s, out_x, out_y, w, h);
570}
571
572static void
573eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x, int y, int w, int h)
574{
575 Render_Engine *re;
576 XRectangle r = { 0, 0, 0, 0 };
577
578 re = (Render_Engine *)data;
579
580 if (!re->clip_rects)
581 re->clip_rects = XCreateRegion();
582
583 if (re->rot == 0)
584 {
585 r.x = x;
586 r.y = y;
587 r.width = w;
588 r.height = h;
589 }
590 else if (re->rot == 90)
591 {
592 r.x = y;
593 r.y = re->w - w - x;
594 r.width = h;
595 r.height = w;
596 }
597 else if (re->rot == 180)
598 {
599 r.x = re->w - w - x;
600 r.y = re->h - h - y;
601 r.width = w;
602 r.height = h;
603 }
604 else if (re->rot == 270)
605 {
606 r.x = re->h - h - y;
607 r.y = x;
608 r.width = h;
609 r.height = w;
610 }
611
612 if (re->rot != 0)
613 _tmp_out_process(re, r.x, r.y, w, h);
614 XUnionRectWithRegion(&r, re->clip_rects, re->clip_rects);
615}
616
617static void
618eng_output_flush(void *data)
619{
620 Render_Engine *re;
621
622 re = (Render_Engine *)data;
623 if (re->clip_rects)
624 {
625 XSetRegion(re->disp, re->gc, re->clip_rects);
626 XDestroyRegion(re->clip_rects);
627 re->clip_rects = NULL;
628 }
629 else return;
630
631 evas_software_16_x11_x_output_buffer_paste
632 (re->shbuf, re->draw, re->gc, 0, 0, re->shbuf->im->cache_entry.w, re->shbuf->im->cache_entry.h, 1);
633 XSetClipMask(re->disp, re->gc, None);
634}
635
636static void
637eng_output_idle_flush(void *data)
638{
639 Render_Engine *re;
640
641 re = (Render_Engine *)data;
642 if (re->shbuf)
643 {
644 evas_software_16_x11_x_output_buffer_free(re->shbuf, 0);
645 re->shbuf = NULL;
646 }
647 if (re->clip_rects)
648 {
649 XDestroyRegion(re->clip_rects);
650 re->clip_rects = NULL;
651 }
652 if (re->tmp_out)
653 {
654 evas_cache_image_drop(&re->tmp_out->cache_entry);
655 re->tmp_out = NULL;
656 }
657}
658
659static Eina_Bool
660eng_canvas_alpha_get(void *data __UNUSED__, void *context __UNUSED__)
661{
662 return EINA_FALSE;
663}
664
665/* module advertising code */
666static int
667module_open(Evas_Module *em)
668{
669 static Eina_Bool xrm_inited = EINA_FALSE;
670 if (!xrm_inited)
671 {
672 xrm_inited = EINA_TRUE;
673 XrmInitialize();
674 }
675
676 if (!em) return 0;
677 /* get whatever engine module we inherit from */
678 if (!_evas_module_engine_inherit(&pfunc, "software_16")) return 0;
679 _evas_engine_soft16_x11_log_dom = eina_log_domain_register
680 ("evas-software_16_x11", EVAS_DEFAULT_LOG_COLOR);
681 if (_evas_engine_soft16_x11_log_dom < 0)
682 {
683 EINA_LOG_ERR("Can not create a module log domain.");
684 return 0;
685 }
686
687 /* store it for later use */
688 func = pfunc;
689 /* now to override methods */
690#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
691 ORD(info);
692 ORD(info_free);
693 ORD(setup);
694 ORD(canvas_alpha_get);
695 ORD(output_free);
696 ORD(output_resize);
697 ORD(output_tile_size_set);
698 ORD(output_redraws_rect_add);
699 ORD(output_redraws_rect_del);
700 ORD(output_redraws_clear);
701 ORD(output_redraws_next_update_get);
702 ORD(output_redraws_next_update_push);
703 ORD(output_flush);
704 ORD(output_idle_flush);
705 /* now advertise out own api */
706 em->functions = (void *)(&func);
707 return 1;
708}
709
710static void
711module_close(Evas_Module *em __UNUSED__)
712{
713 eina_log_domain_unregister(_evas_engine_soft16_x11_log_dom);
714/*
715 if (xrdb_user.db)
716 {
717 XrmDestroyDatabase(xrdb_user.db);
718 xrdb_user.last_stat = 0;
719 xrdb_user.last_mtime = 0;
720 xrdb_user.db = NULL;
721 }
722 */
723}
724
725static Evas_Module_Api evas_modapi =
726{
727 EVAS_MODULE_API_VERSION,
728 "software_16_x11",
729 "none",
730 {
731 module_open,
732 module_close
733 }
734};
735
736EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_x11);
737
738#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_X11
739EVAS_EINA_MODULE_DEFINE(engine, software_16_x11);
740#endif
741
diff --git a/libraries/evas/src/modules/engines/software_16_x11/evas_engine.h b/libraries/evas/src/modules/engines/software_16_x11/evas_engine.h
deleted file mode 100644
index 066ef50..0000000
--- a/libraries/evas/src/modules/engines/software_16_x11/evas_engine.h
+++ /dev/null
@@ -1,63 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include <X11/Xlib.h>
5#include <X11/Xutil.h>
6#include <X11/Xatom.h>
7#include <X11/extensions/XShm.h>
8#include <X11/Xresource.h> // xres - dpi
9#include <sys/ipc.h>
10#include <sys/shm.h>
11#include "evas_common.h"
12#include "evas_common_soft16.h"
13
14extern int _evas_engine_soft16_x11_log_dom;
15#ifdef ERR
16# undef ERR
17#endif
18#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
19
20#ifdef DBG
21# undef DBG
22#endif
23#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
24
25#ifdef INF
26# undef INF
27#endif
28#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
29
30#ifdef WRN
31# undef WRN
32#endif
33#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
34
35#ifdef CRIT
36# undef CRIT
37#endif
38#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
39
40typedef struct _X_Output_Buffer X_Output_Buffer;
41
42struct _X_Output_Buffer
43{
44 Soft16_Image *im;
45 Display *display;
46 XImage *xim;
47 XShmSegmentInfo *shm_info;
48 void *data;
49};
50
51/****/
52void evas_software_16_x11_x_init (void);
53
54int evas_software_16_x11_x_can_do_shm (Display *d);
55X_Output_Buffer *evas_software_16_x11_x_output_buffer_new (Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data);
56void evas_software_16_x11_x_output_buffer_free (X_Output_Buffer *xob, int sync);
57void evas_software_16_x11_x_output_buffer_paste (X_Output_Buffer *xob, Drawable d, GC gc, int x, int y, int w, int h, int sync);
58DATA8 *evas_software_16_x11_x_output_buffer_data (X_Output_Buffer *xob, int *bytes_per_line_ret);
59int evas_software_16_x11_x_output_buffer_depth (X_Output_Buffer *xob);
60int evas_software_16_x11_x_output_buffer_byte_order (X_Output_Buffer *xob);
61int evas_software_16_x11_x_output_buffer_bit_order (X_Output_Buffer *xob);
62
63#endif
diff --git a/libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c b/libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c
deleted file mode 100644
index 32784b0..0000000
--- a/libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c
+++ /dev/null
@@ -1,186 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4static int _x_err = 0;
5
6int
7evas_software_16_x11_x_can_do_shm(Display *d)
8{
9 static Display *cached_d = NULL;
10 static int cached_result = 0;
11
12 if (d == cached_d) return cached_result;
13 cached_d = d;
14 if (XShmQueryExtension(d))
15 {
16 X_Output_Buffer *xob;
17
18 xob = evas_software_16_x11_x_output_buffer_new
19 (d, DefaultVisual(d, DefaultScreen(d)),
20 DefaultDepth(d, DefaultScreen(d)), 16, 16, 2, NULL);
21 if (!xob)
22 {
23 cached_result = 0;
24 return 0;
25 }
26 evas_software_16_x11_x_output_buffer_free(xob, 1);
27 cached_result = 1;
28 return 1;
29 }
30 cached_result = 0;
31 return 0;
32}
33
34static void
35x_output_tmp_x_err(Display * d __UNUSED__, XErrorEvent * ev __UNUSED__)
36{
37 _x_err = 1;
38 return;
39}
40
41X_Output_Buffer *
42evas_software_16_x11_x_output_buffer_new(Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data)
43{
44 X_Output_Buffer *xob;
45
46 xob = calloc(1, sizeof(X_Output_Buffer));
47 if (!xob) return NULL;
48
49 xob->display = d;
50 xob->xim = NULL;
51 xob->shm_info = NULL;
52
53 if (try_shm > 0)
54 {
55 xob->shm_info = malloc(sizeof(XShmSegmentInfo));
56 if (xob->shm_info)
57 {
58 xob->xim = XShmCreateImage(d, v, depth, ZPixmap, NULL,
59 xob->shm_info, w, h);
60 if (xob->xim)
61 {
62 xob->shm_info->shmid = shmget(IPC_PRIVATE,
63 xob->xim->bytes_per_line *
64 xob->xim->height,
65 IPC_CREAT | 0777);
66 if (xob->shm_info->shmid >= 0)
67 {
68 xob->shm_info->readOnly = False;
69 xob->shm_info->shmaddr = xob->xim->data =
70 shmat(xob->shm_info->shmid, 0, 0);
71 if (xob->shm_info->shmaddr)
72 {
73 XErrorHandler ph;
74
75 XSync(d, False);
76 _x_err = 0;
77 ph = XSetErrorHandler((XErrorHandler)
78 x_output_tmp_x_err);
79 XShmAttach(d, xob->shm_info);
80 XSync(d, False);
81 XSetErrorHandler((XErrorHandler)ph);
82 if (!_x_err)
83 {
84 xob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), w, h, (DATA32 *) xob->xim->data, 0, EVAS_COLORSPACE_RGB565_A5P);
85 if (xob->im)
86 xob->im->stride = xob->xim->bytes_per_line / sizeof(DATA16);
87 return xob;
88 }
89 }
90 shmdt(xob->shm_info->shmaddr);
91 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
92 }
93 if (xob->xim) XDestroyImage(xob->xim);
94 xob->xim = NULL;
95 }
96 if (xob->shm_info) free(xob->shm_info);
97 xob->shm_info = NULL;
98 }
99 }
100
101 if (try_shm > 1) return NULL;
102
103 xob->xim = XCreateImage(d, v, depth, ZPixmap, 0, data, w, h, 32, 0);
104 if (!xob->xim)
105 {
106 free(xob);
107 return NULL;
108 }
109
110 xob->data = data;
111
112 if (!xob->xim->data)
113 {
114 xob->xim->data = malloc(xob->xim->bytes_per_line * xob->xim->height);
115 if (!xob->xim->data)
116 {
117 XDestroyImage(xob->xim);
118 free(xob);
119 return NULL;
120 }
121 }
122 if (xob->im)
123 evas_cache_image_drop(&xob->im->cache_entry);
124
125 xob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), w, h, (DATA32 *) xob->xim->data, 0, EVAS_COLORSPACE_RGB565_A5P);
126 if (xob->im)
127 xob->im->stride = xob->xim->bytes_per_line / sizeof(DATA16);
128 return xob;
129}
130
131void
132evas_software_16_x11_x_output_buffer_free(X_Output_Buffer *xob, int sync)
133{
134 if (xob->shm_info)
135 {
136 if (sync) XSync(xob->display, False);
137 XShmDetach(xob->display, xob->shm_info);
138 XDestroyImage(xob->xim);
139 shmdt(xob->shm_info->shmaddr);
140 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
141 free(xob->shm_info);
142 }
143 else
144 {
145 if (xob->data) xob->xim->data = NULL;
146 XDestroyImage(xob->xim);
147 }
148 free(xob);
149}
150
151void
152evas_software_16_x11_x_output_buffer_paste(X_Output_Buffer *xob, Drawable d, GC gc, int x, int y, int w, int h, int sync)
153{
154 if (xob->shm_info)
155 {
156 XShmPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y, w, h, False);
157 if (sync) XSync(xob->display, False);
158 }
159 else
160 XPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y, w, h);
161}
162
163DATA8 *
164evas_software_16_x11_x_output_buffer_data(X_Output_Buffer *xob, int *bytes_per_line_ret)
165{
166 if (bytes_per_line_ret) *bytes_per_line_ret = xob->xim->bytes_per_line;
167 return (DATA8*) xob->xim->data;
168}
169
170int
171evas_software_16_x11_x_output_buffer_depth(X_Output_Buffer *xob)
172{
173 return xob->xim->bits_per_pixel;
174}
175
176int
177evas_software_16_x11_x_output_buffer_byte_order(X_Output_Buffer *xob)
178{
179 return xob->xim->byte_order;
180}
181
182int
183evas_software_16_x11_x_output_buffer_bit_order(X_Output_Buffer *xob)
184{
185 return xob->xim->bitmap_bit_order;
186}
diff --git a/libraries/evas/src/modules/engines/software_8/Makefile.am b/libraries/evas/src/modules/engines/software_8/Makefile.am
deleted file mode 100644
index 46637fb..0000000
--- a/libraries/evas/src/modules/engines/software_8/Makefile.am
+++ /dev/null
@@ -1,37 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@
12
13if BUILD_ENGINE_SOFTWARE_8
14
15SOFTWARE_8_SOURCES = evas_engine.c
16
17
18if !EVAS_STATIC_BUILD_SOFTWARE_8_X11
19
20pkgdir = $(libdir)/evas/modules/engines/software_8/$(MODULE_ARCH)
21pkg_LTLIBRARIES = module.la
22module_la_SOURCES = $(SOFTWARE_8_SOURCES)
23module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la
24module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
25module_la_LIBTOOLFLAGS = --tag=disable-static
26
27else
28
29noinst_LTLIBRARIES = libevas_engine_software_8.la
30
31libevas_engine_software_8_la_SOURCES = $(SOFTWARE_8_SOURCES)
32
33endif
34endif
35
36EXTRA_DIST = \
37evas_engine.c
diff --git a/libraries/evas/src/modules/engines/software_8/Makefile.in b/libraries/evas/src/modules/engines/software_8/Makefile.in
deleted file mode 100644
index 6da6bbb..0000000
--- a/libraries/evas/src/modules/engines/software_8/Makefile.in
+++ /dev/null
@@ -1,767 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = src/modules/engines/software_8
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
41 $(top_srcdir)/m4/efl_coverage.m4 \
42 $(top_srcdir)/m4/efl_doxygen.m4 \
43 $(top_srcdir)/m4/efl_fnmatch.m4 \
44 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
45 $(top_srcdir)/m4/evas_check_engine.m4 \
46 $(top_srcdir)/m4/evas_check_loader.m4 \
47 $(top_srcdir)/m4/evas_converter.m4 \
48 $(top_srcdir)/m4/evas_dither.m4 \
49 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
50 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
51 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
52 $(top_srcdir)/configure.ac
53am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
54 $(ACLOCAL_M4)
55mkinstalldirs = $(install_sh) -d
56CONFIG_HEADER = $(top_builddir)/config.h
57CONFIG_CLEAN_FILES =
58CONFIG_CLEAN_VPATH_FILES =
59am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
60am__vpath_adj = case $$p in \
61 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
62 *) f=$$p;; \
63 esac;
64am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
65am__install_max = 40
66am__nobase_strip_setup = \
67 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
68am__nobase_strip = \
69 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
70am__nobase_list = $(am__nobase_strip_setup); \
71 for p in $$list; do echo "$$p $$p"; done | \
72 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
73 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
74 if (++n[$$2] == $(am__install_max)) \
75 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
76 END { for (dir in files) print dir, files[dir] }'
77am__base_list = \
78 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
79 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
80am__installdirs = "$(DESTDIR)$(pkgdir)"
81LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
82libevas_engine_software_8_la_LIBADD =
83am__libevas_engine_software_8_la_SOURCES_DIST = evas_engine.c
84@BUILD_ENGINE_SOFTWARE_8_TRUE@am__objects_1 = evas_engine.lo
85@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@am_libevas_engine_software_8_la_OBJECTS = $(am__objects_1)
86libevas_engine_software_8_la_OBJECTS = \
87 $(am_libevas_engine_software_8_la_OBJECTS)
88AM_V_lt = $(am__v_lt_$(V))
89am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
90am__v_lt_0 = --silent
91@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@am_libevas_engine_software_8_la_rpath =
92@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
93am__module_la_SOURCES_DIST = evas_engine.c
94@BUILD_ENGINE_SOFTWARE_8_TRUE@am__objects_2 = \
95@BUILD_ENGINE_SOFTWARE_8_TRUE@ module_la-evas_engine.lo
96@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@am_module_la_OBJECTS = $(am__objects_2)
97module_la_OBJECTS = $(am_module_la_OBJECTS)
98module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
99 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
100 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
101@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@am_module_la_rpath = -rpath \
102@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@ $(pkgdir)
103DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
104depcomp = $(SHELL) $(top_srcdir)/depcomp
105am__depfiles_maybe = depfiles
106am__mv = mv -f
107COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
108 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
109LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
110 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
111 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
112 $(AM_CFLAGS) $(CFLAGS)
113AM_V_CC = $(am__v_CC_$(V))
114am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
115am__v_CC_0 = @echo " CC " $@;
116AM_V_at = $(am__v_at_$(V))
117am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
118am__v_at_0 = @
119CCLD = $(CC)
120LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
121 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
122 $(AM_LDFLAGS) $(LDFLAGS) -o $@
123AM_V_CCLD = $(am__v_CCLD_$(V))
124am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
125am__v_CCLD_0 = @echo " CCLD " $@;
126AM_V_GEN = $(am__v_GEN_$(V))
127am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
128am__v_GEN_0 = @echo " GEN " $@;
129SOURCES = $(libevas_engine_software_8_la_SOURCES) $(module_la_SOURCES)
130DIST_SOURCES = $(am__libevas_engine_software_8_la_SOURCES_DIST) \
131 $(am__module_la_SOURCES_DIST)
132ETAGS = etags
133CTAGS = ctags
134DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
135ACLOCAL = @ACLOCAL@
136ALLOCA = @ALLOCA@
137AMTAR = @AMTAR@
138AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
139AR = @AR@
140AS = @AS@
141AUTOCONF = @AUTOCONF@
142AUTOHEADER = @AUTOHEADER@
143AUTOMAKE = @AUTOMAKE@
144AWK = @AWK@
145CC = @CC@
146CCDEPMODE = @CCDEPMODE@
147CFLAGS = @CFLAGS@
148CHECK_CFLAGS = @CHECK_CFLAGS@
149CHECK_LIBS = @CHECK_LIBS@
150CPP = @CPP@
151CPPFLAGS = @CPPFLAGS@
152CXX = @CXX@
153CXXCPP = @CXXCPP@
154CXXDEPMODE = @CXXDEPMODE@
155CXXFLAGS = @CXXFLAGS@
156CYGPATH_W = @CYGPATH_W@
157DEFS = @DEFS@
158DEPDIR = @DEPDIR@
159DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
160DIRECTFB_LIBS = @DIRECTFB_LIBS@
161DLLTOOL = @DLLTOOL@
162DSYMUTIL = @DSYMUTIL@
163DUMPBIN = @DUMPBIN@
164ECHO_C = @ECHO_C@
165ECHO_N = @ECHO_N@
166ECHO_T = @ECHO_T@
167ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
168ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
169EDB_CFLAGS = @EDB_CFLAGS@
170EDB_LIBS = @EDB_LIBS@
171EDJE_CFLAGS = @EDJE_CFLAGS@
172EDJE_LIBS = @EDJE_LIBS@
173EET_CFLAGS = @EET_CFLAGS@
174EET_LIBS = @EET_LIBS@
175EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
176EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
177EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
178EGREP = @EGREP@
179EINA_CFLAGS = @EINA_CFLAGS@
180EINA_LIBS = @EINA_LIBS@
181EVAS_CFLAGS = @EVAS_CFLAGS@
182EVAS_LIBS = @EVAS_LIBS@
183EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
184EVIL_CFLAGS = @EVIL_CFLAGS@
185EVIL_LIBS = @EVIL_LIBS@
186EXEEXT = @EXEEXT@
187EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
188EXOTIC_LIBS = @EXOTIC_LIBS@
189FGREP = @FGREP@
190FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
191FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
192FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
193FREETYPE_LIBS = @FREETYPE_LIBS@
194FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
195FRIBIDI_LIBS = @FRIBIDI_LIBS@
196GL_EET_CFLAGS = @GL_EET_CFLAGS@
197GL_EET_LIBS = @GL_EET_LIBS@
198GREP = @GREP@
199HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
200HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
201INSTALL = @INSTALL@
202INSTALL_DATA = @INSTALL_DATA@
203INSTALL_PROGRAM = @INSTALL_PROGRAM@
204INSTALL_SCRIPT = @INSTALL_SCRIPT@
205INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
206LD = @LD@
207LDFLAGS = @LDFLAGS@
208LIBOBJS = @LIBOBJS@
209LIBS = @LIBS@
210LIBTOOL = @LIBTOOL@
211LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
212LINEBREAK_LIBS = @LINEBREAK_LIBS@
213LIPO = @LIPO@
214LN_S = @LN_S@
215LTLIBOBJS = @LTLIBOBJS@
216MAKEINFO = @MAKEINFO@
217MKDIR_P = @MKDIR_P@
218MODULE_ARCH = @MODULE_ARCH@
219NM = @NM@
220NMEDIT = @NMEDIT@
221OBJC = @OBJC@
222OBJCDEPMODE = @OBJCDEPMODE@
223OBJCFLAGS = @OBJCFLAGS@
224OBJDUMP = @OBJDUMP@
225OBJEXT = @OBJEXT@
226OTOOL = @OTOOL@
227OTOOL64 = @OTOOL64@
228PACKAGE = @PACKAGE@
229PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
230PACKAGE_NAME = @PACKAGE_NAME@
231PACKAGE_STRING = @PACKAGE_STRING@
232PACKAGE_TARNAME = @PACKAGE_TARNAME@
233PACKAGE_URL = @PACKAGE_URL@
234PACKAGE_VERSION = @PACKAGE_VERSION@
235PATH_SEPARATOR = @PATH_SEPARATOR@
236PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
237PIXMAN_LIBS = @PIXMAN_LIBS@
238PKG_CONFIG = @PKG_CONFIG@
239PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
240PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
241PNG_CFLAGS = @PNG_CFLAGS@
242PNG_LIBS = @PNG_LIBS@
243RANLIB = @RANLIB@
244SDL_CFLAGS = @SDL_CFLAGS@
245SDL_LIBS = @SDL_LIBS@
246SED = @SED@
247SET_MAKE = @SET_MAKE@
248SHELL = @SHELL@
249SHM_OPEN_LINK = @SHM_OPEN_LINK@
250STRIP = @STRIP@
251SVG_CFLAGS = @SVG_CFLAGS@
252SVG_LIBS = @SVG_LIBS@
253VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
254VALGRIND_LIBS = @VALGRIND_LIBS@
255VERSION = @VERSION@
256VMAJ = @VMAJ@
257WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
258WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
259XCB_CFLAGS = @XCB_CFLAGS@
260XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
261XCB_GL_LIBS = @XCB_GL_LIBS@
262XCB_LIBS = @XCB_LIBS@
263XEXT_CFLAGS = @XEXT_CFLAGS@
264XEXT_LIBS = @XEXT_LIBS@
265XMKMF = @XMKMF@
266X_CFLAGS = @X_CFLAGS@
267X_EXTRA_LIBS = @X_EXTRA_LIBS@
268X_LIBS = @X_LIBS@
269X_PRE_LIBS = @X_PRE_LIBS@
270abs_builddir = @abs_builddir@
271abs_srcdir = @abs_srcdir@
272abs_top_builddir = @abs_top_builddir@
273abs_top_srcdir = @abs_top_srcdir@
274ac_ct_CC = @ac_ct_CC@
275ac_ct_CXX = @ac_ct_CXX@
276ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
277ac_ct_OBJC = @ac_ct_OBJC@
278altivec_cflags = @altivec_cflags@
279am__include = @am__include@
280am__leading_dot = @am__leading_dot@
281am__quote = @am__quote@
282am__tar = @am__tar@
283am__untar = @am__untar@
284bindir = @bindir@
285build = @build@
286build_alias = @build_alias@
287build_cpu = @build_cpu@
288build_os = @build_os@
289build_vendor = @build_vendor@
290builddir = @builddir@
291datadir = @datadir@
292datarootdir = @datarootdir@
293dlopen_libs = @dlopen_libs@
294docdir = @docdir@
295dvidir = @dvidir@
296edje_cc = @edje_cc@
297efl_doxygen = @efl_doxygen@
298efl_have_doxygen = @efl_have_doxygen@
299evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
300evas_engine_buffer_libs = @evas_engine_buffer_libs@
301evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
302evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
303evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
304evas_engine_directfb_libs = @evas_engine_directfb_libs@
305evas_engine_fb_cflags = @evas_engine_fb_cflags@
306evas_engine_fb_libs = @evas_engine_fb_libs@
307evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
308evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
309evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
310evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
311evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
312evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
313evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
314evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
315evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
316evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
317evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
318evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
319evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
320evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
321evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
322evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
323evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
324evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
325evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
326evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
327evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
328evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
329evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
330evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
331evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
332evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
333evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
334evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
335evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
336evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
337evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
338evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
339evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
340evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
341evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
342evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
343evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
344evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
345evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
346evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
347evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
348evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
349evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
350evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
351evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
352evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
353evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
354evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
355evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
356evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
357evas_image_loader_png_libs = @evas_image_loader_png_libs@
358evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
359evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
360evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
361evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
362evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
363evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
364evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
365evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
366evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
367evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
368evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
369evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
370exec_prefix = @exec_prefix@
371have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
372have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
373have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
374have_evas_engine_software_x11 = @have_evas_engine_software_x11@
375have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
376have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
377have_lcov = @have_lcov@
378host = @host@
379host_alias = @host_alias@
380host_cpu = @host_cpu@
381host_os = @host_os@
382host_vendor = @host_vendor@
383htmldir = @htmldir@
384includedir = @includedir@
385infodir = @infodir@
386install_sh = @install_sh@
387libdir = @libdir@
388libexecdir = @libexecdir@
389localedir = @localedir@
390localstatedir = @localstatedir@
391lt_ECHO = @lt_ECHO@
392lt_enable_auto_import = @lt_enable_auto_import@
393mandir = @mandir@
394mkdir_p = @mkdir_p@
395oldincludedir = @oldincludedir@
396pdfdir = @pdfdir@
397pkgconfig_requires_private = @pkgconfig_requires_private@
398prefix = @prefix@
399program_transform_name = @program_transform_name@
400psdir = @psdir@
401pthread_cflags = @pthread_cflags@
402pthread_libs = @pthread_libs@
403release_info = @release_info@
404requirement_evas = @requirement_evas@
405sbindir = @sbindir@
406sharedstatedir = @sharedstatedir@
407srcdir = @srcdir@
408sysconfdir = @sysconfdir@
409target_alias = @target_alias@
410top_build_prefix = @top_build_prefix@
411top_builddir = @top_builddir@
412top_srcdir = @top_srcdir@
413version_info = @version_info@
414MAINTAINERCLEANFILES = Makefile.in
415AM_CPPFLAGS = \
416-I. \
417-I$(top_srcdir)/src/lib \
418-I$(top_srcdir)/src/lib/include \
419-I$(top_srcdir)/src/modules/engines \
420@FREETYPE_CFLAGS@ \
421@PIXMAN_CFLAGS@ \
422@EINA_CFLAGS@
423
424@BUILD_ENGINE_SOFTWARE_8_TRUE@SOFTWARE_8_SOURCES = evas_engine.c
425@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_8/$(MODULE_ARCH)
426@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@pkg_LTLIBRARIES = module.la
427@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_SOURCES = $(SOFTWARE_8_SOURCES)
428@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la
429@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
430@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
431@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@noinst_LTLIBRARIES = libevas_engine_software_8.la
432@BUILD_ENGINE_SOFTWARE_8_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@libevas_engine_software_8_la_SOURCES = $(SOFTWARE_8_SOURCES)
433EXTRA_DIST = \
434evas_engine.c
435
436all: all-am
437
438.SUFFIXES:
439.SUFFIXES: .c .lo .o .obj
440$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
441 @for dep in $?; do \
442 case '$(am__configure_deps)' in \
443 *$$dep*) \
444 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
445 && { if test -f $@; then exit 0; else break; fi; }; \
446 exit 1;; \
447 esac; \
448 done; \
449 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_8/Makefile'; \
450 $(am__cd) $(top_srcdir) && \
451 $(AUTOMAKE) --gnu src/modules/engines/software_8/Makefile
452.PRECIOUS: Makefile
453Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
454 @case '$?' in \
455 *config.status*) \
456 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
457 *) \
458 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
459 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
460 esac;
461
462$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
463 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
464
465$(top_srcdir)/configure: $(am__configure_deps)
466 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
467$(ACLOCAL_M4): $(am__aclocal_m4_deps)
468 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
469$(am__aclocal_m4_deps):
470
471clean-noinstLTLIBRARIES:
472 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
473 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
474 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
475 test "$$dir" != "$$p" || dir=.; \
476 echo "rm -f \"$${dir}/so_locations\""; \
477 rm -f "$${dir}/so_locations"; \
478 done
479install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
480 @$(NORMAL_INSTALL)
481 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
482 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
483 list2=; for p in $$list; do \
484 if test -f $$p; then \
485 list2="$$list2 $$p"; \
486 else :; fi; \
487 done; \
488 test -z "$$list2" || { \
489 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
490 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
491 }
492
493uninstall-pkgLTLIBRARIES:
494 @$(NORMAL_UNINSTALL)
495 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
496 for p in $$list; do \
497 $(am__strip_dir) \
498 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
499 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
500 done
501
502clean-pkgLTLIBRARIES:
503 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
504 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
505 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
506 test "$$dir" != "$$p" || dir=.; \
507 echo "rm -f \"$${dir}/so_locations\""; \
508 rm -f "$${dir}/so_locations"; \
509 done
510libevas_engine_software_8.la: $(libevas_engine_software_8_la_OBJECTS) $(libevas_engine_software_8_la_DEPENDENCIES)
511 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_8_la_rpath) $(libevas_engine_software_8_la_OBJECTS) $(libevas_engine_software_8_la_LIBADD) $(LIBS)
512module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
513 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
514
515mostlyclean-compile:
516 -rm -f *.$(OBJEXT)
517
518distclean-compile:
519 -rm -f *.tab.c
520
521@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
522@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
523
524.c.o:
525@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
526@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
527@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
528@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
529@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
530@am__fastdepCC_FALSE@ $(COMPILE) -c $<
531
532.c.obj:
533@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
534@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
535@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
536@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
537@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
538@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
539
540.c.lo:
541@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
542@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
543@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
544@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
545@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
546@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
547
548module_la-evas_engine.lo: evas_engine.c
549@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
550@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
551@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
552@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
553@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
554@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
555
556mostlyclean-libtool:
557 -rm -f *.lo
558
559clean-libtool:
560 -rm -rf .libs _libs
561
562ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
563 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
564 unique=`for i in $$list; do \
565 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
566 done | \
567 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
568 END { if (nonempty) { for (i in files) print i; }; }'`; \
569 mkid -fID $$unique
570tags: TAGS
571
572TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
573 $(TAGS_FILES) $(LISP)
574 set x; \
575 here=`pwd`; \
576 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
577 unique=`for i in $$list; do \
578 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
579 done | \
580 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
581 END { if (nonempty) { for (i in files) print i; }; }'`; \
582 shift; \
583 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
584 test -n "$$unique" || unique=$$empty_fix; \
585 if test $$# -gt 0; then \
586 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
587 "$$@" $$unique; \
588 else \
589 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
590 $$unique; \
591 fi; \
592 fi
593ctags: CTAGS
594CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
595 $(TAGS_FILES) $(LISP)
596 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
597 unique=`for i in $$list; do \
598 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
599 done | \
600 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
601 END { if (nonempty) { for (i in files) print i; }; }'`; \
602 test -z "$(CTAGS_ARGS)$$unique" \
603 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
604 $$unique
605
606GTAGS:
607 here=`$(am__cd) $(top_builddir) && pwd` \
608 && $(am__cd) $(top_srcdir) \
609 && gtags -i $(GTAGS_ARGS) "$$here"
610
611distclean-tags:
612 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
613
614distdir: $(DISTFILES)
615 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
616 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
617 list='$(DISTFILES)'; \
618 dist_files=`for file in $$list; do echo $$file; done | \
619 sed -e "s|^$$srcdirstrip/||;t" \
620 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
621 case $$dist_files in \
622 */*) $(MKDIR_P) `echo "$$dist_files" | \
623 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
624 sort -u` ;; \
625 esac; \
626 for file in $$dist_files; do \
627 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
628 if test -d $$d/$$file; then \
629 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
630 if test -d "$(distdir)/$$file"; then \
631 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
632 fi; \
633 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
634 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
635 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
636 fi; \
637 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
638 else \
639 test -f "$(distdir)/$$file" \
640 || cp -p $$d/$$file "$(distdir)/$$file" \
641 || exit 1; \
642 fi; \
643 done
644check-am: all-am
645check: check-am
646all-am: Makefile $(LTLIBRARIES)
647installdirs:
648 for dir in "$(DESTDIR)$(pkgdir)"; do \
649 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
650 done
651install: install-am
652install-exec: install-exec-am
653install-data: install-data-am
654uninstall: uninstall-am
655
656install-am: all-am
657 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
658
659installcheck: installcheck-am
660install-strip:
661 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
662 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
663 `test -z '$(STRIP)' || \
664 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
665mostlyclean-generic:
666
667clean-generic:
668
669distclean-generic:
670 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
671 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
672
673maintainer-clean-generic:
674 @echo "This command is intended for maintainers to use"
675 @echo "it deletes files that may require special tools to rebuild."
676 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
677clean: clean-am
678
679clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
680 clean-pkgLTLIBRARIES mostlyclean-am
681
682distclean: distclean-am
683 -rm -rf ./$(DEPDIR)
684 -rm -f Makefile
685distclean-am: clean-am distclean-compile distclean-generic \
686 distclean-tags
687
688dvi: dvi-am
689
690dvi-am:
691
692html: html-am
693
694html-am:
695
696info: info-am
697
698info-am:
699
700install-data-am: install-pkgLTLIBRARIES
701
702install-dvi: install-dvi-am
703
704install-dvi-am:
705
706install-exec-am:
707
708install-html: install-html-am
709
710install-html-am:
711
712install-info: install-info-am
713
714install-info-am:
715
716install-man:
717
718install-pdf: install-pdf-am
719
720install-pdf-am:
721
722install-ps: install-ps-am
723
724install-ps-am:
725
726installcheck-am:
727
728maintainer-clean: maintainer-clean-am
729 -rm -rf ./$(DEPDIR)
730 -rm -f Makefile
731maintainer-clean-am: distclean-am maintainer-clean-generic
732
733mostlyclean: mostlyclean-am
734
735mostlyclean-am: mostlyclean-compile mostlyclean-generic \
736 mostlyclean-libtool
737
738pdf: pdf-am
739
740pdf-am:
741
742ps: ps-am
743
744ps-am:
745
746uninstall-am: uninstall-pkgLTLIBRARIES
747
748.MAKE: install-am install-strip
749
750.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
751 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
752 ctags distclean distclean-compile distclean-generic \
753 distclean-libtool distclean-tags distdir dvi dvi-am html \
754 html-am info info-am install install-am install-data \
755 install-data-am install-dvi install-dvi-am install-exec \
756 install-exec-am install-html install-html-am install-info \
757 install-info-am install-man install-pdf install-pdf-am \
758 install-pkgLTLIBRARIES install-ps install-ps-am install-strip \
759 installcheck installcheck-am installdirs maintainer-clean \
760 maintainer-clean-generic mostlyclean mostlyclean-compile \
761 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
762 tags uninstall uninstall-am uninstall-pkgLTLIBRARIES
763
764
765# Tell versions [3.59,3.63) of GNU make to not export all variables.
766# Otherwise a system limit (for SysV at least) may be exceeded.
767.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_8/evas_engine.c b/libraries/evas/src/modules/engines/software_8/evas_engine.c
deleted file mode 100644
index c7c123a..0000000
--- a/libraries/evas/src/modules/engines/software_8/evas_engine.c
+++ /dev/null
@@ -1,440 +0,0 @@
1#include "evas_common.h"
2#include "evas_common_soft8.h"
3
4/*
5 *****
6 **
7 ** ENGINE ROUTINES
8 **
9 *****
10 */
11int _evas_soft8_log_dom = -1;
12
13static Evas_Func func, pfunc;
14
15#ifdef ERR
16#undef ERR
17#endif
18#define ERR(...) EINA_LOG_DOM_ERR( _evas_soft8_log_dom, __VA_ARGS__)
19
20#ifdef DBG
21#undef DBG
22#endif
23#define DBG(...) EINA_LOG_DOM_DBG(_evas_soft8_log_dom, __VA_ARGS__)
24
25#ifdef INF
26#undef INF
27#endif
28#define INF(...) EINA_LOG_DOM_INFO(_evas_soft8_log_dom, __VA_ARGS__)
29
30#ifdef WRN
31#undef WRN
32#endif
33#define WRN(...) EINA_LOG_DOM_WARN(_evas_soft8_log_dom, __VA_ARGS__)
34
35#ifdef CRIT
36#undef CRIT
37#endif
38#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_soft8_log_dom, __VA_ARGS__)
39
40#define NOT_IMPLEMENTED() \
41 WRN("NOT_IMPLEMENTED: %s() at %s:%d", \
42 __FUNCTION__, __FILE__, __LINE__)
43
44static void
45eng_rectangle_draw(void *data __UNUSED__, void *context, void *surface, int x,
46 int y, int w, int h)
47{
48 evas_common_soft8_rectangle_draw(surface, context, x, y, w, h);
49}
50
51static void
52eng_line_draw(void *data __UNUSED__, void *context, void *surface, int x1,
53 int y1, int x2, int y2)
54{
55 evas_common_soft8_line_draw(surface, context, x1, y1, x2, y2);
56}
57
58static void
59eng_polygon_draw(void *data __UNUSED__, void *context, void *surface,
60 void *polygon, int x, int y)
61{
62 evas_common_soft8_polygon_draw(surface, context, polygon, x, y);
63}
64
65static int
66eng_image_alpha_get(void *data __UNUSED__, void *image)
67{
68 Soft8_Image *im;
69
70 if (!image)
71 return 0;
72 im = image;
73 return im->cache_entry.flags.alpha;
74}
75
76static int
77eng_image_colorspace_get(void *data __UNUSED__, void *image __UNUSED__)
78{
79 return EVAS_COLORSPACE_GRY8;
80}
81
82static void *
83eng_image_alpha_set(void *data __UNUSED__, void *image, int have_alpha)
84{
85 if (!image)
86 return NULL;
87 have_alpha = !!have_alpha;
88 image = evas_common_soft8_image_alpha_set(image, have_alpha);
89 return image;
90}
91
92static char *
93eng_image_comment_get(void *data __UNUSED__, void *image __UNUSED__,
94 char *key __UNUSED__)
95{
96 return NULL;
97}
98
99static char *
100eng_image_format_get(void *data __UNUSED__, void *image __UNUSED__)
101{
102 NOT_IMPLEMENTED();
103 return NULL;
104}
105
106static void
107eng_image_colorspace_set(void *data __UNUSED__, void *image __UNUSED__,
108 int cspace __UNUSED__)
109{
110 NOT_IMPLEMENTED();
111}
112
113static void *
114eng_image_native_set(void *data __UNUSED__, void *image,
115 void *native __UNUSED__)
116{
117 NOT_IMPLEMENTED();
118 return image;
119}
120
121static void *
122eng_image_native_get(void *data __UNUSED__, void *image __UNUSED__)
123{
124 NOT_IMPLEMENTED();
125 return NULL;
126}
127
128static void *
129eng_image_load(void *data __UNUSED__, const char *file, const char *key,
130 int *error, Evas_Image_Load_Opts * lo)
131{
132 return evas_cache_image_request(evas_common_soft8_image_cache_get(), file,
133 key, lo, error);
134}
135
136static void *
137eng_image_new_from_data(void *data __UNUSED__, int w, int h,
138 DATA32 * image_data, int alpha, int cspace)
139{
140 if ((image_data) && (cspace != EVAS_COLORSPACE_GRY8))
141 {
142 WRN("Unsupported colorspace %d in %s() (%s:%d)",
143 cspace, __FUNCTION__, __FILE__, __LINE__);
144 return NULL;
145 }
146 return evas_cache_image_data(evas_common_soft8_image_cache_get(), w, h,
147 image_data, alpha, EVAS_COLORSPACE_GRY8);
148}
149
150static void *
151eng_image_new_from_copied_data(void *data __UNUSED__, int w, int h,
152 DATA32 * image_data, int alpha, int cspace)
153{
154 if ((image_data) && (cspace != EVAS_COLORSPACE_GRY8))
155 {
156 WRN("Unsupported colorspace %d in %s() (%s:%d)",
157 cspace, __FUNCTION__, __FILE__, __LINE__);
158 return NULL;
159 }
160 return evas_cache_image_copied_data(evas_common_soft8_image_cache_get(), w,
161 h, image_data, alpha,
162 EVAS_COLORSPACE_GRY8);
163}
164
165static void
166eng_image_free(void *data __UNUSED__, void *image)
167{
168 evas_cache_image_drop((Image_Entry *) image);
169}
170
171static void
172eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
173{
174 Soft8_Image *im;
175
176 if (w)
177 *w = 0;
178 if (h)
179 *h = 0;
180 if (!image)
181 return;
182 im = image;
183 if (w)
184 *w = im->cache_entry.w;
185 if (h)
186 *h = im->cache_entry.h;
187}
188
189static void *
190eng_image_size_set(void *data __UNUSED__, void *image, int w, int h)
191{
192 if (!image)
193 return NULL;
194 if ((w <= 0) || (h <= 0))
195 {
196 evas_cache_image_drop((Image_Entry *) image);
197 return NULL;
198 }
199 return evas_cache_image_size_set((Image_Entry *) image, w, h);
200}
201
202static void
203eng_image_stride_get(void *data __UNUSED__, void *image, int *stride)
204{
205 Soft8_Image *im;
206
207 if (stride)
208 *stride = 0;
209 if (!image)
210 return;
211 im = image;
212 if (stride)
213 *stride = im->stride;
214}
215
216static void *
217eng_image_dirty_region(void *data __UNUSED__, void *image __UNUSED__,
218 int x __UNUSED__, int y __UNUSED__, int w __UNUSED__,
219 int h __UNUSED__)
220{
221 /* FIXME: is this required? */
222 //NOT_IMPLEMENTED();
223 return image;
224}
225
226static void *
227eng_image_data_get(void *data __UNUSED__, void *image, int to_write,
228 DATA32 ** image_data, int *err)
229{
230 Soft8_Image *im;
231 int error;
232
233 if (!image)
234 {
235 *image_data = NULL;
236 return NULL;
237 }
238
239 im = image;
240 error = evas_cache_image_load_data(&im->cache_entry);
241
242 if (to_write)
243 im = (Soft8_Image *) evas_cache_image_alone(&im->cache_entry);
244
245 if (image_data)
246 *image_data = (DATA32 *) im->pixels;
247
248 if (err) *err = error;
249 return im;
250}
251
252static void *
253eng_image_data_put(void *data __UNUSED__, void *image, DATA32 * image_data)
254{
255 Soft8_Image *old_im, *new_im;
256
257 if (!image)
258 return NULL;
259
260 old_im = image;
261 if ((DATA8 *) image_data == old_im->pixels)
262 return old_im;
263
264 new_im =
265 (Soft8_Image *)
266 evas_cache_image_data(evas_common_soft8_image_cache_get(),
267 old_im->cache_entry.w, old_im->cache_entry.h,
268 image_data, old_im->cache_entry.flags.alpha,
269 EVAS_COLORSPACE_GRY8);
270 evas_cache_image_drop(&old_im->cache_entry);
271 return new_im;
272}
273
274static void
275eng_image_data_preload_request(void *data __UNUSED__, void *image,
276 const void *target)
277{
278 Soft8_Image *im = image;
279
280 if (!im)
281 return;
282 evas_cache_image_preload_data(&im->cache_entry, target);
283}
284
285static void
286eng_image_data_preload_cancel(void *data __UNUSED__, void *image,
287 const void *target)
288{
289 Soft8_Image *im = image;
290
291 if (!im)
292 return;
293 evas_cache_image_preload_cancel(&im->cache_entry, target);
294}
295
296static void
297eng_image_draw(void *data __UNUSED__, void *context, void *surface, void *image,
298 int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y,
299 int dst_w, int dst_h, int smooth)
300{
301 Soft8_Image *im;
302
303 im = (Soft8_Image *) image;
304
305 evas_cache_image_load_data(&im->cache_entry);
306 evas_common_soft8_image_draw(im, surface, context,
307 src_x, src_y, src_w, src_h,
308 dst_x, dst_y, dst_w, dst_h, smooth);
309}
310
311static void
312eng_image_scale_hint_set(void *data __UNUSED__, void *image __UNUSED__,
313 int hint __UNUSED__)
314{
315}
316
317static int
318eng_image_scale_hint_get(void *data __UNUSED__, void *image __UNUSED__)
319{
320 return EVAS_IMAGE_SCALE_HINT_NONE;
321}
322
323static void
324eng_image_cache_flush(void *data __UNUSED__)
325{
326 evas_cache_image_flush(evas_common_soft8_image_cache_get());
327}
328
329static void
330eng_image_cache_set(void *data __UNUSED__, int bytes)
331{
332 evas_cache_image_set(evas_common_soft8_image_cache_get(), bytes);
333}
334
335static int
336eng_image_cache_get(void *data __UNUSED__)
337{
338 return evas_cache_image_get(evas_common_soft8_image_cache_get());
339}
340
341static void
342eng_font_draw(void *data __UNUSED__, void *context, void *surface,
343 Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__,
344 int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *text_props)
345{
346 evas_common_font_draw(surface, context, (RGBA_Font *) font, x, y,
347 text_props);
348 evas_common_draw_context_font_ext_set(context, NULL, NULL, NULL, NULL);
349}
350
351static void
352eng_font_cache_flush(void *data __UNUSED__)
353{
354 evas_common_font_flush();
355}
356
357/*
358 *****
359 **
360 ** MODULE ACCESSIBLE API API
361 **
362 *****
363 */
364
365static int
366module_open(Evas_Module * em)
367{
368 if (!em)
369 return 0;
370 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
371 _evas_soft8_log_dom = eina_log_domain_register
372 ("evas-software_8", EVAS_DEFAULT_LOG_COLOR);
373 if (_evas_soft8_log_dom < 0)
374 {
375 EINA_LOG_ERR("Can not create a module log domain.");
376 return 0;
377 }
378 /* store it for later use */
379 func = pfunc;
380 /* now to override methods */
381 EVAS_API_RESET(info, &func);
382 EVAS_API_RESET(info_free, &func);
383 EVAS_API_RESET(setup, &func);
384#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
385 ORD(rectangle_draw);
386 ORD(line_draw);
387 ORD(polygon_draw);
388 ORD(image_load);
389 ORD(image_new_from_data);
390 ORD(image_new_from_copied_data);
391 ORD(image_free);
392 ORD(image_size_get);
393 ORD(image_size_set);
394 ORD(image_stride_get);
395 ORD(image_dirty_region);
396 ORD(image_data_get);
397 ORD(image_data_put);
398 ORD(image_data_preload_request);
399 ORD(image_data_preload_cancel);
400 ORD(image_alpha_set);
401 ORD(image_alpha_get);
402 ORD(image_draw);
403 ORD(image_comment_get);
404 ORD(image_format_get);
405 ORD(image_colorspace_set);
406 ORD(image_colorspace_get);
407 ORD(image_native_set);
408 ORD(image_native_get);
409 ORD(image_cache_flush);
410 ORD(image_cache_set);
411 ORD(image_cache_get);
412 ORD(font_draw);
413 ORD(image_scale_hint_set);
414 ORD(image_scale_hint_get);
415
416 em->functions = (void *)(&func);
417
418 return 1;
419}
420
421static void
422module_close(Evas_Module * em __UNUSED__)
423{
424 eina_log_domain_unregister(_evas_soft8_log_dom);
425}
426
427static Evas_Module_Api evas_modapi = {
428 EVAS_MODULE_API_VERSION,
429 "software_8",
430 "none",
431 {
432 module_open,
433 module_close}
434};
435
436EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_8);
437
438#ifndef EVAS_STATIC_BUILD_SOFTWARE_8
439EVAS_EINA_MODULE_DEFINE(engine, software_8);
440#endif
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h b/libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h
deleted file mode 100644
index fac3d8e..0000000
--- a/libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h
+++ /dev/null
@@ -1,38 +0,0 @@
1#ifndef _EVAS_ENGINE_SOFTWARE_8_X11_H
2#define _EVAS_ENGINE_SOFTWARE_8_X11_H
3
4#include <xcb/xcb.h>
5
6typedef struct _Evas_Engine_Info_Software_8_X11 Evas_Engine_Info_Software_8_X11;
7
8struct _Evas_Engine_Info_Software_8_X11
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 xcb_connection_t *connection;
17 xcb_drawable_t drawable;
18 xcb_gcontext_t gc;
19 xcb_screen_t *screen;
20
21 unsigned int mask;
22 void *visual;
23 unsigned int colormap;
24 int depth;
25 int rotation;
26
27 int alloc_grayscale : 1;
28 int debug : 1;
29 int shape_dither : 1;
30 int destination_alpha : 1;
31 int track_mask_changes : 1;
32 } info;
33
34 /* non-blocking or blocking mode */
35 Evas_Engine_Render_Mode render_mode;
36};
37
38#endif
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Makefile.am b/libraries/evas/src/modules/engines/software_8_x11/Makefile.am
deleted file mode 100644
index 3689577..0000000
--- a/libraries/evas/src/modules/engines/software_8_x11/Makefile.am
+++ /dev/null
@@ -1,49 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9-I$(top_srcdir)/src/modules/engines/software_8 \
10@FREETYPE_CFLAGS@ \
11@PIXMAN_CFLAGS@ \
12@EINA_CFLAGS@ \
13@evas_engine_software_8_x11_cflags@ \
14-I/usr/include/pixman-1
15
16if BUILD_ENGINE_SOFTWARE_8_X11
17
18SOFTWARE_8_X11_SOURCES = \
19evas_engine.c \
20evas_x_buffer.c
21
22SOFTWARE_8_X11_LIBADD = @evas_engine_software_8_x11_libs@
23
24
25includes_HEADERS = Evas_Engine_Software_8_X11.h
26includesdir = $(includedir)/evas-@VMAJ@
27
28if !EVAS_STATIC_BUILD_SOFTWARE_8_X11
29
30pkgdir = $(libdir)/evas/modules/engines/software_8_x11/$(MODULE_ARCH)
31pkg_LTLIBRARIES = module.la
32
33module_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
34module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_8_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
35#-lxcb-image -lxcb-shm -lxcb -lpixman-1
36module_la_LDFLAGS = -no-undefined -module -avoid-version
37module_la_LIBTOOLFLAGS = --tag=disable-static
38
39else
40
41noinst_LTLIBRARIES = libevas_engine_software_8_x11.la
42
43libevas_engine_software_8_x11_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
44libevas_engine_software_8_x11_la_LIBADD = $(SOFTWARE_8_X11_LIBADD)
45
46endif
47endif
48
49EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Makefile.in b/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
deleted file mode 100644
index 3231fd1..0000000
--- a/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
+++ /dev/null
@@ -1,818 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_8_x11
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@libevas_engine_software_8_x11_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_8_x11_la_SOURCES_DIST = evas_engine.c \
87 evas_x_buffer.c
88@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@ evas_x_buffer.lo
90@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@am_libevas_engine_software_8_x11_la_OBJECTS = $(am__objects_1)
91libevas_engine_software_8_x11_la_OBJECTS = \
92 $(am_libevas_engine_software_8_x11_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@am_libevas_engine_software_8_x11_la_rpath =
97@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_x_buffer.c
100@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@am__objects_2 = \
101@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@ module_la-evas_x_buffer.lo
103@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_software_8_x11_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_software_8_x11_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Software_8_X11.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
198EXOTIC_LIBS = @EXOTIC_LIBS@
199FGREP = @FGREP@
200FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
201FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
202FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
203FREETYPE_LIBS = @FREETYPE_LIBS@
204FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
205FRIBIDI_LIBS = @FRIBIDI_LIBS@
206GL_EET_CFLAGS = @GL_EET_CFLAGS@
207GL_EET_LIBS = @GL_EET_LIBS@
208GREP = @GREP@
209HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
210HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
211INSTALL = @INSTALL@
212INSTALL_DATA = @INSTALL_DATA@
213INSTALL_PROGRAM = @INSTALL_PROGRAM@
214INSTALL_SCRIPT = @INSTALL_SCRIPT@
215INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
216LD = @LD@
217LDFLAGS = @LDFLAGS@
218LIBOBJS = @LIBOBJS@
219LIBS = @LIBS@
220LIBTOOL = @LIBTOOL@
221LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
222LINEBREAK_LIBS = @LINEBREAK_LIBS@
223LIPO = @LIPO@
224LN_S = @LN_S@
225LTLIBOBJS = @LTLIBOBJS@
226MAKEINFO = @MAKEINFO@
227MKDIR_P = @MKDIR_P@
228MODULE_ARCH = @MODULE_ARCH@
229NM = @NM@
230NMEDIT = @NMEDIT@
231OBJC = @OBJC@
232OBJCDEPMODE = @OBJCDEPMODE@
233OBJCFLAGS = @OBJCFLAGS@
234OBJDUMP = @OBJDUMP@
235OBJEXT = @OBJEXT@
236OTOOL = @OTOOL@
237OTOOL64 = @OTOOL64@
238PACKAGE = @PACKAGE@
239PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
240PACKAGE_NAME = @PACKAGE_NAME@
241PACKAGE_STRING = @PACKAGE_STRING@
242PACKAGE_TARNAME = @PACKAGE_TARNAME@
243PACKAGE_URL = @PACKAGE_URL@
244PACKAGE_VERSION = @PACKAGE_VERSION@
245PATH_SEPARATOR = @PATH_SEPARATOR@
246PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
247PIXMAN_LIBS = @PIXMAN_LIBS@
248PKG_CONFIG = @PKG_CONFIG@
249PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
250PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251PNG_CFLAGS = @PNG_CFLAGS@
252PNG_LIBS = @PNG_LIBS@
253RANLIB = @RANLIB@
254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_LIBS = @SDL_LIBS@
256SED = @SED@
257SET_MAKE = @SET_MAKE@
258SHELL = @SHELL@
259SHM_OPEN_LINK = @SHM_OPEN_LINK@
260STRIP = @STRIP@
261SVG_CFLAGS = @SVG_CFLAGS@
262SVG_LIBS = @SVG_LIBS@
263VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
264VALGRIND_LIBS = @VALGRIND_LIBS@
265VERSION = @VERSION@
266VMAJ = @VMAJ@
267WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
268WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
269XCB_CFLAGS = @XCB_CFLAGS@
270XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
271XCB_GL_LIBS = @XCB_GL_LIBS@
272XCB_LIBS = @XCB_LIBS@
273XEXT_CFLAGS = @XEXT_CFLAGS@
274XEXT_LIBS = @XEXT_LIBS@
275XMKMF = @XMKMF@
276X_CFLAGS = @X_CFLAGS@
277X_EXTRA_LIBS = @X_EXTRA_LIBS@
278X_LIBS = @X_LIBS@
279X_PRE_LIBS = @X_PRE_LIBS@
280abs_builddir = @abs_builddir@
281abs_srcdir = @abs_srcdir@
282abs_top_builddir = @abs_top_builddir@
283abs_top_srcdir = @abs_top_srcdir@
284ac_ct_CC = @ac_ct_CC@
285ac_ct_CXX = @ac_ct_CXX@
286ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
287ac_ct_OBJC = @ac_ct_OBJC@
288altivec_cflags = @altivec_cflags@
289am__include = @am__include@
290am__leading_dot = @am__leading_dot@
291am__quote = @am__quote@
292am__tar = @am__tar@
293am__untar = @am__untar@
294bindir = @bindir@
295build = @build@
296build_alias = @build_alias@
297build_cpu = @build_cpu@
298build_os = @build_os@
299build_vendor = @build_vendor@
300builddir = @builddir@
301datadir = @datadir@
302datarootdir = @datarootdir@
303dlopen_libs = @dlopen_libs@
304docdir = @docdir@
305dvidir = @dvidir@
306edje_cc = @edje_cc@
307efl_doxygen = @efl_doxygen@
308efl_have_doxygen = @efl_have_doxygen@
309evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
310evas_engine_buffer_libs = @evas_engine_buffer_libs@
311evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
312evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
313evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
314evas_engine_directfb_libs = @evas_engine_directfb_libs@
315evas_engine_fb_cflags = @evas_engine_fb_cflags@
316evas_engine_fb_libs = @evas_engine_fb_libs@
317evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
318evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
319evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
320evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
321evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
322evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
323evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
324evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
325evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
326evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
327evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
328evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
329evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
330evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
331evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
332evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
333evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
334evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
335evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
336evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
337evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
338evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
339evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
340evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
341evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines \
430-I$(top_srcdir)/src/modules/engines/software_8 \
431@FREETYPE_CFLAGS@ \
432@PIXMAN_CFLAGS@ \
433@EINA_CFLAGS@ \
434@evas_engine_software_8_x11_cflags@ \
435-I/usr/include/pixman-1
436
437@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@SOFTWARE_8_X11_SOURCES = \
438@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@evas_engine.c \
439@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@evas_x_buffer.c
440
441@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@SOFTWARE_8_X11_LIBADD = @evas_engine_software_8_x11_libs@
442@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@includes_HEADERS = Evas_Engine_Software_8_X11.h
443@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@includesdir = $(includedir)/evas-@VMAJ@
444@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_8_x11/$(MODULE_ARCH)
445@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@pkg_LTLIBRARIES = module.la
446@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
447@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_8_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
448#-lxcb-image -lxcb-shm -lxcb -lpixman-1
449@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
450@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
451@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@noinst_LTLIBRARIES = libevas_engine_software_8_x11.la
452@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@libevas_engine_software_8_x11_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
453@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@libevas_engine_software_8_x11_la_LIBADD = $(SOFTWARE_8_X11_LIBADD)
454EXTRA_DIST = evas_engine.h
455all: all-am
456
457.SUFFIXES:
458.SUFFIXES: .c .lo .o .obj
459$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
460 @for dep in $?; do \
461 case '$(am__configure_deps)' in \
462 *$$dep*) \
463 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
464 && { if test -f $@; then exit 0; else break; fi; }; \
465 exit 1;; \
466 esac; \
467 done; \
468 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_8_x11/Makefile'; \
469 $(am__cd) $(top_srcdir) && \
470 $(AUTOMAKE) --gnu src/modules/engines/software_8_x11/Makefile
471.PRECIOUS: Makefile
472Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
473 @case '$?' in \
474 *config.status*) \
475 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
476 *) \
477 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
478 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
479 esac;
480
481$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
482 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
483
484$(top_srcdir)/configure: $(am__configure_deps)
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
486$(ACLOCAL_M4): $(am__aclocal_m4_deps)
487 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
488$(am__aclocal_m4_deps):
489
490clean-noinstLTLIBRARIES:
491 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
492 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
493 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
494 test "$$dir" != "$$p" || dir=.; \
495 echo "rm -f \"$${dir}/so_locations\""; \
496 rm -f "$${dir}/so_locations"; \
497 done
498install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
499 @$(NORMAL_INSTALL)
500 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
501 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
502 list2=; for p in $$list; do \
503 if test -f $$p; then \
504 list2="$$list2 $$p"; \
505 else :; fi; \
506 done; \
507 test -z "$$list2" || { \
508 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
509 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
510 }
511
512uninstall-pkgLTLIBRARIES:
513 @$(NORMAL_UNINSTALL)
514 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
515 for p in $$list; do \
516 $(am__strip_dir) \
517 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
518 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
519 done
520
521clean-pkgLTLIBRARIES:
522 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
523 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
524 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
525 test "$$dir" != "$$p" || dir=.; \
526 echo "rm -f \"$${dir}/so_locations\""; \
527 rm -f "$${dir}/so_locations"; \
528 done
529libevas_engine_software_8_x11.la: $(libevas_engine_software_8_x11_la_OBJECTS) $(libevas_engine_software_8_x11_la_DEPENDENCIES)
530 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_8_x11_la_rpath) $(libevas_engine_software_8_x11_la_OBJECTS) $(libevas_engine_software_8_x11_la_LIBADD) $(LIBS)
531module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
532 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
533
534mostlyclean-compile:
535 -rm -f *.$(OBJEXT)
536
537distclean-compile:
538 -rm -f *.tab.c
539
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_x_buffer.Plo@am__quote@
542@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
543@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_x_buffer.Plo@am__quote@
544
545.c.o:
546@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
547@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
548@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
549@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
550@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
551@am__fastdepCC_FALSE@ $(COMPILE) -c $<
552
553.c.obj:
554@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
555@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
556@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
557@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
558@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
559@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
560
561.c.lo:
562@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
563@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
564@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
565@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
566@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
567@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
568
569module_la-evas_engine.lo: evas_engine.c
570@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
571@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
572@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
573@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
574@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
575@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
576
577module_la-evas_x_buffer.lo: evas_x_buffer.c
578@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_x_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_x_buffer.Tpo -c -o module_la-evas_x_buffer.lo `test -f 'evas_x_buffer.c' || echo '$(srcdir)/'`evas_x_buffer.c
579@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_x_buffer.Tpo $(DEPDIR)/module_la-evas_x_buffer.Plo
580@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
581@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_x_buffer.c' object='module_la-evas_x_buffer.lo' libtool=yes @AMDEPBACKSLASH@
582@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
583@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_x_buffer.lo `test -f 'evas_x_buffer.c' || echo '$(srcdir)/'`evas_x_buffer.c
584
585mostlyclean-libtool:
586 -rm -f *.lo
587
588clean-libtool:
589 -rm -rf .libs _libs
590install-includesHEADERS: $(includes_HEADERS)
591 @$(NORMAL_INSTALL)
592 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
593 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
594 for p in $$list; do \
595 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
596 echo "$$d$$p"; \
597 done | $(am__base_list) | \
598 while read files; do \
599 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
600 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
601 done
602
603uninstall-includesHEADERS:
604 @$(NORMAL_UNINSTALL)
605 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
606 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
607 test -n "$$files" || exit 0; \
608 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
609 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
610
611ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
612 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
613 unique=`for i in $$list; do \
614 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
615 done | \
616 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
617 END { if (nonempty) { for (i in files) print i; }; }'`; \
618 mkid -fID $$unique
619tags: TAGS
620
621TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
622 $(TAGS_FILES) $(LISP)
623 set x; \
624 here=`pwd`; \
625 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
626 unique=`for i in $$list; do \
627 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
628 done | \
629 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
630 END { if (nonempty) { for (i in files) print i; }; }'`; \
631 shift; \
632 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
633 test -n "$$unique" || unique=$$empty_fix; \
634 if test $$# -gt 0; then \
635 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
636 "$$@" $$unique; \
637 else \
638 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
639 $$unique; \
640 fi; \
641 fi
642ctags: CTAGS
643CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
644 $(TAGS_FILES) $(LISP)
645 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
646 unique=`for i in $$list; do \
647 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
648 done | \
649 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
650 END { if (nonempty) { for (i in files) print i; }; }'`; \
651 test -z "$(CTAGS_ARGS)$$unique" \
652 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
653 $$unique
654
655GTAGS:
656 here=`$(am__cd) $(top_builddir) && pwd` \
657 && $(am__cd) $(top_srcdir) \
658 && gtags -i $(GTAGS_ARGS) "$$here"
659
660distclean-tags:
661 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
662
663distdir: $(DISTFILES)
664 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
665 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
666 list='$(DISTFILES)'; \
667 dist_files=`for file in $$list; do echo $$file; done | \
668 sed -e "s|^$$srcdirstrip/||;t" \
669 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
670 case $$dist_files in \
671 */*) $(MKDIR_P) `echo "$$dist_files" | \
672 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
673 sort -u` ;; \
674 esac; \
675 for file in $$dist_files; do \
676 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
677 if test -d $$d/$$file; then \
678 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
679 if test -d "$(distdir)/$$file"; then \
680 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
681 fi; \
682 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
683 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
684 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
685 fi; \
686 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
687 else \
688 test -f "$(distdir)/$$file" \
689 || cp -p $$d/$$file "$(distdir)/$$file" \
690 || exit 1; \
691 fi; \
692 done
693check-am: all-am
694check: check-am
695all-am: Makefile $(LTLIBRARIES) $(HEADERS)
696installdirs:
697 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
698 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
699 done
700install: install-am
701install-exec: install-exec-am
702install-data: install-data-am
703uninstall: uninstall-am
704
705install-am: all-am
706 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
707
708installcheck: installcheck-am
709install-strip:
710 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
711 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
712 `test -z '$(STRIP)' || \
713 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
714mostlyclean-generic:
715
716clean-generic:
717
718distclean-generic:
719 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
720 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
721
722maintainer-clean-generic:
723 @echo "This command is intended for maintainers to use"
724 @echo "it deletes files that may require special tools to rebuild."
725 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
726clean: clean-am
727
728clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
729 clean-pkgLTLIBRARIES mostlyclean-am
730
731distclean: distclean-am
732 -rm -rf ./$(DEPDIR)
733 -rm -f Makefile
734distclean-am: clean-am distclean-compile distclean-generic \
735 distclean-tags
736
737dvi: dvi-am
738
739dvi-am:
740
741html: html-am
742
743html-am:
744
745info: info-am
746
747info-am:
748
749install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
750
751install-dvi: install-dvi-am
752
753install-dvi-am:
754
755install-exec-am:
756
757install-html: install-html-am
758
759install-html-am:
760
761install-info: install-info-am
762
763install-info-am:
764
765install-man:
766
767install-pdf: install-pdf-am
768
769install-pdf-am:
770
771install-ps: install-ps-am
772
773install-ps-am:
774
775installcheck-am:
776
777maintainer-clean: maintainer-clean-am
778 -rm -rf ./$(DEPDIR)
779 -rm -f Makefile
780maintainer-clean-am: distclean-am maintainer-clean-generic
781
782mostlyclean: mostlyclean-am
783
784mostlyclean-am: mostlyclean-compile mostlyclean-generic \
785 mostlyclean-libtool
786
787pdf: pdf-am
788
789pdf-am:
790
791ps: ps-am
792
793ps-am:
794
795uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
796
797.MAKE: install-am install-strip
798
799.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
800 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
801 ctags distclean distclean-compile distclean-generic \
802 distclean-libtool distclean-tags distdir dvi dvi-am html \
803 html-am info info-am install install-am install-data \
804 install-data-am install-dvi install-dvi-am install-exec \
805 install-exec-am install-html install-html-am \
806 install-includesHEADERS install-info install-info-am \
807 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
808 install-ps install-ps-am install-strip installcheck \
809 installcheck-am installdirs maintainer-clean \
810 maintainer-clean-generic mostlyclean mostlyclean-compile \
811 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
812 tags uninstall uninstall-am uninstall-includesHEADERS \
813 uninstall-pkgLTLIBRARIES
814
815
816# Tell versions [3.59,3.63) of GNU make to not export all variables.
817# Otherwise a system limit (for SysV at least) may be exceeded.
818.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_8_x11/evas_engine.c b/libraries/evas/src/modules/engines/software_8_x11/evas_engine.c
deleted file mode 100644
index c8efb24..0000000
--- a/libraries/evas/src/modules/engines/software_8_x11/evas_engine.c
+++ /dev/null
@@ -1,699 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_8_X11.h"
5#include "evas_common_soft8.h"
6#include <pixman.h>
7
8int _evas_engine_soft8_x11_log_dom = -1;
9/* function tables - filled in later (func and parent func) */
10static Evas_Func func, pfunc;
11
12/* engine struct data */
13typedef struct _Render_Engine Render_Engine;
14
15struct _Render_Engine {
16 xcb_connection_t *connection;
17 xcb_drawable_t drawable;
18 xcb_screen_t *screen;
19 unsigned char pal[256];
20 int depth;
21
22 int w, h, rot;
23 Tilebuf *tb;
24 Tilebuf_Rect *rects;
25 Tilebuf_Rect *cur_rect;
26
27 X_Output_Buffer *shbuf;
28 Soft8_Image *tmp_out; /* used by indirect render, like rotation */
29
30 pixman_region16_t *clip_rects;
31 unsigned char end:1;
32 unsigned char shm:1;
33};
34
35/* prototypes we will use here */
36
37static void *eng_info(Evas * e);
38static void eng_info_free(Evas * e, void *info);
39static int eng_setup(Evas * e, void *info);
40static void eng_output_free(void *data);
41static void eng_output_resize(void *data, int w, int h);
42static void eng_output_tile_size_set(void *data, int w, int h);
43static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
44static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
45static void eng_output_redraws_clear(void *data);
46static void *eng_output_redraws_next_update_get(void *data, int *x, int *y,
47 int *w, int *h, int *cx,
48 int *cy, int *cw, int *ch);
49static void eng_output_redraws_next_update_push(void *data, void *surface,
50 int x, int y, int w, int h);
51static void eng_output_flush(void *data);
52static void eng_output_idle_flush(void *data);
53
54/* engine api this module provides */
55static void *
56eng_info(Evas * e)
57{
58 Evas_Engine_Info_Software_8_X11 *info;
59
60 info = calloc(1, sizeof(Evas_Engine_Info_Software_8_X11));
61 if (!info)
62 return NULL;
63 info->magic.magic = rand();
64 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
65 return info;
66 e = NULL;
67}
68
69static void
70eng_info_free(Evas * e __UNUSED__, void *info)
71{
72 Evas_Engine_Info_Software_8_X11 *in;
73 in = (Evas_Engine_Info_Software_8_X11 *) info;
74 free(in);
75}
76
77static void
78_tmp_out_alloc(Render_Engine * re)
79{
80 Tilebuf_Rect *r;
81 unsigned int w = 0, h = 0;
82
83 EINA_INLIST_FOREACH(re->rects, r)
84 {
85 if (r->w > (int)w)
86 w = r->w;
87 if (r->h > (int)h)
88 h = r->h;
89 }
90
91 if (re->tmp_out)
92 {
93 if ((re->tmp_out->cache_entry.w < w)
94 || (re->tmp_out->cache_entry.h < h))
95 {
96 evas_cache_image_drop(&re->tmp_out->cache_entry);
97 re->tmp_out = NULL;
98 }
99 }
100
101 if (!re->tmp_out)
102 {
103 Soft8_Image *im;
104
105 im = (Soft8_Image *)
106 evas_cache_image_empty(evas_common_soft8_image_cache_get());
107 im->cache_entry.flags.alpha = 0;
108 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
109
110 re->tmp_out = im;
111 }
112}
113
114static void
115alloc_colors(Render_Engine * re)
116{
117 xcb_alloc_color_cookie_t color_rq[256];
118 xcb_alloc_color_reply_t *rep;
119 xcb_colormap_t colormap = re->screen->default_colormap;
120
121 int i;
122 for (i = 0; i < 256; i++)
123 color_rq[i] =
124 xcb_alloc_color(re->connection, colormap, i << 8, i << 8, i << 8);
125
126 for (i = 0; i < 256; i++)
127 {
128 rep = xcb_alloc_color_reply(re->connection, color_rq[i], NULL);
129 re->pal[i] = rep->pixel;
130 free(rep);
131 }
132}
133
134static int
135eng_setup(Evas * e, void *in)
136{
137 Render_Engine *re;
138 Evas_Engine_Info_Software_8_X11 *info;
139/* X_Output_Buffer *xob; */
140
141 info = (Evas_Engine_Info_Software_8_X11 *) in;
142 if (!e->engine.data.output)
143 {
144 /* the only check - simplistic, i know, but enough for this
145 * "special purpose" engine. Remember it is meant to be used
146 * for limited power devices that have a 8bit display mode
147 * and no real other acceleration, and high resolution so we
148 * can pre-dither into 8bpp. */
149// if (DefaultDepth(info->info.display,
150// DefaultScreen(info->info.display)) != 8)
151// return;
152 /* do common routine init - we wil at least use it for core
153 * image loading and font loading/glyph rendering & placement */
154 evas_common_cpu_init();
155
156 evas_common_blend_init();
157 evas_common_image_init();
158 evas_common_convert_init();
159 evas_common_scale_init();
160 evas_common_rectangle_init();
161 evas_common_polygon_init();
162 evas_common_line_init();
163 evas_common_font_init();
164 evas_common_draw_init();
165 evas_common_tilebuf_init();
166 evas_common_soft8_image_init();
167
168 /* render engine specific data */
169 re = calloc(1, sizeof(Render_Engine));
170 if (!re)
171 return 0;
172 e->engine.data.output = re;
173 re->connection = info->info.connection;
174 re->screen = info->info.screen;
175 re->drawable = info->info.drawable;
176 re->depth = info->info.depth;
177 re->w = e->output.w;
178 re->h = e->output.h;
179 re->rot = info->info.rotation;
180 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
181 if (re->tb)
182 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
183 alloc_colors(re);
184 }
185 else
186 {
187 /* we changed the info after first init - do a re-eval where
188 * appropriate */
189 re = e->engine.data.output;
190 if (re->tb)
191 evas_common_tilebuf_free(re->tb);
192 re->connection = info->info.connection;
193 re->screen = info->info.screen;
194 re->drawable = info->info.drawable;
195 re->w = e->output.w;
196 re->h = e->output.h;
197 re->rot = info->info.rotation;
198 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
199 if (re->tb)
200 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
201 if (re->tmp_out)
202 {
203 evas_cache_image_drop(&re->tmp_out->cache_entry);
204 re->tmp_out = NULL;
205 }
206 alloc_colors(re);
207 }
208 if (!e->engine.data.output)
209 return 0;
210
211 /* add a draw context if we dont have one */
212 if (!e->engine.data.context)
213 e->engine.data.context =
214 e->engine.func->context_new(e->engine.data.output);
215 /* check if the display can do shm */
216 re->shm = evas_software_8_x11_x_can_do_shm(re->connection, re->screen);
217
218 return 1;
219}
220
221static void
222eng_output_free(void *data)
223{
224 Render_Engine *re;
225
226 re = (Render_Engine *) data;
227 if (re->shbuf)
228 evas_software_8_x11_x_output_buffer_free(re->shbuf, 0);
229 if (re->clip_rects)
230 {
231 pixman_region_fini(re->clip_rects);
232 free(re->clip_rects);
233 re->clip_rects = NULL;
234 }
235 if (re->tb)
236 evas_common_tilebuf_free(re->tb);
237 if (re->rects)
238 evas_common_tilebuf_free_render_rects(re->rects);
239 if (re->tmp_out)
240 evas_cache_image_drop(&re->tmp_out->cache_entry);
241 free(re);
242
243 evas_common_font_shutdown();
244 evas_common_image_shutdown();
245 evas_common_soft8_image_shutdown();
246}
247
248static void
249eng_output_resize(void *data, int w, int h)
250{
251 Render_Engine *re;
252
253 re = (Render_Engine *) data;
254
255 if ((re->w == w) && (re->h == h))
256 return;
257
258 evas_common_tilebuf_free(re->tb);
259 re->w = w;
260 re->h = h;
261 re->tb = evas_common_tilebuf_new(w, h);
262 if (re->tb)
263 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
264 if (re->shbuf)
265 {
266 evas_software_8_x11_x_output_buffer_free(re->shbuf, 0);
267 re->shbuf = NULL;
268 }
269 if (re->clip_rects)
270 {
271 pixman_region_fini(re->clip_rects);
272 free(re->clip_rects);
273 re->clip_rects = NULL;
274 }
275
276 if (re->tmp_out)
277 {
278 evas_cache_image_drop(&re->tmp_out->cache_entry);
279 re->tmp_out = NULL;
280 }
281}
282
283static void
284eng_output_tile_size_set(void *data, int w, int h)
285{
286 Render_Engine *re;
287
288 re = (Render_Engine *) data;
289 evas_common_tilebuf_set_tile_size(re->tb, w, h);
290}
291
292static void
293eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
294{
295 Render_Engine *re;
296
297 re = (Render_Engine *) data;
298 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
299}
300
301static void
302eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
303{
304 Render_Engine *re;
305
306 re = (Render_Engine *) data;
307 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
308}
309
310static void
311eng_output_redraws_clear(void *data)
312{
313 Render_Engine *re;
314
315 re = (Render_Engine *) data;
316 evas_common_tilebuf_clear(re->tb);
317}
318
319static inline void
320_output_buffer_alloc(Render_Engine * re)
321{
322 int w, h;
323 if (re->shbuf)
324 return;
325
326 if ((re->rot == 0) || (re->rot == 180))
327 {
328 w = re->w;
329 h = re->h;
330 }
331 else
332 {
333 w = re->h;
334 h = re->w;
335 }
336
337 re->shbuf = evas_software_8_x11_x_output_buffer_new
338 (re->connection, re->screen, re->depth, re->pal, w, h, 1, NULL);
339
340 re->shbuf->drawable = re->drawable;
341 re->shbuf->screen = re->screen;
342 if (re->shbuf->gc)
343 {
344 xcb_free_gc(re->shbuf->connection, re->shbuf->gc);
345 re->shbuf->gc = 0;
346 }
347
348 re->shbuf->gc = xcb_generate_id(re->shbuf->connection);
349 xcb_create_gc(re->shbuf->connection, re->shbuf->gc, re->shbuf->drawable, 0,
350 NULL);
351}
352
353static void *
354eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h,
355 int *cx, int *cy, int *cw, int *ch)
356{
357 Render_Engine *re;
358 Tilebuf_Rect *rect;
359 int ux, uy, uw, uh;
360
361 re = (Render_Engine *) data;
362 if (re->end)
363 {
364 re->end = 0;
365 return NULL;
366 }
367 if (!re->rects)
368 {
369 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
370 if (!re->rects)
371 return NULL;
372
373 re->cur_rect = re->rects;
374 _output_buffer_alloc(re);
375 if (re->rot != 0)
376 _tmp_out_alloc(re); /* grows if required */
377 }
378 if (!re->cur_rect)
379 {
380 if (re->rects)
381 evas_common_tilebuf_free_render_rects(re->rects);
382 re->rects = NULL;
383 return NULL;
384 }
385 rect = re->cur_rect;
386 ux = rect->x;
387 uy = rect->y;
388 uw = rect->w;
389 uh = rect->h;
390 re->cur_rect = (Tilebuf_Rect *) ((EINA_INLIST_GET(re->cur_rect))->next);
391 if (!re->cur_rect)
392 {
393 evas_common_tilebuf_free_render_rects(re->rects);
394 re->rects = NULL;
395 re->end = 1;
396 }
397
398 *x = ux;
399 *y = uy;
400 *w = uw;
401 *h = uh;
402 if (re->rot == 0)
403 {
404 *cx = ux;
405 *cy = uy;
406 *cw = uw;
407 *ch = uh;
408 return re->shbuf->im;
409 }
410 else
411 {
412 *cx = 0;
413 *cy = 0;
414 *cw = uw;
415 *ch = uh;
416 return re->tmp_out;
417 }
418}
419
420static void
421_blit_rot_90(Soft8_Image * dst, const Soft8_Image * src,
422 int out_x, int out_y, int w, int h)
423{
424 DATA8 *dp, *sp;
425 int x, y;
426
427 sp = src->pixels;
428 dp = dst->pixels + (out_x + (w + out_y - 1) * dst->stride);
429
430 for (y = 0; y < h; y++)
431 {
432 DATA8 *dp_itr, *sp_itr;
433
434 sp_itr = sp;
435 dp_itr = dp;
436
437 for (x = 0; x < w; x++)
438 {
439 *dp_itr = *sp_itr;
440
441 sp_itr++;
442 dp_itr -= dst->stride;
443 }
444 sp += src->stride;
445 dp++;
446 }
447}
448
449static void
450_blit_rot_180(Soft8_Image * dst, const Soft8_Image * src,
451 int out_x, int out_y, int w, int h)
452{
453 DATA8 *dp, *sp;
454 int x, y;
455
456 sp = src->pixels;
457 dp = dst->pixels + ((w + out_x - 1) + (h + out_y - 1) * dst->stride);
458
459 for (y = 0; y < h; y++)
460 {
461 DATA8 *dp_itr, *sp_itr;
462
463 sp_itr = sp;
464 dp_itr = dp;
465
466 for (x = 0; x < w; x++)
467 {
468 *dp_itr = *sp_itr;
469
470 sp_itr++;
471 dp_itr--;
472 }
473 sp += src->stride;
474 dp -= dst->stride;
475 }
476}
477
478static void
479_blit_rot_270(Soft8_Image * dst, const Soft8_Image * src,
480 int out_x, int out_y, int w, int h)
481{
482 DATA8 *dp, *sp;
483 int x, y;
484
485 sp = src->pixels;
486 dp = dst->pixels + ((h + out_x - 1) + out_y * dst->stride);
487
488 for (y = 0; y < h; y++)
489 {
490 DATA8 *dp_itr, *sp_itr;
491
492 sp_itr = sp;
493 dp_itr = dp;
494
495 for (x = 0; x < w; x++)
496 {
497 *dp_itr = *sp_itr;
498
499 sp_itr++;
500 dp_itr += dst->stride;
501 }
502 sp += src->stride;
503 dp--;
504 }
505}
506
507static void
508_tmp_out_process(Render_Engine * re, int out_x, int out_y, int w, int h)
509{
510 Soft8_Image *d, *s;
511
512 d = re->shbuf->im;
513 s = re->tmp_out;
514
515 if ((w < 1) || (h < 1) ||
516 (out_x >= (int)d->cache_entry.w) ||
517 (out_y >= (int)d->cache_entry.h))
518 return;
519
520 if (re->rot == 90)
521 _blit_rot_90(d, s, out_x, out_y, w, h);
522 else if (re->rot == 180)
523 _blit_rot_180(d, s, out_x, out_y, w, h);
524 else if (re->rot == 270)
525 _blit_rot_270(d, s, out_x, out_y, w, h);
526}
527
528static void
529eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x,
530 int y, int w, int h)
531{
532 Render_Engine *re;
533 struct {
534 int x, y, width, height;
535 } r =
536 {
537 0, 0, 0, 0};
538
539 re = (Render_Engine *) data;
540
541 if (!re->clip_rects)
542 {
543 re->clip_rects =
544 (pixman_region16_t *) malloc(sizeof(pixman_region16_t));
545 pixman_region_init(re->clip_rects);
546 }
547
548 if (re->rot == 0)
549 {
550 r.x = x;
551 r.y = y;
552 r.width = w;
553 r.height = h;
554 }
555 else if (re->rot == 90)
556 {
557 r.x = y;
558 r.y = re->w - w - x;
559 r.width = h;
560 r.height = w;
561 }
562 else if (re->rot == 180)
563 {
564 r.x = re->w - w - x;
565 r.y = re->h - h - y;
566 r.width = w;
567 r.height = h;
568 }
569 else if (re->rot == 270)
570 {
571 r.x = re->h - h - y;
572 r.y = x;
573 r.width = h;
574 r.height = w;
575 }
576
577 if (re->rot != 0)
578 _tmp_out_process(re, r.x, r.y, w, h);
579
580 pixman_region_union_rect(re->clip_rects, re->clip_rects,
581 r.x, r.y, r.width, r.height);
582}
583
584static void
585eng_output_flush(void *data)
586{
587 Render_Engine *re;
588
589 re = (Render_Engine *) data;
590
591 if (re->clip_rects)
592 {
593 re->shbuf->drawable = re->drawable;
594 {
595 int i;
596 pixman_box16_t *rects =
597 pixman_region_rectangles(re->clip_rects, NULL);
598 for (i = 0; i < pixman_region_n_rects(re->clip_rects); i++, rects++)
599 evas_software_8_x11_x_output_buffer_paste
600 (re->shbuf, re->drawable, re->shbuf->gc, rects->x1, rects->y1,
601 rects->x2 - rects->x1, rects->y2 - rects->y1, 1);
602 }
603
604 pixman_region_fini(re->clip_rects);
605 free(re->clip_rects);
606 re->clip_rects = NULL;
607 }
608}
609
610static void
611eng_output_idle_flush(void *data)
612{
613 Render_Engine *re;
614
615 re = (Render_Engine *) data;
616 if (re->shbuf)
617 {
618 evas_software_8_x11_x_output_buffer_free(re->shbuf, 0);
619 re->shbuf = NULL;
620 }
621 if (re->clip_rects)
622 {
623 pixman_region_fini(re->clip_rects);
624 free(re->clip_rects);
625 re->clip_rects = NULL;
626 }
627 if (re->tmp_out)
628 {
629 evas_cache_image_drop(&re->tmp_out->cache_entry);
630 re->tmp_out = NULL;
631 }
632}
633
634static Eina_Bool
635eng_canvas_alpha_get(void *data __UNUSED__, void *context __UNUSED__)
636{
637 return EINA_FALSE;
638}
639
640/* module advertising code */
641static int
642module_open(Evas_Module * em)
643{
644 if (!em)
645 return 0;
646 /* get whatever engine module we inherit from */
647 if (!_evas_module_engine_inherit(&pfunc, "software_8"))
648 return 0;
649 _evas_engine_soft8_x11_log_dom = eina_log_domain_register
650 ("evas-software_8_x11", EVAS_DEFAULT_LOG_COLOR);
651 if (_evas_engine_soft8_x11_log_dom < 0)
652 {
653 EINA_LOG_ERR("Can not create a module log domain.");
654 return 0;
655 }
656
657 /* store it for later use */
658 func = pfunc;
659 /* now to override methods */
660#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
661 ORD(info);
662 ORD(info_free);
663 ORD(setup);
664 ORD(canvas_alpha_get);
665 ORD(output_free);
666 ORD(output_resize);
667 ORD(output_tile_size_set);
668 ORD(output_redraws_rect_add);
669 ORD(output_redraws_rect_del);
670 ORD(output_redraws_clear);
671 ORD(output_redraws_next_update_get);
672 ORD(output_redraws_next_update_push);
673 ORD(output_flush);
674 ORD(output_idle_flush);
675 /* now advertise out own api */
676 em->functions = (void *)(&func);
677 return 1;
678}
679
680static void
681module_close(Evas_Module * em __UNUSED__)
682{
683 eina_log_domain_unregister(_evas_engine_soft8_x11_log_dom);
684}
685
686static Evas_Module_Api evas_modapi = {
687 EVAS_MODULE_API_VERSION,
688 "software_8_x11",
689 "none",
690 {
691 module_open,
692 module_close}
693};
694
695EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_8_x11);
696
697#ifndef EVAS_STATIC_BUILD_SOFTWARE_8_X11
698EVAS_EINA_MODULE_DEFINE(engine, software_8_x11);
699#endif
diff --git a/libraries/evas/src/modules/engines/software_8_x11/evas_engine.h b/libraries/evas/src/modules/engines/software_8_x11/evas_engine.h
deleted file mode 100644
index 1fa12df..0000000
--- a/libraries/evas/src/modules/engines/software_8_x11/evas_engine.h
+++ /dev/null
@@ -1,65 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include <sys/ipc.h>
5#include <sys/shm.h>
6
7#include <xcb/xcb.h>
8#include <xcb/shm.h>
9#include <xcb/xcb_image.h>
10
11#include "evas_common.h"
12#include "evas_common_soft8.h"
13
14extern int _evas_engine_soft8_x11_log_dom;
15#ifdef ERR
16# undef ERR
17#endif
18#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
19
20#ifdef DBG
21# undef DBG
22#endif
23#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
24
25#ifdef INF
26# undef INF
27#endif
28#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
29
30#ifdef WRN
31# undef WRN
32#endif
33#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
34
35#ifdef CRIT
36# undef CRIT
37#endif
38#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
39
40typedef struct _X_Output_Buffer X_Output_Buffer;
41
42struct _X_Output_Buffer
43{
44 Soft8_Image *im;
45 xcb_connection_t *connection;
46 xcb_screen_t *screen;
47 xcb_image_t *xim;
48 xcb_drawable_t drawable;
49 xcb_gcontext_t gc;
50 xcb_shm_segment_info_t *shm_info;
51 unsigned char *pal;
52 void *data;
53};
54
55/****/
56int evas_software_8_x11_x_can_do_shm (xcb_connection_t *c, xcb_screen_t *screen);
57X_Output_Buffer *evas_software_8_x11_x_output_buffer_new (xcb_connection_t *, xcb_screen_t *screen, int depth, unsigned char *pal, int w, int h, int try_shm, void *data);
58void evas_software_8_x11_x_output_buffer_free (X_Output_Buffer *xob, int sync);
59void evas_software_8_x11_x_output_buffer_paste (X_Output_Buffer *xob, xcb_drawable_t d, xcb_gcontext_t gc, int x, int y, int w, int h, int sync);
60DATA8 *evas_software_8_x11_x_output_buffer_data (X_Output_Buffer *xob, int *bytes_per_line_ret);
61int evas_software_8_x11_x_output_buffer_depth (X_Output_Buffer *xob);
62int evas_software_8_x11_x_output_buffer_byte_order (X_Output_Buffer *xob);
63int evas_software_8_x11_x_output_buffer_bit_order (X_Output_Buffer *xob);
64
65#endif
diff --git a/libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c b/libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c
deleted file mode 100644
index a2c40b1..0000000
--- a/libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c
+++ /dev/null
@@ -1,243 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4static int _xcb_err = 0;
5
6int
7evas_software_8_x11_x_can_do_shm(xcb_connection_t * c, xcb_screen_t * screen)
8{
9 static xcb_connection_t *cached_c = NULL;
10 static int cached_result = 0;
11
12 if (c == cached_c)
13 return cached_result;
14 cached_c = c;
15
16 if (xcb_get_extension_data(c, &xcb_shm_id))
17 {
18 X_Output_Buffer *xob;
19
20 xob = evas_software_8_x11_x_output_buffer_new
21 (c, screen, screen->root_depth, (unsigned char *)NULL,
22 16, 16, 2, NULL);
23 if (!xob)
24 {
25 cached_result = 0;
26 return 0;
27 }
28 evas_software_8_x11_x_output_buffer_free(xob, 1);
29 cached_result = 1;
30 return 1;
31 }
32 cached_result = 0;
33 return 0;
34}
35
36X_Output_Buffer *
37evas_software_8_x11_x_output_buffer_new(xcb_connection_t * c,
38 xcb_screen_t * s,
39 int depth,
40 unsigned char *pal,
41 int w, int h, int try_shm, void *data)
42{
43 X_Output_Buffer *xob;
44
45 xob = calloc(1, sizeof(X_Output_Buffer));
46 if (!xob)
47 return NULL;
48
49 xob->connection = c;
50 xob->screen = s;
51 xob->xim = NULL;
52 xob->shm_info = NULL;
53 xob->pal = pal;
54
55 if (try_shm > 0)
56 {
57 xob->shm_info = malloc(sizeof(xcb_shm_segment_info_t));
58 if (xob->shm_info)
59 {
60 xob->shm_info->shmseg = xcb_generate_id(c);
61 xob->xim = xcb_image_create_native(c, w, h,
62 XCB_IMAGE_FORMAT_Z_PIXMAP,
63 depth, NULL, ~0, NULL);
64 if (xob->xim)
65 {
66 int shmid = shmget
67 (IPC_PRIVATE, xob->xim->size, IPC_CREAT | 0777);
68
69 if (shmid >= 0)
70 {
71 xob->shm_info->shmid = shmid;
72 xob->shm_info->shmaddr = xob->xim->data =
73 shmat(xob->shm_info->shmid, 0, 0);
74
75 if (xob->shm_info->shmaddr)
76 {
77 /*
78 * FIXME: no error mechanism
79 */
80
81 /* XErrorHandler ph; */
82 /* EventHandlers eh; */
83
84 free(xcb_get_input_focus_reply
85 (c, xcb_get_input_focus_unchecked(c), NULL));
86 _xcb_err = 0;
87 /* ph = XSetErrorHandler((XErrorHandler) */
88 /* x_output_tmp_x_err); */
89 xcb_shm_attach(c,
90 xob->shm_info->shmseg,
91 xob->shm_info->shmid, 0);
92 free(xcb_get_input_focus_reply
93 (c, xcb_get_input_focus_unchecked(c), NULL));
94 /* XSetErrorHandler((XErrorHandler)ph); */
95 if (!_xcb_err)
96 {
97 xob->im =
98 (Soft8_Image *)
99 evas_cache_image_data
100 (evas_common_soft8_image_cache_get(), w, h,
101 (DATA32 *) xob->xim->data, 0,
102 EVAS_COLORSPACE_GRY8);
103
104 if (xob->im)
105 xob->im->stride =
106 xob->xim->stride / sizeof(DATA8);
107 return xob;
108 }
109 }
110 shmdt(xob->shm_info->shmaddr);
111 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
112 }
113 if (xob->xim)
114 xcb_image_destroy(xob->xim);
115 xob->xim = NULL;
116 }
117 if (xob->shm_info)
118 free(xob->shm_info);
119 xob->shm_info = NULL;
120 }
121 }
122
123 if (try_shm > 1)
124 return NULL;
125
126 xob->xim = xcb_image_create_native(c, w, h, XCB_IMAGE_FORMAT_Z_PIXMAP,
127 depth, NULL, ~0, NULL);
128 if (!xob->xim)
129 {
130 free(xob);
131 return NULL;
132 }
133
134 xob->data = data;
135
136 if (!xob->xim->data)
137 {
138 xob->xim->data = malloc(xob->xim->stride * xob->xim->height);
139 if (!xob->xim->data)
140 {
141 xcb_image_destroy(xob->xim);
142 free(xob);
143 return NULL;
144 }
145 }
146 if (xob->im)
147 evas_cache_image_drop(&xob->im->cache_entry);
148
149 xob->im =
150 (Soft8_Image *)
151 evas_cache_image_data(evas_common_soft8_image_cache_get(), w, h,
152 (DATA32 *) xob->xim->data, 0,
153 EVAS_COLORSPACE_GRY8);
154 if (xob->im)
155 xob->im->stride = xob->xim->stride / sizeof(DATA8);
156 return xob;
157}
158
159void
160evas_software_8_x11_x_output_buffer_free(X_Output_Buffer * xob, int sync)
161{
162 if (xob->shm_info)
163 {
164 if (sync)
165 free(xcb_get_input_focus_reply(xob->connection,
166 xcb_get_input_focus_unchecked(xob->
167 connection),
168 NULL));
169 xcb_shm_detach(xob->connection, xob->shm_info->shmseg);
170 xcb_image_destroy(xob->xim);
171 shmdt(xob->shm_info->shmaddr);
172 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
173 free(xob->shm_info);
174 }
175 else
176 {
177 if (xob->data)
178 xob->xim->data = NULL;
179 free(xob->xim->data);
180 xcb_image_destroy(xob->xim);
181 }
182 free(xob);
183}
184
185void
186evas_software_8_x11_x_output_buffer_paste(X_Output_Buffer * xob,
187 xcb_drawable_t d,
188 xcb_gcontext_t gc,
189 int x, int y, int w, int h, int sync)
190{
191 unsigned char *data;
192 int i, j;
193
194 if (xob->shm_info)
195 {
196 for (i = y; i < y + h; i++)
197 {
198 data = xob->xim->data + i * xob->xim->width + x;
199 for (j = x; j < x + w; j++, data++)
200 *data = xob->pal[*data];
201 }
202
203 xcb_image_shm_put(xob->connection, d, gc,
204 xob->xim, *xob->shm_info, x, y, x, y, w, h, 0);
205
206 if (sync)
207 free(xcb_get_input_focus_reply(xob->connection,
208 xcb_get_input_focus_unchecked(xob->
209 connection),
210 NULL));
211 }
212 else
213 {
214 xcb_image_put(xob->connection, d, gc, xob->xim, x, y, 0);
215 }
216}
217
218DATA8 *
219evas_software_8_x11_x_output_buffer_data(X_Output_Buffer * xob,
220 int *bytes_per_line_ret)
221{
222 if (bytes_per_line_ret)
223 *bytes_per_line_ret = xob->xim->stride;
224 return (DATA8 *) xob->xim->data;
225}
226
227int
228evas_software_8_x11_x_output_buffer_depth(X_Output_Buffer * xob)
229{
230 return xob->xim->bpp;
231}
232
233int
234evas_software_8_x11_x_output_buffer_byte_order(X_Output_Buffer * xob)
235{
236 return xob->xim->byte_order;
237}
238
239int
240evas_software_8_x11_x_output_buffer_bit_order(X_Output_Buffer * xob)
241{
242 return xob->xim->bit_order;
243}
diff --git a/libraries/evas/src/modules/engines/software_ddraw/Evas_Engine_Software_DDraw.h b/libraries/evas/src/modules/engines/software_ddraw/Evas_Engine_Software_DDraw.h
deleted file mode 100644
index 9735bb7..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/Evas_Engine_Software_DDraw.h
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifndef __EVAS_ENGINE_SOFTWARE_DDRAW_H__
2#define __EVAS_ENGINE_SOFTWARE_DDRAW_H__
3
4
5#define WIN32_LEAN_AND_MEAN
6#include <windows.h>
7#undef WIN32_LEAN_AND_MEAN
8
9
10typedef struct _Evas_Engine_Info_Software_DDraw Evas_Engine_Info_Software_DDraw;
11
12struct _Evas_Engine_Info_Software_DDraw
13{
14 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
15 /* at you and make nasty noises */
16 Evas_Engine_Info magic;
17
18 struct {
19 HWND window;
20 int depth;
21 int rotation;
22 unsigned int fullscreen : 1;
23 } info;
24
25 /* non-blocking or blocking mode */
26 Evas_Engine_Render_Mode render_mode;
27};
28
29
30#endif /* __EVAS_ENGINE_SOFTWARE_DDRAW_H__ */
diff --git a/libraries/evas/src/modules/engines/software_ddraw/Makefile.am b/libraries/evas/src/modules/engines/software_ddraw/Makefile.am
deleted file mode 100644
index 594c7ab..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/Makefile.am
+++ /dev/null
@@ -1,48 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@EINA_CFLAGS@ \
10@FREETYPE_CFLAGS@ \
11@PIXMAN_CFLAGS@ \
12@evas_engine_software_ddraw_cflags@
13
14if BUILD_ENGINE_SOFTWARE_DDRAW
15
16SOFTWARE_DDRAW_SOURCES = \
17evas_engine.c \
18evas_outbuf.c \
19evas_ddraw_buffer.c \
20evas_ddraw_main.cpp
21
22SOFTWARE_DDRAW_LIBADD = @evas_engine_software_ddraw_libs@
23
24
25includes_HEADERS = Evas_Engine_Software_DDraw.h
26includesdir = $(includedir)/evas-@VMAJ@
27
28if !EVAS_STATIC_BUILD_SOFTWARE_DDRAW
29
30pkgdir = $(libdir)/evas/modules/engines/software_ddraw/$(MODULE_ARCH)
31pkg_LTLIBRARIES = module.la
32module_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES)
33module_la_CXXFLAGS = -fno-rtti -fno-exceptions
34module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_DDRAW_LIBADD) $(top_builddir)/src/lib/libevas.la
35module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
36module_la_LIBTOOLFLAGS = --tag=disable-static
37
38else
39
40noinst_LTLIBRARIES = libevas_engine_software_ddraw.la
41
42libevas_engine_software_ddraw_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES)
43libevas_engine_software_ddraw_la_LIBADD = $(SOFTWARE_DDRAW_LIBADD)
44
45endif
46endif
47
48EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_ddraw/Makefile.in b/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
deleted file mode 100644
index 629b413..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/Makefile.in
+++ /dev/null
@@ -1,884 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_ddraw
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE@libevas_engine_software_ddraw_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_ddraw_la_SOURCES_DIST = evas_engine.c \
87 evas_outbuf.c evas_ddraw_buffer.c evas_ddraw_main.cpp
88@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@ evas_outbuf.lo \
90@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@ evas_ddraw_buffer.lo \
91@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@ evas_ddraw_main.lo
92@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE@am_libevas_engine_software_ddraw_la_OBJECTS = $(am__objects_1)
93libevas_engine_software_ddraw_la_OBJECTS = \
94 $(am_libevas_engine_software_ddraw_la_OBJECTS)
95AM_V_lt = $(am__v_lt_$(V))
96am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
97am__v_lt_0 = --silent
98@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE@am_libevas_engine_software_ddraw_la_rpath =
99@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
100@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@ $(top_builddir)/src/lib/libevas.la
101am__module_la_SOURCES_DIST = evas_engine.c evas_outbuf.c \
102 evas_ddraw_buffer.c evas_ddraw_main.cpp
103@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@am__objects_2 = \
104@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@ module_la-evas_engine.lo \
105@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@ module_la-evas_outbuf.lo \
106@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@ module_la-evas_ddraw_buffer.lo \
107@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@ module_la-evas_ddraw_main.lo
108@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@am_module_la_OBJECTS = $(am__objects_2)
109module_la_OBJECTS = $(am_module_la_OBJECTS)
110module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
111 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
112 $(module_la_CXXFLAGS) $(CXXFLAGS) $(module_la_LDFLAGS) \
113 $(LDFLAGS) -o $@
114@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@am_module_la_rpath = -rpath \
115@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@ $(pkgdir)
116DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
117depcomp = $(SHELL) $(top_srcdir)/depcomp
118am__depfiles_maybe = depfiles
119am__mv = mv -f
120COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
121 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
122LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
123 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
124 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
125 $(AM_CFLAGS) $(CFLAGS)
126AM_V_CC = $(am__v_CC_$(V))
127am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
128am__v_CC_0 = @echo " CC " $@;
129AM_V_at = $(am__v_at_$(V))
130am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
131am__v_at_0 = @
132CCLD = $(CC)
133LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
134 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
135 $(AM_LDFLAGS) $(LDFLAGS) -o $@
136AM_V_CCLD = $(am__v_CCLD_$(V))
137am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
138am__v_CCLD_0 = @echo " CCLD " $@;
139CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
140 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
141LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
142 $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
143 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
144 $(AM_CXXFLAGS) $(CXXFLAGS)
145AM_V_CXX = $(am__v_CXX_$(V))
146am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
147am__v_CXX_0 = @echo " CXX " $@;
148CXXLD = $(CXX)
149CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
150 $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
151 $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
152AM_V_CXXLD = $(am__v_CXXLD_$(V))
153am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
154am__v_CXXLD_0 = @echo " CXXLD " $@;
155AM_V_GEN = $(am__v_GEN_$(V))
156am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
157am__v_GEN_0 = @echo " GEN " $@;
158SOURCES = $(libevas_engine_software_ddraw_la_SOURCES) \
159 $(module_la_SOURCES)
160DIST_SOURCES = $(am__libevas_engine_software_ddraw_la_SOURCES_DIST) \
161 $(am__module_la_SOURCES_DIST)
162am__includes_HEADERS_DIST = Evas_Engine_Software_DDraw.h
163HEADERS = $(includes_HEADERS)
164ETAGS = etags
165CTAGS = ctags
166DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
167ACLOCAL = @ACLOCAL@
168ALLOCA = @ALLOCA@
169AMTAR = @AMTAR@
170AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
171AR = @AR@
172AS = @AS@
173AUTOCONF = @AUTOCONF@
174AUTOHEADER = @AUTOHEADER@
175AUTOMAKE = @AUTOMAKE@
176AWK = @AWK@
177CC = @CC@
178CCDEPMODE = @CCDEPMODE@
179CFLAGS = @CFLAGS@
180CHECK_CFLAGS = @CHECK_CFLAGS@
181CHECK_LIBS = @CHECK_LIBS@
182CPP = @CPP@
183CPPFLAGS = @CPPFLAGS@
184CXX = @CXX@
185CXXCPP = @CXXCPP@
186CXXDEPMODE = @CXXDEPMODE@
187CXXFLAGS = @CXXFLAGS@
188CYGPATH_W = @CYGPATH_W@
189DEFS = @DEFS@
190DEPDIR = @DEPDIR@
191DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
192DIRECTFB_LIBS = @DIRECTFB_LIBS@
193DLLTOOL = @DLLTOOL@
194DSYMUTIL = @DSYMUTIL@
195DUMPBIN = @DUMPBIN@
196ECHO_C = @ECHO_C@
197ECHO_N = @ECHO_N@
198ECHO_T = @ECHO_T@
199ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
200ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
201EDB_CFLAGS = @EDB_CFLAGS@
202EDB_LIBS = @EDB_LIBS@
203EDJE_CFLAGS = @EDJE_CFLAGS@
204EDJE_LIBS = @EDJE_LIBS@
205EET_CFLAGS = @EET_CFLAGS@
206EET_LIBS = @EET_LIBS@
207EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
208EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
209EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
210EGREP = @EGREP@
211EINA_CFLAGS = @EINA_CFLAGS@
212EINA_LIBS = @EINA_LIBS@
213EVAS_CFLAGS = @EVAS_CFLAGS@
214EVAS_LIBS = @EVAS_LIBS@
215EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
216EVIL_CFLAGS = @EVIL_CFLAGS@
217EVIL_LIBS = @EVIL_LIBS@
218EXEEXT = @EXEEXT@
219EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
220EXOTIC_LIBS = @EXOTIC_LIBS@
221FGREP = @FGREP@
222FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
223FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
224FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
225FREETYPE_LIBS = @FREETYPE_LIBS@
226FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
227FRIBIDI_LIBS = @FRIBIDI_LIBS@
228GL_EET_CFLAGS = @GL_EET_CFLAGS@
229GL_EET_LIBS = @GL_EET_LIBS@
230GREP = @GREP@
231HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
232HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
233INSTALL = @INSTALL@
234INSTALL_DATA = @INSTALL_DATA@
235INSTALL_PROGRAM = @INSTALL_PROGRAM@
236INSTALL_SCRIPT = @INSTALL_SCRIPT@
237INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
238LD = @LD@
239LDFLAGS = @LDFLAGS@
240LIBOBJS = @LIBOBJS@
241LIBS = @LIBS@
242LIBTOOL = @LIBTOOL@
243LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
244LINEBREAK_LIBS = @LINEBREAK_LIBS@
245LIPO = @LIPO@
246LN_S = @LN_S@
247LTLIBOBJS = @LTLIBOBJS@
248MAKEINFO = @MAKEINFO@
249MKDIR_P = @MKDIR_P@
250MODULE_ARCH = @MODULE_ARCH@
251NM = @NM@
252NMEDIT = @NMEDIT@
253OBJC = @OBJC@
254OBJCDEPMODE = @OBJCDEPMODE@
255OBJCFLAGS = @OBJCFLAGS@
256OBJDUMP = @OBJDUMP@
257OBJEXT = @OBJEXT@
258OTOOL = @OTOOL@
259OTOOL64 = @OTOOL64@
260PACKAGE = @PACKAGE@
261PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
262PACKAGE_NAME = @PACKAGE_NAME@
263PACKAGE_STRING = @PACKAGE_STRING@
264PACKAGE_TARNAME = @PACKAGE_TARNAME@
265PACKAGE_URL = @PACKAGE_URL@
266PACKAGE_VERSION = @PACKAGE_VERSION@
267PATH_SEPARATOR = @PATH_SEPARATOR@
268PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
269PIXMAN_LIBS = @PIXMAN_LIBS@
270PKG_CONFIG = @PKG_CONFIG@
271PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
272PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
273PNG_CFLAGS = @PNG_CFLAGS@
274PNG_LIBS = @PNG_LIBS@
275RANLIB = @RANLIB@
276SDL_CFLAGS = @SDL_CFLAGS@
277SDL_LIBS = @SDL_LIBS@
278SED = @SED@
279SET_MAKE = @SET_MAKE@
280SHELL = @SHELL@
281SHM_OPEN_LINK = @SHM_OPEN_LINK@
282STRIP = @STRIP@
283SVG_CFLAGS = @SVG_CFLAGS@
284SVG_LIBS = @SVG_LIBS@
285VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
286VALGRIND_LIBS = @VALGRIND_LIBS@
287VERSION = @VERSION@
288VMAJ = @VMAJ@
289WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
290WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
291XCB_CFLAGS = @XCB_CFLAGS@
292XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
293XCB_GL_LIBS = @XCB_GL_LIBS@
294XCB_LIBS = @XCB_LIBS@
295XEXT_CFLAGS = @XEXT_CFLAGS@
296XEXT_LIBS = @XEXT_LIBS@
297XMKMF = @XMKMF@
298X_CFLAGS = @X_CFLAGS@
299X_EXTRA_LIBS = @X_EXTRA_LIBS@
300X_LIBS = @X_LIBS@
301X_PRE_LIBS = @X_PRE_LIBS@
302abs_builddir = @abs_builddir@
303abs_srcdir = @abs_srcdir@
304abs_top_builddir = @abs_top_builddir@
305abs_top_srcdir = @abs_top_srcdir@
306ac_ct_CC = @ac_ct_CC@
307ac_ct_CXX = @ac_ct_CXX@
308ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
309ac_ct_OBJC = @ac_ct_OBJC@
310altivec_cflags = @altivec_cflags@
311am__include = @am__include@
312am__leading_dot = @am__leading_dot@
313am__quote = @am__quote@
314am__tar = @am__tar@
315am__untar = @am__untar@
316bindir = @bindir@
317build = @build@
318build_alias = @build_alias@
319build_cpu = @build_cpu@
320build_os = @build_os@
321build_vendor = @build_vendor@
322builddir = @builddir@
323datadir = @datadir@
324datarootdir = @datarootdir@
325dlopen_libs = @dlopen_libs@
326docdir = @docdir@
327dvidir = @dvidir@
328edje_cc = @edje_cc@
329efl_doxygen = @efl_doxygen@
330efl_have_doxygen = @efl_have_doxygen@
331evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
332evas_engine_buffer_libs = @evas_engine_buffer_libs@
333evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
334evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
335evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
336evas_engine_directfb_libs = @evas_engine_directfb_libs@
337evas_engine_fb_cflags = @evas_engine_fb_cflags@
338evas_engine_fb_libs = @evas_engine_fb_libs@
339evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
340evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
341evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
342evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
343evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
344evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
345evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
346evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
347evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
348evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
349evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
350evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
351evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
352evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
353evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
354evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
355evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
356evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
357evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
358evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
359evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
360evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
361evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
362evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
363evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
364evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
365evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
366evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
367evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
368evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
369evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
370evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
371evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
372evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
373evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
374evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
375evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
376evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
377evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
378evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
379evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
380evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
381evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
382evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
383evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
384evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
385evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
386evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
387evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
388evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
389evas_image_loader_png_libs = @evas_image_loader_png_libs@
390evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
391evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
392evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
393evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
394evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
395evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
396evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
397evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
398evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
399evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
400evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
401evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
402exec_prefix = @exec_prefix@
403have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
404have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
405have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
406have_evas_engine_software_x11 = @have_evas_engine_software_x11@
407have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
408have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
409have_lcov = @have_lcov@
410host = @host@
411host_alias = @host_alias@
412host_cpu = @host_cpu@
413host_os = @host_os@
414host_vendor = @host_vendor@
415htmldir = @htmldir@
416includedir = @includedir@
417infodir = @infodir@
418install_sh = @install_sh@
419libdir = @libdir@
420libexecdir = @libexecdir@
421localedir = @localedir@
422localstatedir = @localstatedir@
423lt_ECHO = @lt_ECHO@
424lt_enable_auto_import = @lt_enable_auto_import@
425mandir = @mandir@
426mkdir_p = @mkdir_p@
427oldincludedir = @oldincludedir@
428pdfdir = @pdfdir@
429pkgconfig_requires_private = @pkgconfig_requires_private@
430prefix = @prefix@
431program_transform_name = @program_transform_name@
432psdir = @psdir@
433pthread_cflags = @pthread_cflags@
434pthread_libs = @pthread_libs@
435release_info = @release_info@
436requirement_evas = @requirement_evas@
437sbindir = @sbindir@
438sharedstatedir = @sharedstatedir@
439srcdir = @srcdir@
440sysconfdir = @sysconfdir@
441target_alias = @target_alias@
442top_build_prefix = @top_build_prefix@
443top_builddir = @top_builddir@
444top_srcdir = @top_srcdir@
445version_info = @version_info@
446MAINTAINERCLEANFILES = Makefile.in
447AM_CPPFLAGS = \
448-I. \
449-I$(top_srcdir)/src/lib \
450-I$(top_srcdir)/src/lib/include \
451-I$(top_srcdir)/src/modules/engines \
452@EINA_CFLAGS@ \
453@FREETYPE_CFLAGS@ \
454@PIXMAN_CFLAGS@ \
455@evas_engine_software_ddraw_cflags@
456
457@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@SOFTWARE_DDRAW_SOURCES = \
458@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@evas_engine.c \
459@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@evas_outbuf.c \
460@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@evas_ddraw_buffer.c \
461@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@evas_ddraw_main.cpp
462
463@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@SOFTWARE_DDRAW_LIBADD = @evas_engine_software_ddraw_libs@
464@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@includes_HEADERS = Evas_Engine_Software_DDraw.h
465@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@includesdir = $(includedir)/evas-@VMAJ@
466@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_ddraw/$(MODULE_ARCH)
467@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@pkg_LTLIBRARIES = module.la
468@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@module_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES)
469@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@module_la_CXXFLAGS = -fno-rtti -fno-exceptions
470@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_DDRAW_LIBADD) $(top_builddir)/src/lib/libevas.la
471@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
472@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
473@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE@noinst_LTLIBRARIES = libevas_engine_software_ddraw.la
474@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE@libevas_engine_software_ddraw_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES)
475@BUILD_ENGINE_SOFTWARE_DDRAW_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_DDRAW_TRUE@libevas_engine_software_ddraw_la_LIBADD = $(SOFTWARE_DDRAW_LIBADD)
476EXTRA_DIST = evas_engine.h
477all: all-am
478
479.SUFFIXES:
480.SUFFIXES: .c .cpp .lo .o .obj
481$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
482 @for dep in $?; do \
483 case '$(am__configure_deps)' in \
484 *$$dep*) \
485 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
486 && { if test -f $@; then exit 0; else break; fi; }; \
487 exit 1;; \
488 esac; \
489 done; \
490 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_ddraw/Makefile'; \
491 $(am__cd) $(top_srcdir) && \
492 $(AUTOMAKE) --gnu src/modules/engines/software_ddraw/Makefile
493.PRECIOUS: Makefile
494Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
495 @case '$?' in \
496 *config.status*) \
497 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
498 *) \
499 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
500 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
501 esac;
502
503$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
504 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
505
506$(top_srcdir)/configure: $(am__configure_deps)
507 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
508$(ACLOCAL_M4): $(am__aclocal_m4_deps)
509 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
510$(am__aclocal_m4_deps):
511
512clean-noinstLTLIBRARIES:
513 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
514 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
515 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
516 test "$$dir" != "$$p" || dir=.; \
517 echo "rm -f \"$${dir}/so_locations\""; \
518 rm -f "$${dir}/so_locations"; \
519 done
520install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
521 @$(NORMAL_INSTALL)
522 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
523 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
524 list2=; for p in $$list; do \
525 if test -f $$p; then \
526 list2="$$list2 $$p"; \
527 else :; fi; \
528 done; \
529 test -z "$$list2" || { \
530 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
531 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
532 }
533
534uninstall-pkgLTLIBRARIES:
535 @$(NORMAL_UNINSTALL)
536 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
537 for p in $$list; do \
538 $(am__strip_dir) \
539 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
540 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
541 done
542
543clean-pkgLTLIBRARIES:
544 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
545 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
546 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
547 test "$$dir" != "$$p" || dir=.; \
548 echo "rm -f \"$${dir}/so_locations\""; \
549 rm -f "$${dir}/so_locations"; \
550 done
551libevas_engine_software_ddraw.la: $(libevas_engine_software_ddraw_la_OBJECTS) $(libevas_engine_software_ddraw_la_DEPENDENCIES)
552 $(AM_V_CXXLD)$(CXXLINK) $(am_libevas_engine_software_ddraw_la_rpath) $(libevas_engine_software_ddraw_la_OBJECTS) $(libevas_engine_software_ddraw_la_LIBADD) $(LIBS)
553module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
554 $(AM_V_CXXLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
555
556mostlyclean-compile:
557 -rm -f *.$(OBJEXT)
558
559distclean-compile:
560 -rm -f *.tab.c
561
562@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_ddraw_buffer.Plo@am__quote@
563@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_ddraw_main.Plo@am__quote@
564@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
565@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
566@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_ddraw_buffer.Plo@am__quote@
567@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_ddraw_main.Plo@am__quote@
568@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
569@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
570
571.c.o:
572@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
573@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
574@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
575@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
576@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
577@am__fastdepCC_FALSE@ $(COMPILE) -c $<
578
579.c.obj:
580@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
581@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
582@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
583@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
584@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
585@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
586
587.c.lo:
588@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
589@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
590@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
591@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
592@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
593@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
594
595module_la-evas_engine.lo: evas_engine.c
596@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
597@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
598@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
599@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
600@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
601@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
602
603module_la-evas_outbuf.lo: evas_outbuf.c
604@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
605@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
606@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
607@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
608@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
609@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
610
611module_la-evas_ddraw_buffer.lo: evas_ddraw_buffer.c
612@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_ddraw_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_ddraw_buffer.Tpo -c -o module_la-evas_ddraw_buffer.lo `test -f 'evas_ddraw_buffer.c' || echo '$(srcdir)/'`evas_ddraw_buffer.c
613@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_ddraw_buffer.Tpo $(DEPDIR)/module_la-evas_ddraw_buffer.Plo
614@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
615@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_ddraw_buffer.c' object='module_la-evas_ddraw_buffer.lo' libtool=yes @AMDEPBACKSLASH@
616@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
617@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_ddraw_buffer.lo `test -f 'evas_ddraw_buffer.c' || echo '$(srcdir)/'`evas_ddraw_buffer.c
618
619.cpp.o:
620@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
621@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
622@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
623@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
624@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
625@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
626
627.cpp.obj:
628@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
629@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
630@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
631@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
632@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
633@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
634
635.cpp.lo:
636@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
637@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
638@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
639@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
640@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
641@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
642
643module_la-evas_ddraw_main.lo: evas_ddraw_main.cpp
644@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -MT module_la-evas_ddraw_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_ddraw_main.Tpo -c -o module_la-evas_ddraw_main.lo `test -f 'evas_ddraw_main.cpp' || echo '$(srcdir)/'`evas_ddraw_main.cpp
645@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_ddraw_main.Tpo $(DEPDIR)/module_la-evas_ddraw_main.Plo
646@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
647@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='evas_ddraw_main.cpp' object='module_la-evas_ddraw_main.lo' libtool=yes @AMDEPBACKSLASH@
648@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
649@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CXXFLAGS) $(CXXFLAGS) -c -o module_la-evas_ddraw_main.lo `test -f 'evas_ddraw_main.cpp' || echo '$(srcdir)/'`evas_ddraw_main.cpp
650
651mostlyclean-libtool:
652 -rm -f *.lo
653
654clean-libtool:
655 -rm -rf .libs _libs
656install-includesHEADERS: $(includes_HEADERS)
657 @$(NORMAL_INSTALL)
658 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
659 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
660 for p in $$list; do \
661 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
662 echo "$$d$$p"; \
663 done | $(am__base_list) | \
664 while read files; do \
665 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
666 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
667 done
668
669uninstall-includesHEADERS:
670 @$(NORMAL_UNINSTALL)
671 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
672 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
673 test -n "$$files" || exit 0; \
674 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
675 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
676
677ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
678 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
679 unique=`for i in $$list; do \
680 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
681 done | \
682 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
683 END { if (nonempty) { for (i in files) print i; }; }'`; \
684 mkid -fID $$unique
685tags: TAGS
686
687TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
688 $(TAGS_FILES) $(LISP)
689 set x; \
690 here=`pwd`; \
691 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
692 unique=`for i in $$list; do \
693 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
694 done | \
695 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
696 END { if (nonempty) { for (i in files) print i; }; }'`; \
697 shift; \
698 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
699 test -n "$$unique" || unique=$$empty_fix; \
700 if test $$# -gt 0; then \
701 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
702 "$$@" $$unique; \
703 else \
704 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
705 $$unique; \
706 fi; \
707 fi
708ctags: CTAGS
709CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
710 $(TAGS_FILES) $(LISP)
711 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
712 unique=`for i in $$list; do \
713 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
714 done | \
715 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
716 END { if (nonempty) { for (i in files) print i; }; }'`; \
717 test -z "$(CTAGS_ARGS)$$unique" \
718 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
719 $$unique
720
721GTAGS:
722 here=`$(am__cd) $(top_builddir) && pwd` \
723 && $(am__cd) $(top_srcdir) \
724 && gtags -i $(GTAGS_ARGS) "$$here"
725
726distclean-tags:
727 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
728
729distdir: $(DISTFILES)
730 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
731 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
732 list='$(DISTFILES)'; \
733 dist_files=`for file in $$list; do echo $$file; done | \
734 sed -e "s|^$$srcdirstrip/||;t" \
735 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
736 case $$dist_files in \
737 */*) $(MKDIR_P) `echo "$$dist_files" | \
738 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
739 sort -u` ;; \
740 esac; \
741 for file in $$dist_files; do \
742 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
743 if test -d $$d/$$file; then \
744 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
745 if test -d "$(distdir)/$$file"; then \
746 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
747 fi; \
748 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
749 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
750 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
751 fi; \
752 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
753 else \
754 test -f "$(distdir)/$$file" \
755 || cp -p $$d/$$file "$(distdir)/$$file" \
756 || exit 1; \
757 fi; \
758 done
759check-am: all-am
760check: check-am
761all-am: Makefile $(LTLIBRARIES) $(HEADERS)
762installdirs:
763 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
764 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
765 done
766install: install-am
767install-exec: install-exec-am
768install-data: install-data-am
769uninstall: uninstall-am
770
771install-am: all-am
772 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
773
774installcheck: installcheck-am
775install-strip:
776 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
777 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
778 `test -z '$(STRIP)' || \
779 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
780mostlyclean-generic:
781
782clean-generic:
783
784distclean-generic:
785 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
786 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
787
788maintainer-clean-generic:
789 @echo "This command is intended for maintainers to use"
790 @echo "it deletes files that may require special tools to rebuild."
791 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
792clean: clean-am
793
794clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
795 clean-pkgLTLIBRARIES mostlyclean-am
796
797distclean: distclean-am
798 -rm -rf ./$(DEPDIR)
799 -rm -f Makefile
800distclean-am: clean-am distclean-compile distclean-generic \
801 distclean-tags
802
803dvi: dvi-am
804
805dvi-am:
806
807html: html-am
808
809html-am:
810
811info: info-am
812
813info-am:
814
815install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
816
817install-dvi: install-dvi-am
818
819install-dvi-am:
820
821install-exec-am:
822
823install-html: install-html-am
824
825install-html-am:
826
827install-info: install-info-am
828
829install-info-am:
830
831install-man:
832
833install-pdf: install-pdf-am
834
835install-pdf-am:
836
837install-ps: install-ps-am
838
839install-ps-am:
840
841installcheck-am:
842
843maintainer-clean: maintainer-clean-am
844 -rm -rf ./$(DEPDIR)
845 -rm -f Makefile
846maintainer-clean-am: distclean-am maintainer-clean-generic
847
848mostlyclean: mostlyclean-am
849
850mostlyclean-am: mostlyclean-compile mostlyclean-generic \
851 mostlyclean-libtool
852
853pdf: pdf-am
854
855pdf-am:
856
857ps: ps-am
858
859ps-am:
860
861uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
862
863.MAKE: install-am install-strip
864
865.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
866 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
867 ctags distclean distclean-compile distclean-generic \
868 distclean-libtool distclean-tags distdir dvi dvi-am html \
869 html-am info info-am install install-am install-data \
870 install-data-am install-dvi install-dvi-am install-exec \
871 install-exec-am install-html install-html-am \
872 install-includesHEADERS install-info install-info-am \
873 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
874 install-ps install-ps-am install-strip installcheck \
875 installcheck-am installdirs maintainer-clean \
876 maintainer-clean-generic mostlyclean mostlyclean-compile \
877 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
878 tags uninstall uninstall-am uninstall-includesHEADERS \
879 uninstall-pkgLTLIBRARIES
880
881
882# Tell versions [3.59,3.63) of GNU make to not export all variables.
883# Otherwise a system limit (for SysV at least) may be exceeded.
884.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_buffer.c b/libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_buffer.c
deleted file mode 100644
index 7ef9211..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_buffer.c
+++ /dev/null
@@ -1,92 +0,0 @@
1#include <string.h>
2
3#include "evas_common.h"
4#include "evas_engine.h"
5
6
7DD_Output_Buffer *
8evas_software_ddraw_output_buffer_new(int depth,
9 int width,
10 int height,
11 void *data)
12{
13 DD_Output_Buffer *ddob;
14
15 ddob = calloc(1, sizeof(DD_Output_Buffer));
16 if (!ddob) return NULL;
17
18 ddob->data = data;
19 ddob->depth = depth;
20 ddob->width = width;
21 ddob->height = height;
22 ddob->pitch = width * depth / 8;
23 ddob->psize = ddob->pitch * height;
24
25 if (!ddob->data)
26 {
27 ddob->data = malloc(ddob->pitch * height);
28 if (!ddob->data)
29 {
30 free(ddob);
31 return NULL;
32 }
33 }
34
35 return ddob;
36}
37
38void
39evas_software_ddraw_output_buffer_free(DD_Output_Buffer *ddob)
40{
41 if (ddob->data) free(ddob->data);
42 free(ddob);
43}
44
45void
46evas_software_ddraw_output_buffer_paste(DD_Output_Buffer *ddob,
47 void *ddraw_data,
48 int ddraw_width,
49 int ddraw_height,
50 int ddraw_pitch,
51 int ddraw_depth,
52 int x,
53 int y)
54{
55 DATA8 *dd_data;
56 DATA8 *evas_data;
57 int width;
58 int height;
59 int pitch;
60 int j;
61
62 if ((x >= ddraw_width) || (y >= ddraw_height))
63 return;
64
65 /* compute the size of the data to copy on the back surface */
66 width = ((x + ddob->width) > ddraw_width)
67 ? ddraw_width - x
68 : ddob->width;
69 height = ((y + ddob->height) > ddraw_height)
70 ? ddraw_height - y
71 : ddob->height;
72 pitch = width * ddob->depth / 8;
73
74 dd_data = (DATA8 *)ddraw_data + y * ddraw_pitch + x * ddraw_depth;
75 evas_data = (unsigned char *)ddob->data;
76 for (j = 0; j < height; j++, evas_data += ddob->pitch, dd_data += ddraw_pitch)
77 memcpy(dd_data, evas_data, pitch);
78}
79
80DATA8 *
81evas_software_ddraw_output_buffer_data(DD_Output_Buffer *ddob,
82 int *bytes_per_line_ret)
83{
84 if (bytes_per_line_ret) *bytes_per_line_ret = ddob->pitch;
85 return ddob->data;
86}
87
88int
89evas_software_ddraw_output_buffer_depth(DD_Output_Buffer *ddob)
90{
91 return ddob->depth;
92}
diff --git a/libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_main.cpp b/libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_main.cpp
deleted file mode 100644
index 2c467c8..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/evas_ddraw_main.cpp
+++ /dev/null
@@ -1,248 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4int
5evas_software_ddraw_init (HWND window,
6 int depth,
7 int fullscreen,
8 Outbuf *buf)
9{
10 DDSURFACEDESC surface_desc;
11 DDPIXELFORMAT pixel_format;
12 HRESULT res;
13 int width;
14 int height;
15
16 if (!buf)
17 return 0;
18
19 buf->priv.dd.window = window;
20
21 res = DirectDrawCreate(NULL, &buf->priv.dd.object, NULL);
22 if (FAILED(res))
23 return 0;
24
25 if (buf->priv.dd.fullscreen)
26 {
27 DDSCAPS caps;
28
29 res = buf->priv.dd.object->SetCooperativeLevel(window,
30 DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
31 if (FAILED(res))
32 goto release_object;
33
34 width = GetSystemMetrics(SM_CXSCREEN);
35 height = GetSystemMetrics(SM_CYSCREEN);
36
37 ZeroMemory(&pixel_format, sizeof(pixel_format));
38 pixel_format.dwSize = sizeof(pixel_format);
39 buf->priv.dd.surface_primary->GetPixelFormat(&pixel_format);
40
41 if (pixel_format.dwRGBBitCount != (DWORD)depth)
42 goto release_object;
43
44 buf->priv.dd.depth = depth;
45
46 res = buf->priv.dd.object->SetDisplayMode(width, height, depth);
47 if (FAILED(res))
48 goto release_object;
49
50 memset(&surface_desc, 0, sizeof(surface_desc));
51 surface_desc.dwSize = sizeof(surface_desc);
52 surface_desc.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
53 surface_desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
54 surface_desc.dwBackBufferCount = 1;
55
56 res = buf->priv.dd.object->CreateSurface(&surface_desc,
57 &buf->priv.dd.surface_primary, NULL);
58 if (FAILED(res))
59 goto release_object;
60
61 caps.dwCaps = DDSCAPS_BACKBUFFER;
62 res = buf->priv.dd.surface_primary->GetAttachedSurface(&caps,
63 &buf->priv.dd.surface_back);
64 if (FAILED(res))
65 goto release_surface_primary;
66 }
67 else
68 {
69 RECT rect;
70
71 if (!GetClientRect(window, &rect))
72 goto release_object;
73
74 width = rect.right - rect.left;
75 height = rect.bottom - rect.top;
76
77 res = buf->priv.dd.object->SetCooperativeLevel(window, DDSCL_NORMAL);
78 if (FAILED(res))
79 goto release_object;
80
81 res = buf->priv.dd.object->CreateClipper(0, &buf->priv.dd.clipper, NULL);
82 if (FAILED(res))
83 goto release_object;
84
85 res = buf->priv.dd.clipper->SetHWnd(0, window);
86 if (FAILED(res))
87 goto release_clipper;
88
89 memset(&surface_desc, 0, sizeof(surface_desc));
90 surface_desc.dwSize = sizeof(surface_desc);
91 surface_desc.dwFlags = DDSD_CAPS;
92 surface_desc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
93
94 res = buf->priv.dd.object->CreateSurface(&surface_desc, &buf->priv.dd.surface_primary, NULL);
95 if (FAILED(res))
96 goto release_clipper;
97
98 res = buf->priv.dd.surface_primary->SetClipper(buf->priv.dd.clipper);
99 if (FAILED(res))
100 goto release_surface_primary;
101
102 memset (&surface_desc, 0, sizeof(surface_desc));
103 surface_desc.dwSize = sizeof(surface_desc);
104 surface_desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
105 surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
106 surface_desc.dwWidth = width;
107 surface_desc.dwHeight = height;
108
109 res = buf->priv.dd.object->CreateSurface(&surface_desc, &buf->priv.dd.surface_back, NULL);
110 if (FAILED(res))
111 goto release_surface_primary;
112
113 ZeroMemory(&pixel_format, sizeof(pixel_format));
114 pixel_format.dwSize = sizeof(pixel_format);
115 buf->priv.dd.surface_primary->GetPixelFormat(&pixel_format);
116
117 if (pixel_format.dwRGBBitCount != (DWORD)depth)
118 goto release_surface_back;
119
120 buf->priv.dd.depth = depth;
121 }
122
123 return 1;
124
125 release_surface_back:
126 buf->priv.dd.surface_back->Release();
127 release_surface_primary:
128 buf->priv.dd.surface_primary->Release();
129 release_clipper:
130 if (!buf->priv.dd.fullscreen)
131 buf->priv.dd.clipper->Release();
132 release_object:
133 buf->priv.dd.object->Release();
134
135 return 0;
136}
137
138void
139evas_software_ddraw_shutdown(Outbuf *buf)
140{
141 if (!buf)
142 return;
143
144 if (buf->priv.dd.fullscreen)
145 if (buf->priv.dd.surface_back)
146 buf->priv.dd.surface_back->Release();
147 if (buf->priv.dd.surface_primary)
148 buf->priv.dd.surface_primary->Release();
149 if (!buf->priv.dd.fullscreen)
150 if (buf->priv.dd.clipper)
151 buf->priv.dd.clipper->Release();
152 if (buf->priv.dd.object)
153 buf->priv.dd.object->Release();
154}
155
156int
157evas_software_ddraw_masks_get(Outbuf *buf)
158{
159 DDPIXELFORMAT pixel_format;
160
161 ZeroMemory(&pixel_format, sizeof(pixel_format));
162 pixel_format.dwSize = sizeof(pixel_format);
163
164 if (FAILED(buf->priv.dd.surface_primary->GetPixelFormat(&pixel_format)))
165 return 0;
166
167 buf->priv.mask.r = pixel_format.dwRBitMask;
168 buf->priv.mask.g = pixel_format.dwGBitMask;
169 buf->priv.mask.b = pixel_format.dwBBitMask;
170
171 return 1;
172}
173
174void *
175evas_software_ddraw_lock(Outbuf *buf,
176 int *ddraw_width,
177 int *ddraw_height,
178 int *ddraw_pitch,
179 int *ddraw_depth)
180{
181 DDSURFACEDESC surface_desc;
182
183 ZeroMemory(&surface_desc, sizeof(surface_desc));
184 surface_desc.dwSize = sizeof(surface_desc);
185
186 if (FAILED(buf->priv.dd.surface_back->Lock(NULL,
187 &surface_desc,
188 DDLOCK_WAIT | DDLOCK_WRITEONLY | DDLOCK_SURFACEMEMORYPTR | DDLOCK_NOSYSLOCK,
189 NULL)))
190 return NULL;
191
192 *ddraw_width = surface_desc.dwWidth;
193 *ddraw_height = surface_desc.dwHeight;
194 *ddraw_pitch = surface_desc.lPitch;
195 *ddraw_depth = surface_desc.ddpfPixelFormat.dwRGBBitCount >> 3;
196
197 return surface_desc.lpSurface;
198}
199
200void
201evas_software_ddraw_unlock_and_flip(Outbuf *buf)
202{
203 RECT dst_rect;
204 RECT src_rect;
205 POINT p;
206
207 if (FAILED(buf->priv.dd.surface_back->Unlock(NULL)))
208 return;
209
210 /* we figure out where on the primary surface our window lives */
211 p.x = 0;
212 p.y = 0;
213 ClientToScreen(buf->priv.dd.window, &p);
214 GetClientRect(buf->priv.dd.window, &dst_rect);
215 OffsetRect(&dst_rect, p.x, p.y);
216 SetRect(&src_rect, 0, 0, buf->width, buf->height);
217
218 /* nothing to do if the function fails, so we don't check the result */
219 buf->priv.dd.surface_primary->Blt(&dst_rect,
220 buf->priv.dd.surface_back,
221 &src_rect,
222 DDBLT_WAIT, NULL);
223}
224
225void
226evas_software_ddraw_surface_resize(Outbuf *buf)
227{
228 DDSURFACEDESC surface_desc;
229
230 buf->priv.dd.surface_back->Release();
231 memset (&surface_desc, 0, sizeof (surface_desc));
232 surface_desc.dwSize = sizeof (surface_desc);
233 /* FIXME: that code does not compile. Must know why */
234#if 0
235 surface_desc.dwFlags = DDSD_HEIGHT | DDSD_WIDTH;
236 surface_desc.dwWidth = width;
237 surface_desc.dwHeight = height;
238 buf->priv.dd.surface_back->SetSurfaceDesc(&surface_desc, NULL);
239#else
240 surface_desc.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
241 surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
242 surface_desc.dwWidth = buf->width;
243 surface_desc.dwHeight = buf->height;
244 buf->priv.dd.object->CreateSurface(&surface_desc,
245 &buf->priv.dd.surface_back,
246 NULL);
247#endif
248}
diff --git a/libraries/evas/src/modules/engines/software_ddraw/evas_engine.c b/libraries/evas/src/modules/engines/software_ddraw/evas_engine.c
deleted file mode 100644
index 5bfc87f..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/evas_engine.c
+++ /dev/null
@@ -1,379 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_DDraw.h"
5
6int _evas_engine_soft_ddraw_log_dom = -1;
7/* function tables - filled in later (func and parent func) */
8static Evas_Func func, pfunc;
9
10/* engine struct data */
11typedef struct _Render_Engine Render_Engine;
12
13struct _Render_Engine
14{
15 Tilebuf *tb;
16 Outbuf *ob;
17 Tilebuf_Rect *rects;
18 Eina_Inlist *cur_rect;
19 int end : 1;
20};
21
22
23/* log domain variable */
24int _evas_log_dom_module = -1;
25
26
27static void *
28_output_setup(int width,
29 int height,
30 int rot,
31 HWND window,
32 int depth,
33 int fullscreen)
34{
35 Render_Engine *re;
36
37 re = calloc(1, sizeof(Render_Engine));
38 if (!re)
39 return NULL;
40
41 /* if we haven't initialized - init (automatic abort if already done) */
42 evas_common_cpu_init();
43
44 evas_common_blend_init();
45 evas_common_image_init();
46 evas_common_convert_init();
47 evas_common_scale_init();
48 evas_common_rectangle_init();
49 evas_common_polygon_init();
50 evas_common_line_init();
51 evas_common_font_init();
52 evas_common_draw_init();
53 evas_common_tilebuf_init();
54
55 evas_software_ddraw_outbuf_init();
56
57 re->ob = evas_software_ddraw_outbuf_setup(width, height, rot,
58 OUTBUF_DEPTH_INHERIT,
59 window, depth, fullscreen);
60 if (!re->ob)
61 {
62 free(re);
63 return NULL;
64 }
65
66 /* for updates return 1 big buffer, but only use portions of it, also cache
67 it and keep it around until an idle_flush */
68 /* disable for now - i am hunting down why some expedite tests are slower,
69 * as well as shaped stuff is broken and probable non-32bpp is broken as
70 * convert funcs dont do the right thing
71 *
72 re->ob->onebuf = 1;
73 */
74
75 re->tb = evas_common_tilebuf_new(width, height);
76 if (!re->tb)
77 {
78 evas_software_ddraw_outbuf_free(re->ob);
79 free(re);
80 return NULL;
81 }
82 /* in preliminary tests 16x16 gave highest framerates */
83 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
84
85 return re;
86}
87
88
89/* engine api this module provides */
90
91static void *
92eng_info(Evas *e)
93{
94 Evas_Engine_Info_Software_DDraw *info;
95
96 info = calloc(1, sizeof(Evas_Engine_Info_Software_DDraw));
97 if (!info) return NULL;
98 info->magic.magic = rand();
99 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
100 return info;
101 e = NULL;
102}
103
104static void
105eng_info_free(Evas *e, void *info)
106{
107 Evas_Engine_Info_Software_DDraw *in;
108 in = (Evas_Engine_Info_Software_DDraw *)info;
109 free(in);
110}
111
112static int
113eng_setup(Evas *e, void *in)
114{
115 Render_Engine *re;
116 Evas_Engine_Info_Software_DDraw *info;
117
118 info = (Evas_Engine_Info_Software_DDraw *)in;
119 if (!e->engine.data.output)
120 e->engine.data.output = _output_setup(e->output.w,
121 e->output.h,
122 info->info.rotation,
123 info->info.window,
124 info->info.depth,
125 info->info.fullscreen);
126 else
127 {
128 int ponebuf = 0;
129
130 re = e->engine.data.output;
131 ponebuf = re->ob->onebuf;
132 evas_software_ddraw_outbuf_free(re->ob);
133 re->ob = evas_software_ddraw_outbuf_setup(e->output.w,
134 e->output.h,
135 info->info.rotation,
136 OUTBUF_DEPTH_INHERIT,
137 info->info.window,
138 info->info.depth,
139 info->info.fullscreen);
140 re->ob->onebuf = ponebuf;
141 }
142 if (!e->engine.data.output) return 0;
143 if (!e->engine.data.context)
144 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
145
146 re = e->engine.data.output;
147
148 return 1;
149}
150
151static void
152eng_output_free(void *data)
153{
154 Render_Engine *re;
155
156 if (!data) return;
157
158 re = (Render_Engine *)data;
159 evas_software_ddraw_outbuf_free(re->ob);
160 evas_common_tilebuf_free(re->tb);
161 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
162 free(re);
163
164 evas_common_font_shutdown();
165 evas_common_image_shutdown();
166}
167
168static void
169eng_output_resize(void *data, int width, int height)
170{
171 Render_Engine *re;
172
173 re = (Render_Engine *)data;
174 evas_software_ddraw_outbuf_reconfigure(re->ob,
175 width,
176 height,
177 evas_software_ddraw_outbuf_rot_get(re->ob),
178 OUTBUF_DEPTH_INHERIT);
179 evas_common_tilebuf_free(re->tb);
180 re->tb = evas_common_tilebuf_new(width, height);
181 if (re->tb)
182 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
183}
184
185static void
186eng_output_tile_size_set(void *data, int w, int h)
187{
188 Render_Engine *re;
189
190 re = (Render_Engine *)data;
191 evas_common_tilebuf_set_tile_size(re->tb, w, h);
192}
193
194static void
195eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
196{
197 Render_Engine *re;
198
199 re = (Render_Engine *)data;
200 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
201}
202
203static void
204eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
205{
206 Render_Engine *re;
207
208 re = (Render_Engine *)data;
209 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
210}
211
212static void
213eng_output_redraws_clear(void *data)
214{
215 Render_Engine *re;
216
217 re = (Render_Engine *)data;
218 evas_common_tilebuf_clear(re->tb);
219}
220
221static void *
222eng_output_redraws_next_update_get(void *data,
223 int *x,
224 int *y,
225 int *w,
226 int *h,
227 int *cx,
228 int *cy,
229 int *cw,
230 int *ch)
231{
232 Render_Engine *re;
233 RGBA_Image *surface;
234 Tilebuf_Rect *rect;
235 int ux;
236 int uy;
237 int uw;
238 int uh;
239
240 re = (Render_Engine *)data;
241 if (re->end)
242 {
243 re->end = 0;
244 return NULL;
245 }
246 if (!re->rects)
247 {
248 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
249 re->cur_rect = EINA_INLIST_GET(re->rects);
250 }
251 if (!re->cur_rect) return NULL;
252 rect = (Tilebuf_Rect *)re->cur_rect;
253 ux = rect->x;
254 uy = rect->y;
255 uw = rect->w;
256 uh = rect->h;
257 re->cur_rect = re->cur_rect->next;
258 if (!re->cur_rect)
259 {
260 evas_common_tilebuf_free_render_rects(re->rects);
261 re->rects = NULL;
262 re->end = 1;
263 }
264
265 surface = evas_software_ddraw_outbuf_new_region_for_update(re->ob,
266 ux,
267 uy,
268 uw,
269 uh,
270 cx,
271 cy,
272 cw,
273 ch);
274
275 *x = ux;
276 *y = uy;
277 *w = uw;
278 *h = uh;
279
280 return surface;
281}
282
283static void
284eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
285{
286 Render_Engine *re;
287
288 re = (Render_Engine *)data;
289#ifdef BUILD_PIPE_RENDER
290 evas_common_pipe_map_begin(surface);
291#endif
292 evas_software_ddraw_outbuf_push_updated_region(re->ob, surface, x, y, w, h);
293 evas_software_ddraw_outbuf_free_region_for_update(re->ob, surface);
294 evas_common_cpu_end_opt();
295}
296
297static void
298eng_output_flush(void *data)
299{
300 Render_Engine *re;
301
302 re = (Render_Engine *)data;
303 evas_software_ddraw_outbuf_flush(re->ob);
304}
305
306static void
307eng_output_idle_flush(void *data)
308{
309 Render_Engine *re;
310
311 re = (Render_Engine *)data;
312 evas_software_ddraw_outbuf_idle_flush(re->ob);
313}
314
315static Eina_Bool
316eng_canvas_alpha_get(void *data, void *context)
317{
318 return EINA_FALSE;
319}
320
321/* module advertising code */
322static int
323module_open(Evas_Module *em)
324{
325 if (!em) return 0;
326 /* get whatever engine module we inherit from */
327 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
328 _evas_log_dom_module = eina_log_domain_register
329 ("evas-software_ddraw", EVAS_DEFAULT_LOG_COLOR);
330 if (_evas_log_dom_module < 0)
331 {
332 EINA_LOG_ERR("Can not create a module log domain.");
333 return 0;
334 }
335 /* store it for later use */
336 func = pfunc;
337 /* now to override methods */
338#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
339 ORD(info);
340 ORD(info_free);
341 ORD(setup);
342 ORD(canvas_alpha_get);
343 ORD(output_free);
344 ORD(output_resize);
345 ORD(output_tile_size_set);
346 ORD(output_redraws_rect_add);
347 ORD(output_redraws_rect_del);
348 ORD(output_redraws_clear);
349 ORD(output_redraws_next_update_get);
350 ORD(output_redraws_next_update_push);
351 ORD(output_flush);
352 ORD(output_idle_flush);
353 /* now advertise out own api */
354 em->functions = (void *)(&func);
355 return 1;
356}
357
358static void
359module_close(Evas_Module *em)
360{
361 eina_log_domain_unregister(_evas_log_dom_module);
362}
363
364static Evas_Module_Api evas_modapi =
365{
366 EVAS_MODULE_API_VERSION,
367 "software_ddraw",
368 "none",
369 {
370 module_open,
371 module_close
372 }
373};
374
375EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_ddraw);
376
377#ifndef EVAS_STATIC_BUILD_SOFTWARE_DDRAW
378EVAS_EINA_MODULE_DEFINE(engine, software_ddraw);
379#endif
diff --git a/libraries/evas/src/modules/engines/software_ddraw/evas_engine.h b/libraries/evas/src/modules/engines/software_ddraw/evas_engine.h
deleted file mode 100644
index 2f59170..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/evas_engine.h
+++ /dev/null
@@ -1,220 +0,0 @@
1#ifndef __EVAS_ENGINE_H__
2#define __EVAS_ENGINE_H__
3
4
5#define WIN32_LEAN_AND_MEAN
6#include <windows.h>
7#undef WIN32_LEAN_AND_MEAN
8#include <ddraw.h>
9
10typedef struct _Outbuf Outbuf;
11typedef struct _Outbuf_Region Outbuf_Region;
12typedef struct _DD_Output_Buffer DD_Output_Buffer;
13
14enum _Outbuf_Depth
15{
16 OUTBUF_DEPTH_NONE,
17 OUTBUF_DEPTH_INHERIT,
18 OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,
19 OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED,
20 OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED,
21 OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED,
22 OUTBUF_DEPTH_RGB_32BPP_888_8888,
23 OUTBUF_DEPTH_LAST
24};
25
26typedef enum _Outbuf_Depth Outbuf_Depth;
27
28struct _Outbuf
29{
30 Outbuf_Depth depth;
31 int width;
32 int height;
33 int rot;
34 int onebuf;
35
36 struct {
37 Convert_Pal *pal;
38 struct {
39 HWND window;
40 LPDIRECTDRAW object;
41 LPDIRECTDRAWSURFACE surface_primary;
42 LPDIRECTDRAWSURFACE surface_back;
43 LPDIRECTDRAWCLIPPER clipper;
44 int depth;
45 unsigned char fullscreen : 1;
46 unsigned char swap : 1;
47 unsigned char bit_swap : 1;
48 } dd;
49 struct {
50 DATA32 r, g, b;
51 } mask;
52
53 /* 1 big buffer for updates - flush on idle_flush */
54 RGBA_Image *onebuf;
55 Eina_List *onebuf_regions;
56
57 /* a list of pending regions to write to the target */
58 Eina_List *pending_writes;
59 /* a list of previous frame pending regions to write to the target */
60 Eina_List *prev_pending_writes;
61
62 unsigned char mask_dither : 1;
63 unsigned char destination_alpha : 1;
64 unsigned char debug : 1;
65 unsigned char synced : 1;
66 } priv;
67};
68
69struct _Outbuf_Region
70{
71 DD_Output_Buffer *ddob;
72 int x;
73 int y;
74 int width;
75 int height;
76};
77
78struct _DD_Output_Buffer
79{
80 void *data;
81 int width;
82 int height;
83 int depth;
84 int pitch;
85 int psize;
86};
87
88extern int _evas_log_dom_module;
89
90#ifdef EVAS_DEFAULT_LOG_COLOR
91# undef EVAS_DEFAULT_LOG_COLOR
92#endif
93#define EVAS_DEFAULT_LOG_COLOR EINA_COLOR_CYAN
94#ifdef ERR
95# undef ERR
96#endif
97#define ERR(...) EINA_LOG_DOM_ERR(_evas_log_dom_module, __VA_ARGS__)
98#ifdef DBG
99# undef DBG
100#endif
101#define DBG(...) EINA_LOG_DOM_DBG(_evas_log_dom_module, __VA_ARGS__)
102#ifdef INF
103# undef INF
104#endif
105#define INF(...) EINA_LOG_DOM_INFO(_evas_log_dom_module, __VA_ARGS__)
106#ifdef WRN
107# undef WRN
108#endif
109#define WRN(...) EINA_LOG_DOM_WARN(_evas_log_dom_module, __VA_ARGS__)
110#ifdef CRT
111# undef CRT
112#endif
113#define CRT(...) EINA_LOG_DOM_CRIT(_evas_log_dom_module, __VA_ARGS__)
114
115/* evas_outbuf.c */
116
117void evas_software_ddraw_outbuf_init(void);
118
119void evas_software_ddraw_outbuf_free(Outbuf *buf);
120
121Outbuf *evas_software_ddraw_outbuf_setup(int width,
122 int height,
123 int rotation,
124 Outbuf_Depth depth,
125 HWND window,
126 int w_depth,
127 int fullscreen);
128
129void evas_software_ddraw_outbuf_reconfigure(Outbuf *buf,
130 int width,
131 int height,
132 int rotation,
133 Outbuf_Depth depth);
134
135RGBA_Image *evas_software_ddraw_outbuf_new_region_for_update(Outbuf *buf,
136 int x,
137 int y,
138 int w,
139 int h,
140 int *cx,
141 int *cy,
142 int *cw,
143 int *ch);
144
145void evas_software_ddraw_outbuf_push_updated_region(Outbuf *buf,
146 RGBA_Image *update,
147 int x,
148 int y,
149 int w,
150 int h);
151
152void evas_software_ddraw_outbuf_free_region_for_update(Outbuf *buf,
153 RGBA_Image *update);
154
155void evas_software_ddraw_outbuf_flush(Outbuf *buf);
156
157void evas_software_ddraw_outbuf_idle_flush(Outbuf *buf);
158
159int evas_software_ddraw_outbuf_width_get(Outbuf *buf);
160
161int evas_software_ddraw_outbuf_height_get(Outbuf *buf);
162
163Outbuf_Depth evas_software_ddraw_outbuf_depth_get(Outbuf *buf);
164
165int evas_software_ddraw_outbuf_rot_get(Outbuf *buf);
166
167/* evas_ddraw_buffer.c */
168
169DD_Output_Buffer *evas_software_ddraw_output_buffer_new(int depth,
170 int width,
171 int height,
172 void *data);
173
174void evas_software_ddraw_output_buffer_free(DD_Output_Buffer *ddob);
175
176void evas_software_ddraw_output_buffer_paste(DD_Output_Buffer *ddob,
177 void *ddraw_data,
178 int ddraw_width,
179 int ddraw_height,
180 int ddraw_pitch,
181 int ddraw_depth,
182 int x,
183 int y);
184
185DATA8 *evas_software_ddraw_output_buffer_data(DD_Output_Buffer *ddob,
186 int *bytes_per_line_ret);
187
188int evas_software_ddraw_output_buffer_depth(DD_Output_Buffer *ddob);
189
190/* evas_ddraw_main.cpp */
191
192#ifdef __cplusplus
193extern "C" {
194#endif
195
196int evas_software_ddraw_init (HWND window,
197 int depth,
198 int fullscreen,
199 Outbuf *buf);
200
201void evas_software_ddraw_shutdown(Outbuf *buf);
202
203int evas_software_ddraw_masks_get(Outbuf *buf);
204
205void *evas_software_ddraw_lock(Outbuf *buf,
206 int *ddraw_width,
207 int *ddraw_height,
208 int *ddraw_pitch,
209 int *ddraw_depth);
210
211void evas_software_ddraw_unlock_and_flip(Outbuf *buf);
212
213void evas_software_ddraw_surface_resize(Outbuf *buf);
214
215#ifdef __cplusplus
216}
217#endif
218
219
220#endif /* __EVAS_ENGINE_H__ */
diff --git a/libraries/evas/src/modules/engines/software_ddraw/evas_outbuf.c b/libraries/evas/src/modules/engines/software_ddraw/evas_outbuf.c
deleted file mode 100644
index 5a5f0a2..0000000
--- a/libraries/evas/src/modules/engines/software_ddraw/evas_outbuf.c
+++ /dev/null
@@ -1,460 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4
5static Eina_List *ddpool = NULL;
6static int ddsize = 0;
7static int ddmemlimit = 10 * 1024 * 1024;
8static int ddcountlimit = 32;
9
10static DD_Output_Buffer *
11_find_ddob(int depth, int w, int h, void *data)
12{
13 Eina_List *l;
14 Eina_List *ddl;
15 DD_Output_Buffer *ddob = NULL;
16 DD_Output_Buffer *ddob2;
17 int sz;
18 int lbytes;
19 int bpp;
20
21 bpp = depth / 8;
22 if (bpp == 3) bpp = 4;
23 lbytes = (((w * bpp) + 3) / 4) * 4;
24 sz = lbytes * h;
25 EINA_LIST_FOREACH(ddpool, l, ddob2)
26 {
27 if (ddob2->depth != depth)
28 continue;
29 if (ddob2->psize == sz)
30 {
31 ddob = ddob2;
32 ddl = l;
33 goto have_ddob;
34 }
35 }
36 if (!ddob)
37 return evas_software_ddraw_output_buffer_new(depth, w, h, data);
38
39 have_ddob:
40 ddpool = eina_list_remove_list(ddpool, ddl);
41 ddob->width = w;
42 ddob->height = h;
43 ddob->pitch = lbytes;
44 ddsize -= ddob->psize * (ddob->depth / 8);
45
46 return ddob;
47}
48
49static void
50_unfind_ddob(DD_Output_Buffer *ddob)
51{
52 ddpool = eina_list_prepend(ddpool, ddob);
53 ddsize += ddob->psize * ddob->depth / 8;
54 while ((ddsize > (ddmemlimit)) ||
55 (eina_list_count(ddpool) > ddcountlimit))
56 {
57 Eina_List *xl;
58
59 xl = eina_list_last(ddpool);
60 if (!xl)
61 {
62 ddsize = 0;
63 break;
64 }
65 ddob = xl->data;
66 ddpool = eina_list_remove_list(ddpool, xl);
67 evas_software_ddraw_output_buffer_free(ddob);
68 }
69}
70
71static void
72_clear_ddob(int sync)
73{
74 while (ddpool)
75 {
76 DD_Output_Buffer *ddob;
77
78 ddob = ddpool->data;
79 ddpool = eina_list_remove_list(ddpool, ddpool);
80 evas_software_ddraw_output_buffer_free(ddob);
81 }
82 ddsize = 0;
83}
84
85void
86evas_software_ddraw_outbuf_init(void)
87{
88}
89
90void
91evas_software_ddraw_outbuf_free(Outbuf *buf)
92{
93 if (!buf)
94 return;
95
96 evas_software_ddraw_shutdown(buf);
97 free(buf);
98}
99
100Outbuf *
101evas_software_ddraw_outbuf_setup(int width,
102 int height,
103 int rotation,
104 Outbuf_Depth depth,
105 HWND window,
106 int w_depth,
107 int fullscreen)
108{
109 Outbuf *buf;
110
111 buf = (Outbuf *)calloc(1, sizeof(Outbuf));
112 if (!buf)
113 return NULL;
114
115 buf->width = width;
116 buf->height = height;
117 buf->depth = depth;
118 buf->rot = rotation;
119
120 if (!evas_software_ddraw_init(window, w_depth, fullscreen, buf))
121 {
122 free(buf);
123 return NULL;
124 }
125
126 {
127 Gfx_Func_Convert conv_func;
128 DD_Output_Buffer *ddob;
129
130 ddob = evas_software_ddraw_output_buffer_new(w_depth, 1, 1, NULL);
131
132 conv_func = NULL;
133 if (ddob)
134 {
135 if (evas_software_ddraw_masks_get(buf))
136 {
137 if ((rotation == 0) || (rotation == 180))
138 conv_func = evas_common_convert_func_get(0,
139 width,
140 height,
141 evas_software_ddraw_output_buffer_depth (ddob),
142 buf->priv.mask.r,
143 buf->priv.mask.g,
144 buf->priv.mask.b,
145 PAL_MODE_NONE,
146 rotation);
147 else if ((rotation == 90) || (rotation == 270))
148 conv_func = evas_common_convert_func_get(0,
149 height,
150 width,
151 evas_software_ddraw_output_buffer_depth (ddob),
152 buf->priv.mask.r,
153 buf->priv.mask.g,
154 buf->priv.mask.b,
155 PAL_MODE_NONE,
156 rotation);
157 }
158
159 evas_software_ddraw_output_buffer_free(ddob);
160
161 if (!conv_func)
162 {
163 ERR("DDraw engine Error"
164 " {"
165 " At depth %i:"
166 " RGB format mask: %08x, %08x, %08x"
167 " Not supported by and compiled in converters!"
168 " }",
169 buf->priv.dd.depth,
170 buf->priv.mask.r,
171 buf->priv.mask.g,
172 buf->priv.mask.b);
173 }
174 }
175 }
176
177 return buf;
178}
179
180void
181evas_software_ddraw_outbuf_reconfigure(Outbuf *buf,
182 int width,
183 int height,
184 int rotation,
185 Outbuf_Depth depth)
186{
187 if ((width == buf->width) && (height == buf->height) &&
188 (rotation == buf->rot) && (depth == buf->depth))
189 return;
190 buf->width = width;
191 buf->height = height;
192 buf->rot = rotation;
193 evas_software_ddraw_surface_resize(buf);
194}
195
196RGBA_Image *
197evas_software_ddraw_outbuf_new_region_for_update(Outbuf *buf,
198 int x,
199 int y,
200 int w,
201 int h,
202 int *cx,
203 int *cy,
204 int *cw,
205 int *ch)
206{
207 RGBA_Image *im;
208 Outbuf_Region *obr;
209 int bpl = 0;
210 int alpha = 0;
211
212 obr = calloc(1, sizeof(Outbuf_Region));
213 obr->x = x;
214 obr->y = y;
215 obr->width = w;
216 obr->height = h;
217 *cx = 0;
218 *cy = 0;
219 *cw = w;
220 *ch = h;
221
222 if ((buf->rot == 0) &&
223 (buf->priv.mask.r == 0xff0000) &&
224 (buf->priv.mask.g == 0x00ff00) &&
225 (buf->priv.mask.b == 0x0000ff))
226 {
227 obr->ddob = _find_ddob(buf->priv.dd.depth, w, h, NULL);
228/* obr->ddob = evas_software_x11_x_output_buffer_new(buf->priv.dd.disp, */
229/* buf->priv.dd.vis, */
230/* buf->priv.dd.depth, */
231/* w, h, */
232/* use_shm, */
233/* NULL); */
234 im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
235 w, h,
236 (DATA32 *) evas_software_ddraw_output_buffer_data(obr->ddob, &bpl),
237 alpha, EVAS_COLORSPACE_ARGB8888);
238 im->extended_info = obr;
239 }
240 else
241 {
242 im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
243 im->cache_entry.flags.alpha |= alpha ? 1 : 0;
244 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
245 im->extended_info = obr;
246 if ((buf->rot == 0) || (buf->rot == 180))
247 obr->ddob = _find_ddob(buf->priv.dd.depth, w, h, NULL);
248/*
249 obr->ddob = evas_software_x11_x_output_buffer_new(buf->priv.dd.disp,
250 buf->priv.dd.vis,
251 buf->priv.dd.depth,
252 w, h,
253 use_shm,
254 NULL);
255 */
256 else if ((buf->rot == 90) || (buf->rot == 270))
257 obr->ddob = _find_ddob(buf->priv.dd.depth, h, w, NULL);
258/*
259 obr->ddob = evas_software_x11_x_output_buffer_new(buf->priv.dd.disp,
260 buf->priv.dd.vis,
261 buf->priv.dd.depth,
262 h, w,
263 use_shm,
264 NULL);
265 */
266 }
267
268 buf->priv.pending_writes = eina_list_append(buf->priv.pending_writes, im);
269 return im;
270}
271
272void
273evas_software_ddraw_outbuf_push_updated_region(Outbuf *buf,
274 RGBA_Image *update,
275 int x,
276 int y,
277 int w,
278 int h)
279{
280 Gfx_Func_Convert conv_func;
281 Outbuf_Region *obr;
282 DATA32 *src_data;
283 void *data;
284 int bpl = 0;
285
286 conv_func = NULL;
287 obr = update->extended_info;
288
289 if ((buf->rot == 0) || (buf->rot == 180))
290 conv_func = evas_common_convert_func_get(0, w, h,
291 evas_software_ddraw_output_buffer_depth(obr->ddob),
292 buf->priv.mask.r,
293 buf->priv.mask.g,
294 buf->priv.mask.b,
295 PAL_MODE_NONE,
296 buf->rot);
297 else if ((buf->rot == 90) || (buf->rot == 270))
298 conv_func = evas_common_convert_func_get(0, h, w,
299 evas_software_ddraw_output_buffer_depth(obr->ddob),
300 buf->priv.mask.r,
301 buf->priv.mask.g,
302 buf->priv.mask.b,
303 PAL_MODE_NONE, buf->rot);
304 if (!conv_func) return;
305
306 data = evas_software_ddraw_output_buffer_data(obr->ddob, &bpl);
307 src_data = update->image.data;
308 if (buf->rot == 0)
309 {
310 obr->x = x;
311 obr->y = y;
312 }
313 else if (buf->rot == 90)
314 {
315 obr->x = y;
316 obr->y = buf->width - x - w;
317 }
318 else if (buf->rot == 180)
319 {
320 obr->x = buf->width - x - w;
321 obr->y = buf->height - y - h;
322 }
323 else if (buf->rot == 270)
324 {
325 obr->x = buf->height - y - h;
326 obr->y = x;
327 }
328 if ((buf->rot == 0) || (buf->rot == 180))
329 {
330 obr->width = w;
331 obr->height = h;
332 }
333 else if ((buf->rot == 90) || (buf->rot == 270))
334 {
335 obr->width = h;
336 obr->height = w;
337 }
338
339 if (data != src_data)
340 conv_func(src_data, data,
341 0,
342 bpl / ((evas_software_ddraw_output_buffer_depth(obr->ddob) / 8)) - obr->width,
343 obr->width,
344 obr->height,
345 x,
346 y,
347 NULL);
348}
349
350void
351evas_software_ddraw_outbuf_free_region_for_update(Outbuf *buf,
352 RGBA_Image *update)
353{
354 /* no need to do anything - they are cleaned up on flush */
355}
356
357void
358evas_software_ddraw_outbuf_flush(Outbuf *buf)
359{
360 Eina_List *l;
361 RGBA_Image *im;
362 Outbuf_Region *obr;
363 void *ddraw_data;
364 int ddraw_width;
365 int ddraw_height;
366 int ddraw_pitch;
367 int ddraw_depth;
368
369 /* lock the back surface */
370 if (!(ddraw_data = evas_software_ddraw_lock(buf,
371 &ddraw_width,
372 &ddraw_height,
373 &ddraw_pitch,
374 &ddraw_depth)))
375 goto free_images;
376
377 /* copy safely the images that need to be drawn onto the back surface */
378 EINA_LIST_FOREACH(buf->priv.pending_writes, l, im)
379 {
380 DD_Output_Buffer *ddob;
381
382 obr = im->extended_info;
383 ddob = obr->ddob;
384 evas_software_ddraw_output_buffer_paste(ddob,
385 ddraw_data,
386 ddraw_width,
387 ddraw_height,
388 ddraw_pitch,
389 ddraw_depth,
390 obr->x,
391 obr->y);
392 }
393
394 /* unlock the back surface and flip the surface */
395 evas_software_ddraw_unlock_and_flip(buf);
396
397 free_images:
398 while (buf->priv.prev_pending_writes)
399 {
400 im = buf->priv.prev_pending_writes->data;
401 buf->priv.prev_pending_writes =
402 eina_list_remove_list(buf->priv.prev_pending_writes,
403 buf->priv.prev_pending_writes);
404 obr = im->extended_info;
405 evas_cache_image_drop(&im->cache_entry);
406 if (obr->ddob) _unfind_ddob(obr->ddob);
407/*
408 if (obr->ddob) evas_software_x11_x_output_buffer_free(obr->ddob);
409 */
410 free(obr);
411 }
412 buf->priv.prev_pending_writes = buf->priv.pending_writes;
413 buf->priv.pending_writes = NULL;
414
415 evas_common_cpu_end_opt();
416}
417
418void
419evas_software_ddraw_outbuf_idle_flush(Outbuf *buf)
420{
421 while (buf->priv.prev_pending_writes)
422 {
423 RGBA_Image *im;
424 Outbuf_Region *obr;
425
426 im = buf->priv.prev_pending_writes->data;
427 buf->priv.prev_pending_writes =
428 eina_list_remove_list(buf->priv.prev_pending_writes,
429 buf->priv.prev_pending_writes);
430 obr = im->extended_info;
431 evas_cache_image_drop((Image_Entry *)im);
432 if (obr->ddob) _unfind_ddob(obr->ddob);
433 free(obr);
434 }
435 _clear_ddob(0);
436}
437
438int
439evas_software_ddraw_outbuf_width_get(Outbuf *buf)
440{
441 return buf->width;
442}
443
444int
445evas_software_ddraw_outbuf_height_get(Outbuf *buf)
446{
447 return buf->height;
448}
449
450Outbuf_Depth
451evas_software_ddraw_outbuf_depth_get(Outbuf *buf)
452{
453 return buf->depth;
454}
455
456int
457evas_software_ddraw_outbuf_rot_get(Outbuf *buf)
458{
459 return buf->rot;
460}
diff --git a/libraries/evas/src/modules/engines/software_gdi/Evas_Engine_Software_Gdi.h b/libraries/evas/src/modules/engines/software_gdi/Evas_Engine_Software_Gdi.h
deleted file mode 100644
index deac5b2..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/Evas_Engine_Software_Gdi.h
+++ /dev/null
@@ -1,32 +0,0 @@
1#ifndef __EVAS_ENGINE_SOFTWARE_GDI_H__
2#define __EVAS_ENGINE_SOFTWARE_GDI_H__
3
4
5#define WIN32_LEAN_AND_MEAN
6#include <windows.h>
7#undef WIN32_LEAN_AND_MEAN
8
9
10typedef struct _Evas_Engine_Info_Software_Gdi Evas_Engine_Info_Software_Gdi;
11
12struct _Evas_Engine_Info_Software_Gdi
13{
14 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
15 /* at you and make nasty noises */
16 Evas_Engine_Info magic;
17
18 struct {
19 HWND window;
20 int depth;
21 int rotation;
22 unsigned int borderless : 1;
23 unsigned int fullscreen : 1;
24 unsigned int region : 1;
25 } info;
26
27 /* non-blocking or blocking mode */
28 Evas_Engine_Render_Mode render_mode;
29};
30
31
32#endif /* __EVAS_ENGINE_SOFTWARE_GDI_H__ */
diff --git a/libraries/evas/src/modules/engines/software_gdi/Makefile.am b/libraries/evas/src/modules/engines/software_gdi/Makefile.am
deleted file mode 100644
index ccb8084..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@EINA_CFLAGS@ \
10@FREETYPE_CFLAGS@ \
11@PIXMAN_CFLAGS@ \
12@evas_engine_software_gdi_cflags@
13
14if BUILD_ENGINE_SOFTWARE_GDI
15
16SOFTWARE_GDI_SOURCES = \
17evas_engine.c \
18evas_outbuf.c \
19evas_gdi_buffer.c \
20evas_gdi_main.c
21
22SOFTWARE_GDI_LIBADD = @evas_engine_software_gdi_libs@
23
24
25includes_HEADERS = Evas_Engine_Software_Gdi.h
26includesdir = $(includedir)/evas-@VMAJ@
27
28if !EVAS_STATIC_BUILD_SOFTWARE_GDI
29
30pkgdir = $(libdir)/evas/modules/engines/software_gdi/$(MODULE_ARCH)
31pkg_LTLIBRARIES = module.la
32module_la_SOURCES = $(SOFTWARE_GDI_SOURCES)
33module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_GDI_LIBADD)
34module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
35module_la_LIBTOOLFLAGS = --tag=disable-static
36
37else
38
39noinst_LTLIBRARIES = libevas_engine_software_gdi.la
40
41libevas_engine_software_gdi_la_SOURCES = $(SOFTWARE_GDI_SOURCES)
42libevas_engine_software_gdi_la_LIBADD = $(SOFTWARE_GDI_LIBADD)
43
44endif
45endif
46
47EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_gdi/Makefile.in b/libraries/evas/src/modules/engines/software_gdi/Makefile.in
deleted file mode 100644
index 507926d..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/Makefile.in
+++ /dev/null
@@ -1,842 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_gdi
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE@libevas_engine_software_gdi_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_gdi_la_SOURCES_DIST = evas_engine.c \
87 evas_outbuf.c evas_gdi_buffer.c evas_gdi_main.c
88@BUILD_ENGINE_SOFTWARE_GDI_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_SOFTWARE_GDI_TRUE@ evas_outbuf.lo \
90@BUILD_ENGINE_SOFTWARE_GDI_TRUE@ evas_gdi_buffer.lo \
91@BUILD_ENGINE_SOFTWARE_GDI_TRUE@ evas_gdi_main.lo
92@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE@am_libevas_engine_software_gdi_la_OBJECTS = $(am__objects_1)
93libevas_engine_software_gdi_la_OBJECTS = \
94 $(am_libevas_engine_software_gdi_la_OBJECTS)
95AM_V_lt = $(am__v_lt_$(V))
96am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
97am__v_lt_0 = --silent
98@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE@am_libevas_engine_software_gdi_la_rpath =
99@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la \
100@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@ $(am__DEPENDENCIES_1)
101am__module_la_SOURCES_DIST = evas_engine.c evas_outbuf.c \
102 evas_gdi_buffer.c evas_gdi_main.c
103@BUILD_ENGINE_SOFTWARE_GDI_TRUE@am__objects_2 = \
104@BUILD_ENGINE_SOFTWARE_GDI_TRUE@ module_la-evas_engine.lo \
105@BUILD_ENGINE_SOFTWARE_GDI_TRUE@ module_la-evas_outbuf.lo \
106@BUILD_ENGINE_SOFTWARE_GDI_TRUE@ module_la-evas_gdi_buffer.lo \
107@BUILD_ENGINE_SOFTWARE_GDI_TRUE@ module_la-evas_gdi_main.lo
108@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@am_module_la_OBJECTS = $(am__objects_2)
109module_la_OBJECTS = $(am_module_la_OBJECTS)
110module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
111 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
112 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
113@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@am_module_la_rpath = -rpath \
114@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@ $(pkgdir)
115DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
116depcomp = $(SHELL) $(top_srcdir)/depcomp
117am__depfiles_maybe = depfiles
118am__mv = mv -f
119COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
120 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
121LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
122 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
123 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
124 $(AM_CFLAGS) $(CFLAGS)
125AM_V_CC = $(am__v_CC_$(V))
126am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
127am__v_CC_0 = @echo " CC " $@;
128AM_V_at = $(am__v_at_$(V))
129am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
130am__v_at_0 = @
131CCLD = $(CC)
132LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
133 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
134 $(AM_LDFLAGS) $(LDFLAGS) -o $@
135AM_V_CCLD = $(am__v_CCLD_$(V))
136am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
137am__v_CCLD_0 = @echo " CCLD " $@;
138AM_V_GEN = $(am__v_GEN_$(V))
139am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
140am__v_GEN_0 = @echo " GEN " $@;
141SOURCES = $(libevas_engine_software_gdi_la_SOURCES) \
142 $(module_la_SOURCES)
143DIST_SOURCES = $(am__libevas_engine_software_gdi_la_SOURCES_DIST) \
144 $(am__module_la_SOURCES_DIST)
145am__includes_HEADERS_DIST = Evas_Engine_Software_Gdi.h
146HEADERS = $(includes_HEADERS)
147ETAGS = etags
148CTAGS = ctags
149DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
150ACLOCAL = @ACLOCAL@
151ALLOCA = @ALLOCA@
152AMTAR = @AMTAR@
153AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
154AR = @AR@
155AS = @AS@
156AUTOCONF = @AUTOCONF@
157AUTOHEADER = @AUTOHEADER@
158AUTOMAKE = @AUTOMAKE@
159AWK = @AWK@
160CC = @CC@
161CCDEPMODE = @CCDEPMODE@
162CFLAGS = @CFLAGS@
163CHECK_CFLAGS = @CHECK_CFLAGS@
164CHECK_LIBS = @CHECK_LIBS@
165CPP = @CPP@
166CPPFLAGS = @CPPFLAGS@
167CXX = @CXX@
168CXXCPP = @CXXCPP@
169CXXDEPMODE = @CXXDEPMODE@
170CXXFLAGS = @CXXFLAGS@
171CYGPATH_W = @CYGPATH_W@
172DEFS = @DEFS@
173DEPDIR = @DEPDIR@
174DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
175DIRECTFB_LIBS = @DIRECTFB_LIBS@
176DLLTOOL = @DLLTOOL@
177DSYMUTIL = @DSYMUTIL@
178DUMPBIN = @DUMPBIN@
179ECHO_C = @ECHO_C@
180ECHO_N = @ECHO_N@
181ECHO_T = @ECHO_T@
182ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
183ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
184EDB_CFLAGS = @EDB_CFLAGS@
185EDB_LIBS = @EDB_LIBS@
186EDJE_CFLAGS = @EDJE_CFLAGS@
187EDJE_LIBS = @EDJE_LIBS@
188EET_CFLAGS = @EET_CFLAGS@
189EET_LIBS = @EET_LIBS@
190EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
191EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
192EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
193EGREP = @EGREP@
194EINA_CFLAGS = @EINA_CFLAGS@
195EINA_LIBS = @EINA_LIBS@
196EVAS_CFLAGS = @EVAS_CFLAGS@
197EVAS_LIBS = @EVAS_LIBS@
198EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
199EVIL_CFLAGS = @EVIL_CFLAGS@
200EVIL_LIBS = @EVIL_LIBS@
201EXEEXT = @EXEEXT@
202EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
203EXOTIC_LIBS = @EXOTIC_LIBS@
204FGREP = @FGREP@
205FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
206FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
207FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
208FREETYPE_LIBS = @FREETYPE_LIBS@
209FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
210FRIBIDI_LIBS = @FRIBIDI_LIBS@
211GL_EET_CFLAGS = @GL_EET_CFLAGS@
212GL_EET_LIBS = @GL_EET_LIBS@
213GREP = @GREP@
214HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
215HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
216INSTALL = @INSTALL@
217INSTALL_DATA = @INSTALL_DATA@
218INSTALL_PROGRAM = @INSTALL_PROGRAM@
219INSTALL_SCRIPT = @INSTALL_SCRIPT@
220INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
221LD = @LD@
222LDFLAGS = @LDFLAGS@
223LIBOBJS = @LIBOBJS@
224LIBS = @LIBS@
225LIBTOOL = @LIBTOOL@
226LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
227LINEBREAK_LIBS = @LINEBREAK_LIBS@
228LIPO = @LIPO@
229LN_S = @LN_S@
230LTLIBOBJS = @LTLIBOBJS@
231MAKEINFO = @MAKEINFO@
232MKDIR_P = @MKDIR_P@
233MODULE_ARCH = @MODULE_ARCH@
234NM = @NM@
235NMEDIT = @NMEDIT@
236OBJC = @OBJC@
237OBJCDEPMODE = @OBJCDEPMODE@
238OBJCFLAGS = @OBJCFLAGS@
239OBJDUMP = @OBJDUMP@
240OBJEXT = @OBJEXT@
241OTOOL = @OTOOL@
242OTOOL64 = @OTOOL64@
243PACKAGE = @PACKAGE@
244PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
245PACKAGE_NAME = @PACKAGE_NAME@
246PACKAGE_STRING = @PACKAGE_STRING@
247PACKAGE_TARNAME = @PACKAGE_TARNAME@
248PACKAGE_URL = @PACKAGE_URL@
249PACKAGE_VERSION = @PACKAGE_VERSION@
250PATH_SEPARATOR = @PATH_SEPARATOR@
251PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
252PIXMAN_LIBS = @PIXMAN_LIBS@
253PKG_CONFIG = @PKG_CONFIG@
254PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
255PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
256PNG_CFLAGS = @PNG_CFLAGS@
257PNG_LIBS = @PNG_LIBS@
258RANLIB = @RANLIB@
259SDL_CFLAGS = @SDL_CFLAGS@
260SDL_LIBS = @SDL_LIBS@
261SED = @SED@
262SET_MAKE = @SET_MAKE@
263SHELL = @SHELL@
264SHM_OPEN_LINK = @SHM_OPEN_LINK@
265STRIP = @STRIP@
266SVG_CFLAGS = @SVG_CFLAGS@
267SVG_LIBS = @SVG_LIBS@
268VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
269VALGRIND_LIBS = @VALGRIND_LIBS@
270VERSION = @VERSION@
271VMAJ = @VMAJ@
272WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
273WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
274XCB_CFLAGS = @XCB_CFLAGS@
275XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
276XCB_GL_LIBS = @XCB_GL_LIBS@
277XCB_LIBS = @XCB_LIBS@
278XEXT_CFLAGS = @XEXT_CFLAGS@
279XEXT_LIBS = @XEXT_LIBS@
280XMKMF = @XMKMF@
281X_CFLAGS = @X_CFLAGS@
282X_EXTRA_LIBS = @X_EXTRA_LIBS@
283X_LIBS = @X_LIBS@
284X_PRE_LIBS = @X_PRE_LIBS@
285abs_builddir = @abs_builddir@
286abs_srcdir = @abs_srcdir@
287abs_top_builddir = @abs_top_builddir@
288abs_top_srcdir = @abs_top_srcdir@
289ac_ct_CC = @ac_ct_CC@
290ac_ct_CXX = @ac_ct_CXX@
291ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
292ac_ct_OBJC = @ac_ct_OBJC@
293altivec_cflags = @altivec_cflags@
294am__include = @am__include@
295am__leading_dot = @am__leading_dot@
296am__quote = @am__quote@
297am__tar = @am__tar@
298am__untar = @am__untar@
299bindir = @bindir@
300build = @build@
301build_alias = @build_alias@
302build_cpu = @build_cpu@
303build_os = @build_os@
304build_vendor = @build_vendor@
305builddir = @builddir@
306datadir = @datadir@
307datarootdir = @datarootdir@
308dlopen_libs = @dlopen_libs@
309docdir = @docdir@
310dvidir = @dvidir@
311edje_cc = @edje_cc@
312efl_doxygen = @efl_doxygen@
313efl_have_doxygen = @efl_have_doxygen@
314evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
315evas_engine_buffer_libs = @evas_engine_buffer_libs@
316evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
317evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
318evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
319evas_engine_directfb_libs = @evas_engine_directfb_libs@
320evas_engine_fb_cflags = @evas_engine_fb_cflags@
321evas_engine_fb_libs = @evas_engine_fb_libs@
322evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
323evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
324evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
325evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
326evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
327evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
328evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
329evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
330evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
331evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
332evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
333evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
334evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
335evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
336evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
337evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
338evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
339evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
340evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
341evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
342evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
343evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
344evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
345evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
346evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
347evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
348evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
349evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
350evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
351evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
352evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
353evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
354evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
355evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
356evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
357evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
358evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
359evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
360evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
361evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
362evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
363evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
364evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
365evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
366evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
367evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
368evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
369evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
370evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
371evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
372evas_image_loader_png_libs = @evas_image_loader_png_libs@
373evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
374evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
375evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
376evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
377evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
378evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
379evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
380evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
381evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
382evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
383evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
384evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
385exec_prefix = @exec_prefix@
386have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
387have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
388have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
389have_evas_engine_software_x11 = @have_evas_engine_software_x11@
390have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
391have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
392have_lcov = @have_lcov@
393host = @host@
394host_alias = @host_alias@
395host_cpu = @host_cpu@
396host_os = @host_os@
397host_vendor = @host_vendor@
398htmldir = @htmldir@
399includedir = @includedir@
400infodir = @infodir@
401install_sh = @install_sh@
402libdir = @libdir@
403libexecdir = @libexecdir@
404localedir = @localedir@
405localstatedir = @localstatedir@
406lt_ECHO = @lt_ECHO@
407lt_enable_auto_import = @lt_enable_auto_import@
408mandir = @mandir@
409mkdir_p = @mkdir_p@
410oldincludedir = @oldincludedir@
411pdfdir = @pdfdir@
412pkgconfig_requires_private = @pkgconfig_requires_private@
413prefix = @prefix@
414program_transform_name = @program_transform_name@
415psdir = @psdir@
416pthread_cflags = @pthread_cflags@
417pthread_libs = @pthread_libs@
418release_info = @release_info@
419requirement_evas = @requirement_evas@
420sbindir = @sbindir@
421sharedstatedir = @sharedstatedir@
422srcdir = @srcdir@
423sysconfdir = @sysconfdir@
424target_alias = @target_alias@
425top_build_prefix = @top_build_prefix@
426top_builddir = @top_builddir@
427top_srcdir = @top_srcdir@
428version_info = @version_info@
429MAINTAINERCLEANFILES = Makefile.in
430AM_CPPFLAGS = \
431-I. \
432-I$(top_srcdir)/src/lib \
433-I$(top_srcdir)/src/lib/include \
434-I$(top_srcdir)/src/modules/engines \
435@EINA_CFLAGS@ \
436@FREETYPE_CFLAGS@ \
437@PIXMAN_CFLAGS@ \
438@evas_engine_software_gdi_cflags@
439
440@BUILD_ENGINE_SOFTWARE_GDI_TRUE@SOFTWARE_GDI_SOURCES = \
441@BUILD_ENGINE_SOFTWARE_GDI_TRUE@evas_engine.c \
442@BUILD_ENGINE_SOFTWARE_GDI_TRUE@evas_outbuf.c \
443@BUILD_ENGINE_SOFTWARE_GDI_TRUE@evas_gdi_buffer.c \
444@BUILD_ENGINE_SOFTWARE_GDI_TRUE@evas_gdi_main.c
445
446@BUILD_ENGINE_SOFTWARE_GDI_TRUE@SOFTWARE_GDI_LIBADD = @evas_engine_software_gdi_libs@
447@BUILD_ENGINE_SOFTWARE_GDI_TRUE@includes_HEADERS = Evas_Engine_Software_Gdi.h
448@BUILD_ENGINE_SOFTWARE_GDI_TRUE@includesdir = $(includedir)/evas-@VMAJ@
449@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_gdi/$(MODULE_ARCH)
450@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@pkg_LTLIBRARIES = module.la
451@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@module_la_SOURCES = $(SOFTWARE_GDI_SOURCES)
452@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_GDI_LIBADD)
453@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
454@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
455@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE@noinst_LTLIBRARIES = libevas_engine_software_gdi.la
456@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE@libevas_engine_software_gdi_la_SOURCES = $(SOFTWARE_GDI_SOURCES)
457@BUILD_ENGINE_SOFTWARE_GDI_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_GDI_TRUE@libevas_engine_software_gdi_la_LIBADD = $(SOFTWARE_GDI_LIBADD)
458EXTRA_DIST = evas_engine.h
459all: all-am
460
461.SUFFIXES:
462.SUFFIXES: .c .lo .o .obj
463$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
464 @for dep in $?; do \
465 case '$(am__configure_deps)' in \
466 *$$dep*) \
467 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
468 && { if test -f $@; then exit 0; else break; fi; }; \
469 exit 1;; \
470 esac; \
471 done; \
472 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_gdi/Makefile'; \
473 $(am__cd) $(top_srcdir) && \
474 $(AUTOMAKE) --gnu src/modules/engines/software_gdi/Makefile
475.PRECIOUS: Makefile
476Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
477 @case '$?' in \
478 *config.status*) \
479 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
480 *) \
481 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
482 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
483 esac;
484
485$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
486 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
487
488$(top_srcdir)/configure: $(am__configure_deps)
489 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
490$(ACLOCAL_M4): $(am__aclocal_m4_deps)
491 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
492$(am__aclocal_m4_deps):
493
494clean-noinstLTLIBRARIES:
495 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
496 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
497 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
498 test "$$dir" != "$$p" || dir=.; \
499 echo "rm -f \"$${dir}/so_locations\""; \
500 rm -f "$${dir}/so_locations"; \
501 done
502install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
503 @$(NORMAL_INSTALL)
504 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
505 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
506 list2=; for p in $$list; do \
507 if test -f $$p; then \
508 list2="$$list2 $$p"; \
509 else :; fi; \
510 done; \
511 test -z "$$list2" || { \
512 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
513 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
514 }
515
516uninstall-pkgLTLIBRARIES:
517 @$(NORMAL_UNINSTALL)
518 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
519 for p in $$list; do \
520 $(am__strip_dir) \
521 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
522 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
523 done
524
525clean-pkgLTLIBRARIES:
526 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
527 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
528 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
529 test "$$dir" != "$$p" || dir=.; \
530 echo "rm -f \"$${dir}/so_locations\""; \
531 rm -f "$${dir}/so_locations"; \
532 done
533libevas_engine_software_gdi.la: $(libevas_engine_software_gdi_la_OBJECTS) $(libevas_engine_software_gdi_la_DEPENDENCIES)
534 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_gdi_la_rpath) $(libevas_engine_software_gdi_la_OBJECTS) $(libevas_engine_software_gdi_la_LIBADD) $(LIBS)
535module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
536 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
537
538mostlyclean-compile:
539 -rm -f *.$(OBJEXT)
540
541distclean-compile:
542 -rm -f *.tab.c
543
544@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
545@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gdi_buffer.Plo@am__quote@
546@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_gdi_main.Plo@am__quote@
547@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
548@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
549@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_gdi_buffer.Plo@am__quote@
550@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_gdi_main.Plo@am__quote@
551@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
552
553.c.o:
554@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
555@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
556@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
557@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
558@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
559@am__fastdepCC_FALSE@ $(COMPILE) -c $<
560
561.c.obj:
562@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
563@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
564@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
565@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
566@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
567@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
568
569.c.lo:
570@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
571@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
572@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
573@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
574@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
575@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
576
577module_la-evas_engine.lo: evas_engine.c
578@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
579@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
580@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
581@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
582@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
583@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
584
585module_la-evas_outbuf.lo: evas_outbuf.c
586@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
587@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
588@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
589@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
590@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
591@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
592
593module_la-evas_gdi_buffer.lo: evas_gdi_buffer.c
594@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_gdi_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_gdi_buffer.Tpo -c -o module_la-evas_gdi_buffer.lo `test -f 'evas_gdi_buffer.c' || echo '$(srcdir)/'`evas_gdi_buffer.c
595@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_gdi_buffer.Tpo $(DEPDIR)/module_la-evas_gdi_buffer.Plo
596@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
597@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_gdi_buffer.c' object='module_la-evas_gdi_buffer.lo' libtool=yes @AMDEPBACKSLASH@
598@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
599@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_gdi_buffer.lo `test -f 'evas_gdi_buffer.c' || echo '$(srcdir)/'`evas_gdi_buffer.c
600
601module_la-evas_gdi_main.lo: evas_gdi_main.c
602@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_gdi_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_gdi_main.Tpo -c -o module_la-evas_gdi_main.lo `test -f 'evas_gdi_main.c' || echo '$(srcdir)/'`evas_gdi_main.c
603@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_gdi_main.Tpo $(DEPDIR)/module_la-evas_gdi_main.Plo
604@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
605@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_gdi_main.c' object='module_la-evas_gdi_main.lo' libtool=yes @AMDEPBACKSLASH@
606@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
607@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_gdi_main.lo `test -f 'evas_gdi_main.c' || echo '$(srcdir)/'`evas_gdi_main.c
608
609mostlyclean-libtool:
610 -rm -f *.lo
611
612clean-libtool:
613 -rm -rf .libs _libs
614install-includesHEADERS: $(includes_HEADERS)
615 @$(NORMAL_INSTALL)
616 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
617 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
618 for p in $$list; do \
619 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
620 echo "$$d$$p"; \
621 done | $(am__base_list) | \
622 while read files; do \
623 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
624 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
625 done
626
627uninstall-includesHEADERS:
628 @$(NORMAL_UNINSTALL)
629 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
630 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
631 test -n "$$files" || exit 0; \
632 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
633 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
634
635ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
636 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
637 unique=`for i in $$list; do \
638 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
639 done | \
640 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
641 END { if (nonempty) { for (i in files) print i; }; }'`; \
642 mkid -fID $$unique
643tags: TAGS
644
645TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
646 $(TAGS_FILES) $(LISP)
647 set x; \
648 here=`pwd`; \
649 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
650 unique=`for i in $$list; do \
651 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
652 done | \
653 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
654 END { if (nonempty) { for (i in files) print i; }; }'`; \
655 shift; \
656 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
657 test -n "$$unique" || unique=$$empty_fix; \
658 if test $$# -gt 0; then \
659 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
660 "$$@" $$unique; \
661 else \
662 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
663 $$unique; \
664 fi; \
665 fi
666ctags: CTAGS
667CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
668 $(TAGS_FILES) $(LISP)
669 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
670 unique=`for i in $$list; do \
671 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
672 done | \
673 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
674 END { if (nonempty) { for (i in files) print i; }; }'`; \
675 test -z "$(CTAGS_ARGS)$$unique" \
676 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
677 $$unique
678
679GTAGS:
680 here=`$(am__cd) $(top_builddir) && pwd` \
681 && $(am__cd) $(top_srcdir) \
682 && gtags -i $(GTAGS_ARGS) "$$here"
683
684distclean-tags:
685 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
686
687distdir: $(DISTFILES)
688 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
689 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
690 list='$(DISTFILES)'; \
691 dist_files=`for file in $$list; do echo $$file; done | \
692 sed -e "s|^$$srcdirstrip/||;t" \
693 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
694 case $$dist_files in \
695 */*) $(MKDIR_P) `echo "$$dist_files" | \
696 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
697 sort -u` ;; \
698 esac; \
699 for file in $$dist_files; do \
700 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
701 if test -d $$d/$$file; then \
702 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
703 if test -d "$(distdir)/$$file"; then \
704 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
705 fi; \
706 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
707 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
708 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
709 fi; \
710 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
711 else \
712 test -f "$(distdir)/$$file" \
713 || cp -p $$d/$$file "$(distdir)/$$file" \
714 || exit 1; \
715 fi; \
716 done
717check-am: all-am
718check: check-am
719all-am: Makefile $(LTLIBRARIES) $(HEADERS)
720installdirs:
721 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
722 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
723 done
724install: install-am
725install-exec: install-exec-am
726install-data: install-data-am
727uninstall: uninstall-am
728
729install-am: all-am
730 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
731
732installcheck: installcheck-am
733install-strip:
734 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
735 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
736 `test -z '$(STRIP)' || \
737 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
738mostlyclean-generic:
739
740clean-generic:
741
742distclean-generic:
743 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
744 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
745
746maintainer-clean-generic:
747 @echo "This command is intended for maintainers to use"
748 @echo "it deletes files that may require special tools to rebuild."
749 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
750clean: clean-am
751
752clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
753 clean-pkgLTLIBRARIES mostlyclean-am
754
755distclean: distclean-am
756 -rm -rf ./$(DEPDIR)
757 -rm -f Makefile
758distclean-am: clean-am distclean-compile distclean-generic \
759 distclean-tags
760
761dvi: dvi-am
762
763dvi-am:
764
765html: html-am
766
767html-am:
768
769info: info-am
770
771info-am:
772
773install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
774
775install-dvi: install-dvi-am
776
777install-dvi-am:
778
779install-exec-am:
780
781install-html: install-html-am
782
783install-html-am:
784
785install-info: install-info-am
786
787install-info-am:
788
789install-man:
790
791install-pdf: install-pdf-am
792
793install-pdf-am:
794
795install-ps: install-ps-am
796
797install-ps-am:
798
799installcheck-am:
800
801maintainer-clean: maintainer-clean-am
802 -rm -rf ./$(DEPDIR)
803 -rm -f Makefile
804maintainer-clean-am: distclean-am maintainer-clean-generic
805
806mostlyclean: mostlyclean-am
807
808mostlyclean-am: mostlyclean-compile mostlyclean-generic \
809 mostlyclean-libtool
810
811pdf: pdf-am
812
813pdf-am:
814
815ps: ps-am
816
817ps-am:
818
819uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
820
821.MAKE: install-am install-strip
822
823.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
824 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
825 ctags distclean distclean-compile distclean-generic \
826 distclean-libtool distclean-tags distdir dvi dvi-am html \
827 html-am info info-am install install-am install-data \
828 install-data-am install-dvi install-dvi-am install-exec \
829 install-exec-am install-html install-html-am \
830 install-includesHEADERS install-info install-info-am \
831 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
832 install-ps install-ps-am install-strip installcheck \
833 installcheck-am installdirs maintainer-clean \
834 maintainer-clean-generic mostlyclean mostlyclean-compile \
835 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
836 tags uninstall uninstall-am uninstall-includesHEADERS \
837 uninstall-pkgLTLIBRARIES
838
839
840# Tell versions [3.59,3.63) of GNU make to not export all variables.
841# Otherwise a system limit (for SysV at least) may be exceeded.
842.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_gdi/evas_engine.c b/libraries/evas/src/modules/engines/software_gdi/evas_engine.c
deleted file mode 100644
index 414e880..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/evas_engine.c
+++ /dev/null
@@ -1,387 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_Gdi.h"
5
6int _evas_engine_soft_gdi_log_dom = -1;
7/* function tables - filled in later (func and parent func) */
8static Evas_Func func, pfunc;
9
10/* engine struct data */
11typedef struct _Render_Engine Render_Engine;
12
13struct _Render_Engine
14{
15 Tilebuf *tb;
16 Outbuf *ob;
17 Tilebuf_Rect *rects;
18 Eina_Inlist *cur_rect;
19 int end : 1;
20};
21
22
23static void *
24_output_setup(int width,
25 int height,
26 int rot,
27 HWND window,
28 int depth,
29 unsigned int borderless,
30 unsigned int fullscreen,
31 unsigned int region)
32{
33 Render_Engine *re;
34
35 re = calloc(1, sizeof(Render_Engine));
36 if (!re)
37 return NULL;
38
39 /* if we haven't initialized - init (automatic abort if already done) */
40 evas_common_cpu_init();
41
42 evas_common_blend_init();
43 evas_common_image_init();
44 evas_common_convert_init();
45 evas_common_scale_init();
46 evas_common_rectangle_init();
47 evas_common_polygon_init();
48 evas_common_line_init();
49 evas_common_font_init();
50 evas_common_draw_init();
51 evas_common_tilebuf_init();
52
53 evas_software_gdi_outbuf_init();
54
55 if (width <= 0)
56 width = 1;
57 if (height <= 0)
58 height = 1;
59
60 re->ob = evas_software_gdi_outbuf_setup(width, height, rot,
61 OUTBUF_DEPTH_INHERIT,
62 window, depth, borderless, fullscreen, region,
63 0, 0);
64 if (!re->ob)
65 {
66 free(re);
67 return NULL;
68 }
69
70 /* for updates return 1 big buffer, but only use portions of it, also cache
71 it and keep it around until an idle_flush */
72 /* disable for now - i am hunting down why some expedite tests are slower,
73 * as well as shaped stuff is broken and probable non-32bpp is broken as
74 * convert funcs dont do the right thing
75 *
76 re->ob->onebuf = 1;
77 */
78
79 re->tb = evas_common_tilebuf_new(width, height);
80 if (!re->tb)
81 {
82 evas_software_gdi_outbuf_free(re->ob);
83 free(re);
84 return NULL;
85 }
86 /* in preliminary tests 16x16 gave highest framerates */
87 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
88
89 return re;
90}
91
92
93/* engine api this module provides */
94
95static void *
96eng_info(Evas *e __UNUSED__)
97{
98 Evas_Engine_Info_Software_Gdi *info;
99 info = calloc(1, sizeof(Evas_Engine_Info_Software_Gdi));
100 if (!info) return NULL;
101 info->magic.magic = rand();
102 return info;
103}
104
105static void
106eng_info_free(Evas *e __UNUSED__, void *info)
107{
108 Evas_Engine_Info_Software_Gdi *in;
109 in = (Evas_Engine_Info_Software_Gdi *)info;
110 free(in);
111}
112
113static int
114eng_setup(Evas *e, void *in)
115{
116 Render_Engine *re;
117 Evas_Engine_Info_Software_Gdi *info;
118
119 info = (Evas_Engine_Info_Software_Gdi *)in;
120 if (!e->engine.data.output)
121 e->engine.data.output = _output_setup(e->output.w,
122 e->output.h,
123 info->info.rotation,
124 info->info.window,
125 info->info.depth,
126 info->info.borderless,
127 info->info.fullscreen,
128 info->info.region);
129 else
130 {
131 int ponebuf = 0;
132
133 re = e->engine.data.output;
134 ponebuf = re->ob->onebuf;
135 evas_software_gdi_outbuf_free(re->ob);
136 re->ob = evas_software_gdi_outbuf_setup(e->output.w,
137 e->output.h,
138 info->info.rotation,
139 OUTBUF_DEPTH_INHERIT,
140 info->info.window,
141 info->info.depth,
142 info->info.borderless,
143 info->info.fullscreen,
144 info->info.region,
145 0, 0);
146 re->ob->onebuf = ponebuf;
147 }
148 if (!e->engine.data.output) return 0;
149 if (!e->engine.data.context)
150 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
151
152 re = e->engine.data.output;
153
154 return 1;
155}
156
157static void
158eng_output_free(void *data)
159{
160 Render_Engine *re;
161
162 if (!data) return;
163
164 re = (Render_Engine *)data;
165 evas_software_gdi_outbuf_free(re->ob);
166 evas_common_tilebuf_free(re->tb);
167 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
168 free(re);
169
170 evas_common_font_shutdown();
171 evas_common_image_shutdown();
172}
173
174static void
175eng_output_resize(void *data, int width, int height)
176{
177 Render_Engine *re;
178
179 re = (Render_Engine *)data;
180 evas_software_gdi_outbuf_reconfigure(re->ob,
181 width,
182 height,
183 evas_software_gdi_outbuf_rot_get(re->ob),
184 OUTBUF_DEPTH_INHERIT);
185 evas_common_tilebuf_free(re->tb);
186 re->tb = evas_common_tilebuf_new(width, height);
187 if (re->tb)
188 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
189}
190
191static void
192eng_output_tile_size_set(void *data, int w, int h)
193{
194 Render_Engine *re;
195
196 re = (Render_Engine *)data;
197 evas_common_tilebuf_set_tile_size(re->tb, w, h);
198}
199
200static void
201eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
202{
203 Render_Engine *re;
204
205 re = (Render_Engine *)data;
206 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
207}
208
209static void
210eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
211{
212 Render_Engine *re;
213
214 re = (Render_Engine *)data;
215 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
216}
217
218static void
219eng_output_redraws_clear(void *data)
220{
221 Render_Engine *re;
222
223 re = (Render_Engine *)data;
224 evas_common_tilebuf_clear(re->tb);
225}
226
227static void *
228eng_output_redraws_next_update_get(void *data,
229 int *x,
230 int *y,
231 int *w,
232 int *h,
233 int *cx,
234 int *cy,
235 int *cw,
236 int *ch)
237{
238 Render_Engine *re;
239 RGBA_Image *surface;
240 Tilebuf_Rect *rect;
241 int ux;
242 int uy;
243 int uw;
244 int uh;
245
246 re = (Render_Engine *)data;
247 if (re->end)
248 {
249 re->end = 0;
250 return NULL;
251 }
252 if (!re->rects)
253 {
254 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
255 re->cur_rect = EINA_INLIST_GET(re->rects);
256 }
257 if (!re->cur_rect) return NULL;
258 rect = (Tilebuf_Rect *)re->cur_rect;
259 ux = rect->x;
260 uy = rect->y;
261 uw = rect->w;
262 uh = rect->h;
263 re->cur_rect = re->cur_rect->next;
264 if (!re->cur_rect)
265 {
266 evas_common_tilebuf_free_render_rects(re->rects);
267 re->rects = NULL;
268 re->end = 1;
269 }
270
271 surface = evas_software_gdi_outbuf_new_region_for_update(re->ob,
272 ux,
273 uy,
274 uw,
275 uh,
276 cx,
277 cy,
278 cw,
279 ch);
280
281 *x = ux;
282 *y = uy;
283 *w = uw;
284 *h = uh;
285
286 return surface;
287}
288
289static void
290eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
291{
292 Render_Engine *re;
293
294 re = (Render_Engine *)data;
295#ifdef BUILD_PIPE_RENDER
296 evas_common_pipe_map_begin(surface);
297#endif
298 evas_software_gdi_outbuf_push_updated_region(re->ob, surface, x, y, w, h);
299 evas_software_gdi_outbuf_free_region_for_update(re->ob, surface);
300 evas_common_cpu_end_opt();
301}
302
303static void
304eng_output_flush(void *data)
305{
306 Render_Engine *re;
307
308 re = (Render_Engine *)data;
309 evas_software_gdi_outbuf_flush(re->ob);
310}
311
312static void
313eng_output_idle_flush(void *data)
314{
315 Render_Engine *re;
316
317 re = (Render_Engine *)data;
318 evas_software_gdi_outbuf_idle_flush(re->ob);
319}
320
321static Eina_Bool
322eng_canvas_alpha_get(void *data, void *context)
323{
324 return EINA_FALSE;
325}
326
327/* module advertising code */
328static int
329module_open(Evas_Module *em)
330{
331 if (!em) return 0;
332 /* get whatever engine module we inherit from */
333 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
334
335 _evas_engine_soft_gdi_log_dom = eina_log_domain_register
336 ("evas-software_gdi", EVAS_DEFAULT_LOG_COLOR);
337 if (_evas_engine_soft_gdi_log_dom < 0)
338 {
339 EINA_LOG_ERR("Can not create a module log domain.");
340 return 0;
341 }
342 /* store it for later use */
343 func = pfunc;
344 /* now to override methods */
345#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
346 ORD(info);
347 ORD(info_free);
348 ORD(setup);
349 ORD(canvas_alpha_get);
350 ORD(output_free);
351 ORD(output_resize);
352 ORD(output_tile_size_set);
353 ORD(output_redraws_rect_add);
354 ORD(output_redraws_rect_del);
355 ORD(output_redraws_clear);
356 ORD(output_redraws_next_update_get);
357 ORD(output_redraws_next_update_push);
358 ORD(output_flush);
359 ORD(output_idle_flush);
360 /* now advertise out own api */
361 em->functions = (void *)(&func);
362 return 1;
363}
364
365static void
366module_close(Evas_Module *em)
367{
368 eina_log_domain_unregister(_evas_engine_soft_gdi_log_dom);
369 _evas_engine_soft_gdi_log_dom = -1;
370}
371
372static Evas_Module_Api evas_modapi =
373{
374 EVAS_MODULE_API_VERSION,
375 "software_gdi",
376 "none",
377 {
378 module_open,
379 module_close
380 }
381};
382
383EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_gdi);
384
385#ifndef EVAS_STATIC_BUILD_SOFTWARE_GDI
386EVAS_EINA_MODULE_DEFINE(engine, software_gdi);
387#endif
diff --git a/libraries/evas/src/modules/engines/software_gdi/evas_engine.h b/libraries/evas/src/modules/engines/software_gdi/evas_engine.h
deleted file mode 100644
index b8ddc85..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/evas_engine.h
+++ /dev/null
@@ -1,209 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4
5#define WIN32_LEAN_AND_MEAN
6#include <windows.h>
7#undef WIN32_LEAN_AND_MEAN
8
9extern int _evas_engine_soft_gdi_log_dom;
10
11#ifdef ERR
12# undef ERR
13#endif
14#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft_gdi_log_dom, __VA_ARGS__)
15
16#ifdef DBG
17# undef DBG
18#endif
19#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft_gdi_log_dom, __VA_ARGS__)
20
21#ifdef INF
22# undef INF
23#endif
24#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft_gdi_log_dom, __VA_ARGS__)
25
26#ifdef WRN
27# undef WRN
28#endif
29#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft_gdi_log_dom, __VA_ARGS__)
30
31#ifdef CRIT
32# undef CRIT
33#endif
34#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft_gdi_log_dom, __VA_ARGS__)
35
36typedef enum _Outbuf_Depth Outbuf_Depth;
37
38enum _Outbuf_Depth
39{
40 OUTBUF_DEPTH_NONE,
41 OUTBUF_DEPTH_INHERIT,
42 OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,
43 OUTBUF_DEPTH_RGB_32BPP_888_8888,
44 OUTBUF_DEPTH_LAST
45};
46
47typedef struct BITMAPINFO_GDI BITMAPINFO_GDI;
48typedef struct _Outbuf Outbuf;
49typedef struct _Outbuf_Region Outbuf_Region;
50typedef struct _Gdi_Output_Buffer Gdi_Output_Buffer;
51
52struct BITMAPINFO_GDI
53{
54 BITMAPINFOHEADER bih;
55 DWORD masks[3];
56};
57
58struct _Outbuf
59{
60 Outbuf_Depth depth;
61 int width;
62 int height;
63 int rot;
64 int onebuf;
65
66 struct {
67 Convert_Pal *pal;
68 struct {
69 BITMAPINFO_GDI *bitmap_info;
70 HWND window;
71 HDC dc;
72 HRGN regions;
73 int depth;
74 unsigned char borderless : 1;
75 unsigned char fullscreen : 1;
76 unsigned char region : 1;
77 } gdi;
78
79 /* 1 big buffer for updates - flush on idle_flush */
80 RGBA_Image *onebuf;
81 Eina_List *onebuf_regions;
82
83 /* a list of pending regions to write to the target */
84 Eina_List *pending_writes;
85 /* a list of previous frame pending regions to write to the target */
86 Eina_List *prev_pending_writes;
87
88 unsigned char mask_dither : 1;
89 unsigned char destination_alpha : 1;
90 unsigned char debug : 1;
91 unsigned char synced : 1;
92
93 unsigned char region_built : 1;
94 } priv;
95};
96
97struct _Outbuf_Region
98{
99 Gdi_Output_Buffer *gdiob;
100 int x;
101 int y;
102 int width;
103 int height;
104};
105
106struct _Gdi_Output_Buffer
107{
108 BITMAPINFO_GDI *bitmap_info;
109 HBITMAP bitmap;
110 HDC dc;
111 int width;
112 int height;
113 void *data;
114 int depth;
115 int pitch;
116 int psize;
117};
118
119/* evas_gdi_main.c */
120
121int evas_software_gdi_init (HWND window,
122 int depth,
123 unsigned int borderless,
124 unsigned int fullscreen,
125 unsigned int region,
126 Outbuf *buf);
127
128void evas_software_gdi_shutdown(Outbuf *buf);
129
130void evas_software_gdi_bitmap_resize(Outbuf *buf);
131
132/* evas_gdi_buffer.c */
133
134Gdi_Output_Buffer *evas_software_gdi_output_buffer_new(HDC dc,
135 BITMAPINFO_GDI *bitmap_info,
136 int depth,
137 int width,
138 int height,
139 void *data);
140
141void evas_software_gdi_output_buffer_free(Gdi_Output_Buffer *gdiob);
142
143void evas_software_gdi_output_buffer_paste(Gdi_Output_Buffer *gdiob,
144 int x,
145 int y);
146
147DATA8 *evas_software_gdi_output_buffer_data(Gdi_Output_Buffer *gdiob,
148 int *pitch);
149
150int evas_software_gdi_output_buffer_depth(Gdi_Output_Buffer *gdiob);
151
152/* evas_outbuf.c */
153
154void evas_software_gdi_outbuf_init(void);
155
156void evas_software_gdi_outbuf_free(Outbuf *buf);
157
158Outbuf *evas_software_gdi_outbuf_setup(int width,
159 int height,
160 int rotation,
161 Outbuf_Depth depth,
162 HWND window,
163 int w_depth,
164 unsigned int borderless,
165 unsigned int fullscreen,
166 unsigned int region,
167 int mask_dither,
168 int destination_alpha);
169
170void evas_software_gdi_outbuf_reconfigure(Outbuf *buf,
171 int width,
172 int height,
173 int rotation,
174 Outbuf_Depth depth);
175
176RGBA_Image *evas_software_gdi_outbuf_new_region_for_update(Outbuf *buf,
177 int x,
178 int y,
179 int w,
180 int h,
181 int *cx,
182 int *cy,
183 int *cw,
184 int *ch);
185
186void evas_software_gdi_outbuf_push_updated_region(Outbuf *buf,
187 RGBA_Image *update,
188 int x,
189 int y,
190 int w,
191 int h);
192
193void evas_software_gdi_outbuf_free_region_for_update(Outbuf *buf,
194 RGBA_Image *update);
195
196void evas_software_gdi_outbuf_flush(Outbuf *buf);
197
198void evas_software_gdi_outbuf_idle_flush(Outbuf *buf);
199
200int evas_software_gdi_outbuf_width_get(Outbuf *buf);
201
202int evas_software_gdi_outbuf_height_get(Outbuf *buf);
203
204Outbuf_Depth evas_software_gdi_outbuf_depth_get(Outbuf *buf);
205
206int evas_software_gdi_outbuf_rot_get(Outbuf *buf);
207
208
209#endif /* EVAS_ENGINE_H */
diff --git a/libraries/evas/src/modules/engines/software_gdi/evas_gdi_buffer.c b/libraries/evas/src/modules/engines/software_gdi/evas_gdi_buffer.c
deleted file mode 100644
index 66a5abf..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/evas_gdi_buffer.c
+++ /dev/null
@@ -1,88 +0,0 @@
1#include <string.h>
2
3#include "evas_common.h"
4#include "evas_engine.h"
5
6Gdi_Output_Buffer *
7evas_software_gdi_output_buffer_new(HDC dc,
8 BITMAPINFO_GDI *bitmap_info,
9 int depth,
10 int width,
11 int height,
12 void *data)
13{
14 Gdi_Output_Buffer *gdiob;
15
16 gdiob = calloc(1, sizeof(Gdi_Output_Buffer));
17 if (!gdiob) return NULL;
18
19 if (!data)
20 {
21 bitmap_info->bih.biWidth = width;
22 bitmap_info->bih.biHeight = -height;
23 bitmap_info->bih.biSizeImage = (depth >> 3) * width * height;
24 gdiob->bitmap = CreateDIBSection(dc,
25 (const BITMAPINFO *)bitmap_info,
26 DIB_RGB_COLORS,
27 (void **)(&data),
28 NULL,
29 0);
30 if (!gdiob->bitmap)
31 {
32 free(gdiob);
33 return NULL;
34 }
35 }
36
37 gdiob->bitmap_info = bitmap_info;
38 gdiob->dc = dc;
39 gdiob->data = data;
40 gdiob->width = width;
41 gdiob->height = height;
42 gdiob->depth = depth;
43 gdiob->pitch = width * (depth >> 3);
44/* gdiob->psize = gdiob->pitch * height; */
45
46 return gdiob;
47}
48
49void
50evas_software_gdi_output_buffer_free(Gdi_Output_Buffer *gdiob)
51{
52 DeleteObject(gdiob->bitmap);
53 free(gdiob);
54}
55
56void
57evas_software_gdi_output_buffer_paste(Gdi_Output_Buffer *gdiob,
58 int x,
59 int y)
60{
61 HDC dc;
62
63 dc = CreateCompatibleDC(gdiob->dc);
64 if (!dc)
65 return;
66 SelectObject(dc, gdiob->bitmap);
67 BitBlt(gdiob->dc,
68 x, y,
69 gdiob->width, gdiob->height,
70 dc,
71 0, 0,
72 SRCCOPY);
73 DeleteDC(dc);
74}
75
76DATA8 *
77evas_software_gdi_output_buffer_data(Gdi_Output_Buffer *gdiob,
78 int *pitch)
79{
80 if (pitch) *pitch = gdiob->pitch;
81 return gdiob->data;
82}
83
84int
85evas_software_gdi_output_buffer_depth(Gdi_Output_Buffer *gdiob)
86{
87 return gdiob->depth;
88}
diff --git a/libraries/evas/src/modules/engines/software_gdi/evas_gdi_main.c b/libraries/evas/src/modules/engines/software_gdi/evas_gdi_main.c
deleted file mode 100644
index 4a63959..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/evas_gdi_main.c
+++ /dev/null
@@ -1,100 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4
5int
6evas_software_gdi_init (HWND window,
7 int depth,
8 unsigned int borderless,
9 unsigned int fullscreen __UNUSED__,
10 unsigned int region,
11 Outbuf *buf)
12{
13 if (!window)
14 {
15 ERR("[Engine] [GDI] Window is NULL");
16 return 0;
17 }
18
19 buf->priv.gdi.window = window;
20 buf->priv.gdi.dc = GetDC(window);
21 buf->priv.gdi.borderless = borderless;
22 buf->priv.gdi.region = region;
23 if (!buf->priv.gdi.dc)
24 {
25 ERR("[Engine] [GDI] Can not get DC");
26 return 0;
27 }
28
29 /* FIXME: check depth */
30 if (depth != GetDeviceCaps(buf->priv.gdi.dc, BITSPIXEL))
31 {
32 ERR("[Engine] [GDI] no compatible depth");
33 ReleaseDC(window, buf->priv.gdi.dc);
34 return 0;
35 }
36 buf->priv.gdi.depth = depth;
37
38 /* FIXME: support fullscreen */
39
40 buf->priv.gdi.bitmap_info = (BITMAPINFO_GDI *)malloc(sizeof(BITMAPINFO_GDI));
41 if (!buf->priv.gdi.bitmap_info)
42 {
43 ERR("[Engine] [GDI] Can not allocate bitmap info");
44 ReleaseDC(window, buf->priv.gdi.dc);
45 return 0;
46 }
47
48 buf->priv.gdi.bitmap_info->bih.biSize = sizeof(BITMAPINFOHEADER);
49 buf->priv.gdi.bitmap_info->bih.biWidth = buf->width;
50 buf->priv.gdi.bitmap_info->bih.biHeight = -buf->height;
51 buf->priv.gdi.bitmap_info->bih.biPlanes = 1;
52 buf->priv.gdi.bitmap_info->bih.biSizeImage = (buf->priv.gdi.depth >> 3) * buf->width * buf->height;
53 buf->priv.gdi.bitmap_info->bih.biXPelsPerMeter = 0;
54 buf->priv.gdi.bitmap_info->bih.biYPelsPerMeter = 0;
55 buf->priv.gdi.bitmap_info->bih.biClrUsed = 0;
56 buf->priv.gdi.bitmap_info->bih.biClrImportant = 0;
57 buf->priv.gdi.bitmap_info->bih.biBitCount = buf->priv.gdi.depth;
58 buf->priv.gdi.bitmap_info->bih.biCompression = BI_BITFIELDS;
59
60 switch (depth)
61 {
62 case 16:
63 buf->priv.gdi.bitmap_info->masks[0] = 0x0000f800;
64 buf->priv.gdi.bitmap_info->masks[1] = 0x000007e0;
65 buf->priv.gdi.bitmap_info->masks[2] = 0x0000001f;
66 break;
67 case 32:
68 buf->priv.gdi.bitmap_info->masks[0] = 0x00ff0000;
69 buf->priv.gdi.bitmap_info->masks[1] = 0x0000ff00;
70 buf->priv.gdi.bitmap_info->masks[2] = 0x000000ff;
71 break;
72 default:
73 ERR("[Engine] [GDI] wrong depth");
74 free(buf->priv.gdi.bitmap_info);
75 ReleaseDC(window, buf->priv.gdi.dc);
76 return 0;
77 }
78
79 return 1;
80}
81
82void
83evas_software_gdi_shutdown(Outbuf *buf)
84{
85 if (!buf)
86 return;
87
88 free(buf->priv.gdi.bitmap_info);
89 ReleaseDC(buf->priv.gdi.window, buf->priv.gdi.dc);
90 if (buf->priv.gdi.regions)
91 DeleteObject(buf->priv.gdi.regions);
92}
93
94void
95evas_software_gdi_bitmap_resize(Outbuf *buf)
96{
97 buf->priv.gdi.bitmap_info->bih.biWidth = buf->width;
98 buf->priv.gdi.bitmap_info->bih.biHeight = -buf->height;
99 buf->priv.gdi.bitmap_info->bih.biSizeImage = (buf->priv.gdi.depth >> 3) * buf->width * buf->height;
100}
diff --git a/libraries/evas/src/modules/engines/software_gdi/evas_outbuf.c b/libraries/evas/src/modules/engines/software_gdi/evas_outbuf.c
deleted file mode 100644
index 6841baa..0000000
--- a/libraries/evas/src/modules/engines/software_gdi/evas_outbuf.c
+++ /dev/null
@@ -1,656 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4
5static Eina_List *gdipool = NULL;
6static int gdisize = 0;
7static int gdimemlimit = 10 * 1024 * 1024;
8static int gdicountlimit = 32;
9
10static Gdi_Output_Buffer *
11_find_gdiob(HDC dc, BITMAPINFO_GDI *bitmap_info, int depth, int w, int h, void *data)
12{
13 Eina_List *l = NULL;
14 Eina_List *gdil = NULL;
15 Gdi_Output_Buffer *gdiob = NULL;
16 Gdi_Output_Buffer *gdiob2;
17 int sz;
18 int lbytes;
19 int bpp;
20 int fitness = 0x7fffffff;
21
22 bpp = depth >> 3;
23 if (bpp == 3) bpp = 4;
24 lbytes = (((w * bpp) + 3) / 4) * 4;
25 sz = lbytes * h;
26 EINA_LIST_FOREACH(gdipool, l, gdiob2)
27 {
28 int szdif;
29
30 if ((gdiob2->dc != dc) ||
31 (gdiob2->bitmap_info != bitmap_info) ||
32 (gdiob2->depth != depth))
33 continue;
34 szdif = gdiob2->psize - sz;
35 if (szdif < 0) continue;
36 if (szdif == 0)
37 {
38 gdiob = gdiob2;
39 gdil = l;
40 goto have_gdiob;
41 }
42 if (szdif < fitness)
43 {
44 fitness = szdif;
45 gdiob = gdiob2;
46 gdil = l;
47 }
48 }
49 if ((fitness > (100 * 100)) || (!gdiob))
50 return evas_software_gdi_output_buffer_new(dc, bitmap_info, depth, w, h, data);
51
52 have_gdiob:
53 gdipool = eina_list_remove_list(gdipool, gdil);
54 gdiob->width = w;
55 gdiob->height = h;
56 gdiob->pitch = lbytes;
57 gdisize -= gdiob->psize * (gdiob->depth >> 3);
58
59 return gdiob;
60}
61
62static void
63_unfind_gdiob(Gdi_Output_Buffer *gdiob)
64{
65 gdipool = eina_list_prepend(gdipool, gdiob);
66 gdisize += gdiob->psize * (gdiob->depth >> 3);
67 while ((gdisize > (gdimemlimit)) ||
68 (eina_list_count(gdipool) > gdicountlimit))
69 {
70 Eina_List *xl;
71
72 xl = eina_list_last(gdipool);
73 if (!xl)
74 {
75 gdisize = 0;
76 break;
77 }
78 gdiob = xl->data;
79 gdipool = eina_list_remove_list(gdipool, xl);
80 evas_software_gdi_output_buffer_free(gdiob);
81 }
82}
83
84static void
85_clear_gdiob()
86{
87 while (gdipool)
88 {
89 Gdi_Output_Buffer *gdiob;
90
91 gdiob = gdipool->data;
92 gdipool = eina_list_remove_list(gdipool, gdipool);
93 evas_software_gdi_output_buffer_free(gdiob);
94 }
95 gdisize = 0;
96}
97
98void
99evas_software_gdi_outbuf_init(void)
100{
101}
102
103void
104evas_software_gdi_outbuf_free(Outbuf *buf)
105{
106 if (!buf)
107 return;
108
109 while (buf->priv.pending_writes)
110 {
111 RGBA_Image *im;
112 Outbuf_Region *obr;
113
114 im = buf->priv.pending_writes->data;
115 buf->priv.pending_writes = eina_list_remove_list(buf->priv.pending_writes, buf->priv.pending_writes);
116 obr = im->extended_info;
117 evas_cache_image_drop(&im->cache_entry);
118 if (obr->gdiob) _unfind_gdiob(obr->gdiob);
119/* if (obr->mxob) _unfind_xob(obr->mxob, 0); */
120 free(obr);
121 }
122 evas_software_gdi_outbuf_idle_flush(buf);
123 evas_software_gdi_outbuf_flush(buf);
124
125 evas_software_gdi_shutdown(buf);
126 free(buf);
127}
128
129Outbuf *
130evas_software_gdi_outbuf_setup(int width,
131 int height,
132 int rotation,
133 Outbuf_Depth depth,
134 HWND window,
135 int w_depth,
136 unsigned int borderless,
137 unsigned int fullscreen,
138 unsigned int region,
139 int mask_dither,
140 int destination_alpha)
141{
142 Outbuf *buf;
143
144 buf = (Outbuf *)calloc(1, sizeof(Outbuf));
145 if (!buf)
146 return NULL;
147
148 buf->width = width;
149 buf->height = height;
150 buf->depth = depth;
151 buf->rot = rotation;
152
153 buf->priv.mask_dither = mask_dither;
154 buf->priv.destination_alpha = destination_alpha;
155
156 if (!evas_software_gdi_init(window, w_depth, borderless, fullscreen, region, buf))
157 {
158 free(buf);
159 return NULL;
160 }
161
162 {
163 Gfx_Func_Convert conv_func;
164 Gdi_Output_Buffer *gdiob;
165
166 gdiob = evas_software_gdi_output_buffer_new(buf->priv.gdi.dc, buf->priv.gdi.bitmap_info, w_depth, 1, 1, NULL);
167
168 conv_func = NULL;
169 if (gdiob)
170 {
171 if ((rotation == 0) || (rotation == 180))
172 conv_func = evas_common_convert_func_get(0,
173 width,
174 height,
175 evas_software_gdi_output_buffer_depth (gdiob),
176 buf->priv.gdi.bitmap_info->masks[0],
177 buf->priv.gdi.bitmap_info->masks[1],
178 buf->priv.gdi.bitmap_info->masks[2],
179 PAL_MODE_NONE,
180 rotation);
181 else if ((rotation == 90) || (rotation == 270))
182 conv_func = evas_common_convert_func_get(0,
183 height,
184 width,
185 evas_software_gdi_output_buffer_depth (gdiob),
186 buf->priv.gdi.bitmap_info->masks[0],
187 buf->priv.gdi.bitmap_info->masks[1],
188 buf->priv.gdi.bitmap_info->masks[2],
189 PAL_MODE_NONE,
190 rotation);
191
192 evas_software_gdi_output_buffer_free(gdiob);
193
194 if (!conv_func)
195 {
196 ERR(".[ soft_gdi engine Error ]."
197 " {"
198 " At depth %i:"
199 " RGB format mask: %08lx, %08lx, %08lx"
200 " Not supported by and compiled in converters!"
201 " }",
202 buf->priv.gdi.depth,
203 buf->priv.gdi.bitmap_info->masks[0],
204 buf->priv.gdi.bitmap_info->masks[1],
205 buf->priv.gdi.bitmap_info->masks[2]);
206 }
207 }
208 }
209
210 return buf;
211}
212
213void
214evas_software_gdi_outbuf_reconfigure(Outbuf *buf,
215 int width,
216 int height,
217 int rotation,
218 Outbuf_Depth depth)
219{
220 if ((width == buf->width) && (height == buf->height) &&
221 (rotation == buf->rot) && (depth == buf->depth))
222 return;
223 buf->width = width;
224 buf->height = height;
225 buf->rot = rotation;
226 evas_software_gdi_bitmap_resize(buf);
227 buf->priv.region_built = 0;
228}
229
230RGBA_Image *
231evas_software_gdi_outbuf_new_region_for_update(Outbuf *buf,
232 int x,
233 int y,
234 int w,
235 int h,
236 int *cx,
237 int *cy,
238 int *cw,
239 int *ch)
240{
241 RGBA_Image *im;
242 Outbuf_Region *obr;
243 int bpl = 0;
244 int alpha = 0;
245
246 obr = calloc(1, sizeof(Outbuf_Region));
247 obr->x = x;
248 obr->y = y;
249 obr->width = w;
250 obr->height = h;
251 *cx = 0;
252 *cy = 0;
253 *cw = w;
254 *ch = h;
255
256 alpha = ((buf->priv.gdi.region) || (buf->priv.destination_alpha));
257
258 if ((buf->rot == 0) &&
259 (buf->priv.gdi.bitmap_info->masks[0] == 0xff0000) &&
260 (buf->priv.gdi.bitmap_info->masks[1] == 0x00ff00) &&
261 (buf->priv.gdi.bitmap_info->masks[2] == 0x0000ff))
262 {
263 obr->gdiob = _find_gdiob(buf->priv.gdi.dc,
264 buf->priv.gdi.bitmap_info,
265 buf->priv.gdi.depth,
266 w, h, NULL);
267/* obr->gdiob = evas_software_gdi_output_buffer_new(buf->priv.gdi.dc, */
268/* buf->priv.gdi.bitmap_info, */
269/* buf->priv.gdi.depth, */
270/* w, h, */
271/* NULL); */
272 im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
273 w, h,
274 (DATA32 *)evas_software_gdi_output_buffer_data(obr->gdiob, &bpl),
275 alpha, EVAS_COLORSPACE_ARGB8888);
276 im->extended_info = obr;
277/* if (buf->priv.gdi.mask) */
278/* obr->mgdiob = _find_gdiob(buf->priv.gdi.dc, */
279/* buf->priv.gdi.bitmap_info, */
280/* 1, */
281/* w, h, NULL); */
282 }
283 else
284 {
285 im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
286 im->cache_entry.flags.alpha |= alpha ? 1 : 0;
287 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
288 im->extended_info = obr;
289 if ((buf->rot == 0) || (buf->rot == 180))
290 obr->gdiob = _find_gdiob(buf->priv.gdi.dc,
291 buf->priv.gdi.bitmap_info,
292 buf->priv.gdi.depth,
293 w, h, NULL);
294/*
295 obr->gdiob = evas_software_x11_x_output_buffer_new(buf->priv.dd.disp,
296 buf->priv.dd.vis,
297 buf->priv.dd.depth,
298 w, h,
299 use_shm,
300 NULL);
301 */
302 else if ((buf->rot == 90) || (buf->rot == 270))
303 obr->gdiob = _find_gdiob(buf->priv.gdi.dc,
304 buf->priv.gdi.bitmap_info,
305 buf->priv.gdi.depth,
306 h, w, NULL);
307/*
308 obr->gdiob = evas_software_x11_x_output_buffer_new(buf->priv.dd.disp,
309 buf->priv.dd.vis,
310 buf->priv.dd.depth,
311 h, w,
312 use_shm,
313 NULL);
314 */
315/* if (buf->priv.gdi.mask) */
316/* obr->mgdiob = _find_gdiob(buf->priv.gdi.dc, */
317/* buf->priv.gdi.bitmap_info, */
318/* 1, */
319/* w, h, NULL); */
320 }
321 if ((buf->priv.gdi.region) || (buf->priv.destination_alpha))
322 /* FIXME: faster memset! */
323 memset(im->image.data, 0, w * h * sizeof(DATA32));
324
325 buf->priv.pending_writes = eina_list_append(buf->priv.pending_writes, im);
326 return im;
327}
328
329void
330evas_software_gdi_outbuf_push_updated_region(Outbuf *buf,
331 RGBA_Image *update,
332 int x,
333 int y,
334 int w,
335 int h)
336{
337 HRGN regions = NULL;
338 Gfx_Func_Convert conv_func;
339 Outbuf_Region *obr;
340 DATA32 *src_data;
341 void *data;
342 int bpl = 0;
343
344 conv_func = NULL;
345 obr = update->extended_info;
346
347 if ((buf->rot == 0) || (buf->rot == 180))
348 conv_func = evas_common_convert_func_get(0, w, h,
349 evas_software_gdi_output_buffer_depth(obr->gdiob),
350 buf->priv.gdi.bitmap_info->masks[0],
351 buf->priv.gdi.bitmap_info->masks[1],
352 buf->priv.gdi.bitmap_info->masks[2],
353 PAL_MODE_NONE,
354 buf->rot);
355 else if ((buf->rot == 90) || (buf->rot == 270))
356 conv_func = evas_common_convert_func_get(0, h, w,
357 evas_software_gdi_output_buffer_depth(obr->gdiob),
358 buf->priv.gdi.bitmap_info->masks[0],
359 buf->priv.gdi.bitmap_info->masks[1],
360 buf->priv.gdi.bitmap_info->masks[2],
361 PAL_MODE_NONE,
362 buf->rot);
363 if (!conv_func) return;
364
365 data = evas_software_gdi_output_buffer_data(obr->gdiob, &bpl);
366 src_data = update->image.data;
367 if (buf->rot == 0)
368 {
369 obr->x = x;
370 obr->y = y;
371 }
372 else if (buf->rot == 90)
373 {
374 obr->x = y;
375 obr->y = buf->width - x - w;
376 }
377 else if (buf->rot == 180)
378 {
379 obr->x = buf->width - x - w;
380 obr->y = buf->height - y - h;
381 }
382 else if (buf->rot == 270)
383 {
384 obr->x = buf->height - y - h;
385 obr->y = x;
386 }
387 if ((buf->rot == 0) || (buf->rot == 180))
388 {
389 obr->width = w;
390 obr->height = h;
391 }
392 else if ((buf->rot == 90) || (buf->rot == 270))
393 {
394 obr->width = h;
395 obr->height = w;
396 }
397
398 if (data != src_data)
399 conv_func(src_data, data,
400 0,
401 bpl / (evas_software_gdi_output_buffer_depth(obr->gdiob) >> 3) - obr->width,
402 obr->width,
403 obr->height,
404 x,
405 y,
406 NULL);
407
408 /* Region code */
409 if (!buf->priv.gdi.region)
410 {
411 if (buf->priv.gdi.regions)
412 DeleteObject(buf->priv.gdi.regions);
413 buf->priv.gdi.regions = NULL;
414 SetWindowRgn(buf->priv.gdi.window, NULL, 1);
415 return;
416 }
417
418 if (!buf->priv.region_built)
419 {
420 RECT rect;
421 POINT pt = { 0, 0 };
422 HRGN region;
423 int *tmp;
424 int i;
425 int j;
426 int ww;
427 int wh;
428 int dx;
429 int dy;
430 int xmin;
431 int xmax;
432
433 if (!GetClientRect(buf->priv.gdi.window, &rect))
434 return;
435
436 ww = rect.right - rect.left;
437 wh = rect.bottom - rect.top;
438
439 if (!GetWindowRect(buf->priv.gdi.window, &rect))
440 return;
441 if (!ClientToScreen(buf->priv.gdi.window, &pt))
442 return;
443 dx = x + pt.x - rect.left;
444 dy = y + pt.y - rect.top;
445
446 tmp = src_data;
447
448 for (j = 0; j < h; j++)
449 {
450 i = 0;
451 while (i < w)
452 {
453 if ((*tmp & 0xff000000) == 0xff000000)
454 {
455 xmin = dx + i;
456 if ((i + 1) == w)
457 {
458 xmax = dx + i;
459 region = CreateRectRgn(xmin, dy + j, xmax + 1, dy + j + 1);
460 if (regions == NULL)
461 regions = region;
462 else
463 {
464 CombineRgn(regions, regions, region, RGN_OR);
465 DeleteObject(region);
466 }
467 }
468 else
469 {
470 i++;
471 tmp++;
472
473 while (i < w)
474 {
475 if ((*tmp & 0xff000000) == 0xff000000)
476 {
477 if ((i + 1) == w)
478 {
479 xmax = dx + i;
480 region = CreateRectRgn(xmin, dy + j, xmax + 1, dy + j + 1);
481 if (regions == NULL)
482 regions = region;
483 else
484 {
485 CombineRgn(regions, regions, region, RGN_OR);
486 DeleteObject(region);
487 }
488 break;
489 }
490 }
491 else
492 {
493 xmax = dx + i - 1;
494 region = CreateRectRgn(xmin, dy + j, xmax + 1, dy + j + 1);
495 if (regions == NULL)
496 regions = region;
497 else
498 {
499 CombineRgn(regions, regions, region, RGN_OR);
500 DeleteObject(region);
501 }
502 break;
503 }
504 i++;
505 tmp++;
506 }
507 }
508 }
509 i++;
510 tmp++;
511 }
512 }
513
514 if (!buf->priv.gdi.borderless)
515 {
516 RECT rnc;
517 RECT rc;
518 POINT pt = { 0, 0 };
519 LONG ncw;
520 LONG nch;
521 LONG cw;
522 LONG ch;
523
524 if (!GetWindowRect(buf->priv.gdi.window, &rnc))
525 return;
526 if (!GetClientRect(buf->priv.gdi.window, &rc))
527 return;
528 if (!ClientToScreen(buf->priv.gdi.window, &pt))
529 return;
530
531 ncw = rnc.right - rnc.left;
532 nch = rnc.bottom - rnc.top;
533 cw = rc.right - rc.left;
534 ch = rc.bottom - rc.top;
535
536 region = CreateRectRgn(0, 0, ncw, pt.y - rnc.top);
537 if (!regions)
538 regions = region;
539 else
540 {
541 CombineRgn(regions, regions, region, RGN_OR);
542 DeleteObject(region);
543 }
544 region = CreateRectRgn(0, pt.y - rnc.top, pt.x - rnc.left, nch);
545 CombineRgn(regions, regions, region, RGN_OR);
546 DeleteObject(region);
547 region = CreateRectRgn(pt.x - rnc.left, pt.y - rnc.top + ch, pt.x - rnc.left + cw, nch);
548 CombineRgn(regions, regions, region, RGN_OR);
549 DeleteObject(region);
550 region = CreateRectRgn(pt.x - rnc.left + cw, pt.y - rnc.top, ncw, nch);
551 CombineRgn(regions, regions, region, RGN_OR);
552 DeleteObject(region);
553 }
554
555 if (regions)
556 SetWindowRgn(buf->priv.gdi.window, regions, 1);
557 buf->priv.gdi.regions = regions;
558
559 buf->priv.region_built = 1;
560 }
561}
562
563void
564evas_software_gdi_outbuf_free_region_for_update(Outbuf *buf __UNUSED__,
565 RGBA_Image *update __UNUSED__)
566{
567 /* no need to do anything - they are cleaned up on flush */
568}
569
570void
571evas_software_gdi_outbuf_flush(Outbuf *buf)
572{
573 Eina_List *l;
574 RGBA_Image *im;
575 Outbuf_Region *obr;
576
577 /* copy safely the images that need to be drawn onto the back surface */
578 EINA_LIST_FOREACH(buf->priv.pending_writes, l, im)
579 {
580 Gdi_Output_Buffer *gdiob;
581
582 obr = im->extended_info;
583 gdiob = obr->gdiob;
584 evas_software_gdi_output_buffer_paste(gdiob,
585 obr->x,
586 obr->y);
587/* if (obr->mgdiob) */
588/* evas_software_gdi_output_buffer_paste(obr->mgdiob, */
589/* buf->priv.x11.xlib.mask, */
590/* buf->priv.x11.xlib.gcm, */
591/* obr->x, obr->y, 0); */
592 }
593
594 while (buf->priv.prev_pending_writes)
595 {
596 im = buf->priv.prev_pending_writes->data;
597 buf->priv.prev_pending_writes =
598 eina_list_remove_list(buf->priv.prev_pending_writes,
599 buf->priv.prev_pending_writes);
600 obr = im->extended_info;
601 evas_cache_image_drop(&im->cache_entry);
602 if (obr->gdiob) _unfind_gdiob(obr->gdiob);
603/* if (obr->mgdiob) _unfind_gdiob(obr->mgdiob); */
604/* if (obr->gdiob) evas_software_x11_x_output_buffer_free(obr->gdiob); */
605 free(obr);
606 }
607 buf->priv.prev_pending_writes = buf->priv.pending_writes;
608 buf->priv.pending_writes = NULL;
609
610 evas_common_cpu_end_opt();
611}
612
613void
614evas_software_gdi_outbuf_idle_flush(Outbuf *buf)
615{
616 while (buf->priv.prev_pending_writes)
617 {
618 RGBA_Image *im;
619 Outbuf_Region *obr;
620
621 im = buf->priv.prev_pending_writes->data;
622 buf->priv.prev_pending_writes =
623 eina_list_remove_list(buf->priv.prev_pending_writes,
624 buf->priv.prev_pending_writes);
625 obr = im->extended_info;
626 evas_cache_image_drop((Image_Entry *)im);
627 if (obr->gdiob) _unfind_gdiob(obr->gdiob);
628/* if (obr->mxob) _unfind_xob(obr->mxob, 0); */
629 free(obr);
630 }
631 _clear_gdiob();
632}
633
634int
635evas_software_gdi_outbuf_width_get(Outbuf *buf)
636{
637 return buf->width;
638}
639
640int
641evas_software_gdi_outbuf_height_get(Outbuf *buf)
642{
643 return buf->height;
644}
645
646Outbuf_Depth
647evas_software_gdi_outbuf_depth_get(Outbuf *buf)
648{
649 return buf->depth;
650}
651
652int
653evas_software_gdi_outbuf_rot_get(Outbuf *buf)
654{
655 return buf->rot;
656}
diff --git a/libraries/evas/src/modules/engines/software_generic/Makefile.am b/libraries/evas/src/modules/engines/software_generic/Makefile.am
deleted file mode 100644
index e605dac..0000000
--- a/libraries/evas/src/modules/engines/software_generic/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@EINA_CFLAGS@ \
10@FREETYPE_CFLAGS@ \
11@PIXMAN_CFLAGS@
12
13SOFTWARE_GENERIC_SOURCES = evas_engine.c
14
15
16if !EVAS_STATIC_BUILD_SOFTWARE_GENERIC
17
18pkgdir = $(libdir)/evas/modules/engines/software_generic/$(MODULE_ARCH)
19pkg_LTLIBRARIES = module.la
20
21module_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES)
22
23module_la_LIBADD = @EINA_LIBS@ @dlopen_libs@ $(top_builddir)/src/lib/libevas.la
24module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
25module_la_LIBTOOLFLAGS = --tag=disable-static
26
27else
28
29noinst_LTLIBRARIES = libevas_engine_software_generic.la
30
31libevas_engine_software_generic_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES)
32
33endif
diff --git a/libraries/evas/src/modules/engines/software_generic/Makefile.in b/libraries/evas/src/modules/engines/software_generic/Makefile.in
deleted file mode 100644
index fe0ac3d..0000000
--- a/libraries/evas/src/modules/engines/software_generic/Makefile.in
+++ /dev/null
@@ -1,766 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = src/modules/engines/software_generic
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
41 $(top_srcdir)/m4/efl_coverage.m4 \
42 $(top_srcdir)/m4/efl_doxygen.m4 \
43 $(top_srcdir)/m4/efl_fnmatch.m4 \
44 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
45 $(top_srcdir)/m4/evas_check_engine.m4 \
46 $(top_srcdir)/m4/evas_check_loader.m4 \
47 $(top_srcdir)/m4/evas_converter.m4 \
48 $(top_srcdir)/m4/evas_dither.m4 \
49 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
50 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
51 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
52 $(top_srcdir)/configure.ac
53am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
54 $(ACLOCAL_M4)
55mkinstalldirs = $(install_sh) -d
56CONFIG_HEADER = $(top_builddir)/config.h
57CONFIG_CLEAN_FILES =
58CONFIG_CLEAN_VPATH_FILES =
59am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
60am__vpath_adj = case $$p in \
61 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
62 *) f=$$p;; \
63 esac;
64am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
65am__install_max = 40
66am__nobase_strip_setup = \
67 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
68am__nobase_strip = \
69 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
70am__nobase_list = $(am__nobase_strip_setup); \
71 for p in $$list; do echo "$$p $$p"; done | \
72 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
73 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
74 if (++n[$$2] == $(am__install_max)) \
75 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
76 END { for (dir in files) print dir, files[dir] }'
77am__base_list = \
78 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
79 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
80am__installdirs = "$(DESTDIR)$(pkgdir)"
81LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
82libevas_engine_software_generic_la_LIBADD =
83am__libevas_engine_software_generic_la_SOURCES_DIST = evas_engine.c
84am__objects_1 = evas_engine.lo
85@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE@am_libevas_engine_software_generic_la_OBJECTS = \
86@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE@ $(am__objects_1)
87libevas_engine_software_generic_la_OBJECTS = \
88 $(am_libevas_engine_software_generic_la_OBJECTS)
89AM_V_lt = $(am__v_lt_$(V))
90am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
91am__v_lt_0 = --silent
92@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE@am_libevas_engine_software_generic_la_rpath =
93@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
94am__module_la_SOURCES_DIST = evas_engine.c
95am__objects_2 = module_la-evas_engine.lo
96@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@am_module_la_OBJECTS = \
97@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@ $(am__objects_2)
98module_la_OBJECTS = $(am_module_la_OBJECTS)
99module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
100 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
101 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
102@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@am_module_la_rpath = -rpath \
103@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@ $(pkgdir)
104DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
105depcomp = $(SHELL) $(top_srcdir)/depcomp
106am__depfiles_maybe = depfiles
107am__mv = mv -f
108COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
109 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
110LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
111 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
112 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
113 $(AM_CFLAGS) $(CFLAGS)
114AM_V_CC = $(am__v_CC_$(V))
115am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
116am__v_CC_0 = @echo " CC " $@;
117AM_V_at = $(am__v_at_$(V))
118am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
119am__v_at_0 = @
120CCLD = $(CC)
121LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
122 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
123 $(AM_LDFLAGS) $(LDFLAGS) -o $@
124AM_V_CCLD = $(am__v_CCLD_$(V))
125am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
126am__v_CCLD_0 = @echo " CCLD " $@;
127AM_V_GEN = $(am__v_GEN_$(V))
128am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
129am__v_GEN_0 = @echo " GEN " $@;
130SOURCES = $(libevas_engine_software_generic_la_SOURCES) \
131 $(module_la_SOURCES)
132DIST_SOURCES = $(am__libevas_engine_software_generic_la_SOURCES_DIST) \
133 $(am__module_la_SOURCES_DIST)
134ETAGS = etags
135CTAGS = ctags
136DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
137ACLOCAL = @ACLOCAL@
138ALLOCA = @ALLOCA@
139AMTAR = @AMTAR@
140AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
141AR = @AR@
142AS = @AS@
143AUTOCONF = @AUTOCONF@
144AUTOHEADER = @AUTOHEADER@
145AUTOMAKE = @AUTOMAKE@
146AWK = @AWK@
147CC = @CC@
148CCDEPMODE = @CCDEPMODE@
149CFLAGS = @CFLAGS@
150CHECK_CFLAGS = @CHECK_CFLAGS@
151CHECK_LIBS = @CHECK_LIBS@
152CPP = @CPP@
153CPPFLAGS = @CPPFLAGS@
154CXX = @CXX@
155CXXCPP = @CXXCPP@
156CXXDEPMODE = @CXXDEPMODE@
157CXXFLAGS = @CXXFLAGS@
158CYGPATH_W = @CYGPATH_W@
159DEFS = @DEFS@
160DEPDIR = @DEPDIR@
161DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
162DIRECTFB_LIBS = @DIRECTFB_LIBS@
163DLLTOOL = @DLLTOOL@
164DSYMUTIL = @DSYMUTIL@
165DUMPBIN = @DUMPBIN@
166ECHO_C = @ECHO_C@
167ECHO_N = @ECHO_N@
168ECHO_T = @ECHO_T@
169ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
170ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
171EDB_CFLAGS = @EDB_CFLAGS@
172EDB_LIBS = @EDB_LIBS@
173EDJE_CFLAGS = @EDJE_CFLAGS@
174EDJE_LIBS = @EDJE_LIBS@
175EET_CFLAGS = @EET_CFLAGS@
176EET_LIBS = @EET_LIBS@
177EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
178EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
179EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
180EGREP = @EGREP@
181EINA_CFLAGS = @EINA_CFLAGS@
182EINA_LIBS = @EINA_LIBS@
183EVAS_CFLAGS = @EVAS_CFLAGS@
184EVAS_LIBS = @EVAS_LIBS@
185EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
186EVIL_CFLAGS = @EVIL_CFLAGS@
187EVIL_LIBS = @EVIL_LIBS@
188EXEEXT = @EXEEXT@
189EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
190EXOTIC_LIBS = @EXOTIC_LIBS@
191FGREP = @FGREP@
192FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
193FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
194FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
195FREETYPE_LIBS = @FREETYPE_LIBS@
196FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
197FRIBIDI_LIBS = @FRIBIDI_LIBS@
198GL_EET_CFLAGS = @GL_EET_CFLAGS@
199GL_EET_LIBS = @GL_EET_LIBS@
200GREP = @GREP@
201HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
202HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
203INSTALL = @INSTALL@
204INSTALL_DATA = @INSTALL_DATA@
205INSTALL_PROGRAM = @INSTALL_PROGRAM@
206INSTALL_SCRIPT = @INSTALL_SCRIPT@
207INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
208LD = @LD@
209LDFLAGS = @LDFLAGS@
210LIBOBJS = @LIBOBJS@
211LIBS = @LIBS@
212LIBTOOL = @LIBTOOL@
213LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
214LINEBREAK_LIBS = @LINEBREAK_LIBS@
215LIPO = @LIPO@
216LN_S = @LN_S@
217LTLIBOBJS = @LTLIBOBJS@
218MAKEINFO = @MAKEINFO@
219MKDIR_P = @MKDIR_P@
220MODULE_ARCH = @MODULE_ARCH@
221NM = @NM@
222NMEDIT = @NMEDIT@
223OBJC = @OBJC@
224OBJCDEPMODE = @OBJCDEPMODE@
225OBJCFLAGS = @OBJCFLAGS@
226OBJDUMP = @OBJDUMP@
227OBJEXT = @OBJEXT@
228OTOOL = @OTOOL@
229OTOOL64 = @OTOOL64@
230PACKAGE = @PACKAGE@
231PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
232PACKAGE_NAME = @PACKAGE_NAME@
233PACKAGE_STRING = @PACKAGE_STRING@
234PACKAGE_TARNAME = @PACKAGE_TARNAME@
235PACKAGE_URL = @PACKAGE_URL@
236PACKAGE_VERSION = @PACKAGE_VERSION@
237PATH_SEPARATOR = @PATH_SEPARATOR@
238PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
239PIXMAN_LIBS = @PIXMAN_LIBS@
240PKG_CONFIG = @PKG_CONFIG@
241PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
242PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
243PNG_CFLAGS = @PNG_CFLAGS@
244PNG_LIBS = @PNG_LIBS@
245RANLIB = @RANLIB@
246SDL_CFLAGS = @SDL_CFLAGS@
247SDL_LIBS = @SDL_LIBS@
248SED = @SED@
249SET_MAKE = @SET_MAKE@
250SHELL = @SHELL@
251SHM_OPEN_LINK = @SHM_OPEN_LINK@
252STRIP = @STRIP@
253SVG_CFLAGS = @SVG_CFLAGS@
254SVG_LIBS = @SVG_LIBS@
255VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
256VALGRIND_LIBS = @VALGRIND_LIBS@
257VERSION = @VERSION@
258VMAJ = @VMAJ@
259WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
260WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
261XCB_CFLAGS = @XCB_CFLAGS@
262XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
263XCB_GL_LIBS = @XCB_GL_LIBS@
264XCB_LIBS = @XCB_LIBS@
265XEXT_CFLAGS = @XEXT_CFLAGS@
266XEXT_LIBS = @XEXT_LIBS@
267XMKMF = @XMKMF@
268X_CFLAGS = @X_CFLAGS@
269X_EXTRA_LIBS = @X_EXTRA_LIBS@
270X_LIBS = @X_LIBS@
271X_PRE_LIBS = @X_PRE_LIBS@
272abs_builddir = @abs_builddir@
273abs_srcdir = @abs_srcdir@
274abs_top_builddir = @abs_top_builddir@
275abs_top_srcdir = @abs_top_srcdir@
276ac_ct_CC = @ac_ct_CC@
277ac_ct_CXX = @ac_ct_CXX@
278ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
279ac_ct_OBJC = @ac_ct_OBJC@
280altivec_cflags = @altivec_cflags@
281am__include = @am__include@
282am__leading_dot = @am__leading_dot@
283am__quote = @am__quote@
284am__tar = @am__tar@
285am__untar = @am__untar@
286bindir = @bindir@
287build = @build@
288build_alias = @build_alias@
289build_cpu = @build_cpu@
290build_os = @build_os@
291build_vendor = @build_vendor@
292builddir = @builddir@
293datadir = @datadir@
294datarootdir = @datarootdir@
295dlopen_libs = @dlopen_libs@
296docdir = @docdir@
297dvidir = @dvidir@
298edje_cc = @edje_cc@
299efl_doxygen = @efl_doxygen@
300efl_have_doxygen = @efl_have_doxygen@
301evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
302evas_engine_buffer_libs = @evas_engine_buffer_libs@
303evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
304evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
305evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
306evas_engine_directfb_libs = @evas_engine_directfb_libs@
307evas_engine_fb_cflags = @evas_engine_fb_cflags@
308evas_engine_fb_libs = @evas_engine_fb_libs@
309evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
310evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
311evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
312evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
313evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
314evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
315evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
316evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
317evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
318evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
319evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
320evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
321evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
322evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
323evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
324evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
325evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
326evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
327evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
328evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
329evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
330evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
331evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
332evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
333evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
334evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
335evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
336evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
337evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
338evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
339evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
340evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
341evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
342evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
343evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
344evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
345evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
346evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
347evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
348evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
349evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
350evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
351evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
352evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
353evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
354evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
355evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
356evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
357evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
358evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
359evas_image_loader_png_libs = @evas_image_loader_png_libs@
360evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
361evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
362evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
363evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
364evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
365evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
366evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
367evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
368evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
369evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
370evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
371evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
372exec_prefix = @exec_prefix@
373have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
374have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
375have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
376have_evas_engine_software_x11 = @have_evas_engine_software_x11@
377have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
378have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
379have_lcov = @have_lcov@
380host = @host@
381host_alias = @host_alias@
382host_cpu = @host_cpu@
383host_os = @host_os@
384host_vendor = @host_vendor@
385htmldir = @htmldir@
386includedir = @includedir@
387infodir = @infodir@
388install_sh = @install_sh@
389libdir = @libdir@
390libexecdir = @libexecdir@
391localedir = @localedir@
392localstatedir = @localstatedir@
393lt_ECHO = @lt_ECHO@
394lt_enable_auto_import = @lt_enable_auto_import@
395mandir = @mandir@
396mkdir_p = @mkdir_p@
397oldincludedir = @oldincludedir@
398pdfdir = @pdfdir@
399pkgconfig_requires_private = @pkgconfig_requires_private@
400prefix = @prefix@
401program_transform_name = @program_transform_name@
402psdir = @psdir@
403pthread_cflags = @pthread_cflags@
404pthread_libs = @pthread_libs@
405release_info = @release_info@
406requirement_evas = @requirement_evas@
407sbindir = @sbindir@
408sharedstatedir = @sharedstatedir@
409srcdir = @srcdir@
410sysconfdir = @sysconfdir@
411target_alias = @target_alias@
412top_build_prefix = @top_build_prefix@
413top_builddir = @top_builddir@
414top_srcdir = @top_srcdir@
415version_info = @version_info@
416MAINTAINERCLEANFILES = Makefile.in
417AM_CPPFLAGS = \
418-I. \
419-I$(top_srcdir)/src/lib \
420-I$(top_srcdir)/src/lib/include \
421-I$(top_srcdir)/src/modules/engines \
422@EINA_CFLAGS@ \
423@FREETYPE_CFLAGS@ \
424@PIXMAN_CFLAGS@
425
426SOFTWARE_GENERIC_SOURCES = evas_engine.c
427@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_generic/$(MODULE_ARCH)
428@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@pkg_LTLIBRARIES = module.la
429@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@module_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES)
430@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@module_la_LIBADD = @EINA_LIBS@ @dlopen_libs@ $(top_builddir)/src/lib/libevas.la
431@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
432@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
433@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE@noinst_LTLIBRARIES = libevas_engine_software_generic.la
434@EVAS_STATIC_BUILD_SOFTWARE_GENERIC_TRUE@libevas_engine_software_generic_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES)
435all: all-am
436
437.SUFFIXES:
438.SUFFIXES: .c .lo .o .obj
439$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
440 @for dep in $?; do \
441 case '$(am__configure_deps)' in \
442 *$$dep*) \
443 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
444 && { if test -f $@; then exit 0; else break; fi; }; \
445 exit 1;; \
446 esac; \
447 done; \
448 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_generic/Makefile'; \
449 $(am__cd) $(top_srcdir) && \
450 $(AUTOMAKE) --gnu src/modules/engines/software_generic/Makefile
451.PRECIOUS: Makefile
452Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
453 @case '$?' in \
454 *config.status*) \
455 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
456 *) \
457 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
458 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
459 esac;
460
461$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
462 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
463
464$(top_srcdir)/configure: $(am__configure_deps)
465 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
466$(ACLOCAL_M4): $(am__aclocal_m4_deps)
467 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
468$(am__aclocal_m4_deps):
469
470clean-noinstLTLIBRARIES:
471 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
472 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
473 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
474 test "$$dir" != "$$p" || dir=.; \
475 echo "rm -f \"$${dir}/so_locations\""; \
476 rm -f "$${dir}/so_locations"; \
477 done
478install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
479 @$(NORMAL_INSTALL)
480 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
481 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
482 list2=; for p in $$list; do \
483 if test -f $$p; then \
484 list2="$$list2 $$p"; \
485 else :; fi; \
486 done; \
487 test -z "$$list2" || { \
488 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
489 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
490 }
491
492uninstall-pkgLTLIBRARIES:
493 @$(NORMAL_UNINSTALL)
494 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
495 for p in $$list; do \
496 $(am__strip_dir) \
497 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
498 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
499 done
500
501clean-pkgLTLIBRARIES:
502 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
503 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
504 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
505 test "$$dir" != "$$p" || dir=.; \
506 echo "rm -f \"$${dir}/so_locations\""; \
507 rm -f "$${dir}/so_locations"; \
508 done
509libevas_engine_software_generic.la: $(libevas_engine_software_generic_la_OBJECTS) $(libevas_engine_software_generic_la_DEPENDENCIES)
510 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_generic_la_rpath) $(libevas_engine_software_generic_la_OBJECTS) $(libevas_engine_software_generic_la_LIBADD) $(LIBS)
511module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
512 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
513
514mostlyclean-compile:
515 -rm -f *.$(OBJEXT)
516
517distclean-compile:
518 -rm -f *.tab.c
519
520@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
521@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
522
523.c.o:
524@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
525@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
526@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
527@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
528@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
529@am__fastdepCC_FALSE@ $(COMPILE) -c $<
530
531.c.obj:
532@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
533@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
534@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
535@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
536@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
537@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
538
539.c.lo:
540@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
541@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
542@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
543@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
544@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
545@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
546
547module_la-evas_engine.lo: evas_engine.c
548@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
549@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
550@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
551@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
552@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
553@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
554
555mostlyclean-libtool:
556 -rm -f *.lo
557
558clean-libtool:
559 -rm -rf .libs _libs
560
561ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
562 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
563 unique=`for i in $$list; do \
564 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
565 done | \
566 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
567 END { if (nonempty) { for (i in files) print i; }; }'`; \
568 mkid -fID $$unique
569tags: TAGS
570
571TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
572 $(TAGS_FILES) $(LISP)
573 set x; \
574 here=`pwd`; \
575 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
576 unique=`for i in $$list; do \
577 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
578 done | \
579 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
580 END { if (nonempty) { for (i in files) print i; }; }'`; \
581 shift; \
582 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
583 test -n "$$unique" || unique=$$empty_fix; \
584 if test $$# -gt 0; then \
585 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
586 "$$@" $$unique; \
587 else \
588 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
589 $$unique; \
590 fi; \
591 fi
592ctags: CTAGS
593CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
594 $(TAGS_FILES) $(LISP)
595 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
596 unique=`for i in $$list; do \
597 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
598 done | \
599 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
600 END { if (nonempty) { for (i in files) print i; }; }'`; \
601 test -z "$(CTAGS_ARGS)$$unique" \
602 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
603 $$unique
604
605GTAGS:
606 here=`$(am__cd) $(top_builddir) && pwd` \
607 && $(am__cd) $(top_srcdir) \
608 && gtags -i $(GTAGS_ARGS) "$$here"
609
610distclean-tags:
611 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
612
613distdir: $(DISTFILES)
614 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
615 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
616 list='$(DISTFILES)'; \
617 dist_files=`for file in $$list; do echo $$file; done | \
618 sed -e "s|^$$srcdirstrip/||;t" \
619 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
620 case $$dist_files in \
621 */*) $(MKDIR_P) `echo "$$dist_files" | \
622 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
623 sort -u` ;; \
624 esac; \
625 for file in $$dist_files; do \
626 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
627 if test -d $$d/$$file; then \
628 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
629 if test -d "$(distdir)/$$file"; then \
630 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
631 fi; \
632 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
633 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
634 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
635 fi; \
636 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
637 else \
638 test -f "$(distdir)/$$file" \
639 || cp -p $$d/$$file "$(distdir)/$$file" \
640 || exit 1; \
641 fi; \
642 done
643check-am: all-am
644check: check-am
645all-am: Makefile $(LTLIBRARIES)
646installdirs:
647 for dir in "$(DESTDIR)$(pkgdir)"; do \
648 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
649 done
650install: install-am
651install-exec: install-exec-am
652install-data: install-data-am
653uninstall: uninstall-am
654
655install-am: all-am
656 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
657
658installcheck: installcheck-am
659install-strip:
660 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
661 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
662 `test -z '$(STRIP)' || \
663 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
664mostlyclean-generic:
665
666clean-generic:
667
668distclean-generic:
669 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
670 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
671
672maintainer-clean-generic:
673 @echo "This command is intended for maintainers to use"
674 @echo "it deletes files that may require special tools to rebuild."
675 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
676clean: clean-am
677
678clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
679 clean-pkgLTLIBRARIES mostlyclean-am
680
681distclean: distclean-am
682 -rm -rf ./$(DEPDIR)
683 -rm -f Makefile
684distclean-am: clean-am distclean-compile distclean-generic \
685 distclean-tags
686
687dvi: dvi-am
688
689dvi-am:
690
691html: html-am
692
693html-am:
694
695info: info-am
696
697info-am:
698
699install-data-am: install-pkgLTLIBRARIES
700
701install-dvi: install-dvi-am
702
703install-dvi-am:
704
705install-exec-am:
706
707install-html: install-html-am
708
709install-html-am:
710
711install-info: install-info-am
712
713install-info-am:
714
715install-man:
716
717install-pdf: install-pdf-am
718
719install-pdf-am:
720
721install-ps: install-ps-am
722
723install-ps-am:
724
725installcheck-am:
726
727maintainer-clean: maintainer-clean-am
728 -rm -rf ./$(DEPDIR)
729 -rm -f Makefile
730maintainer-clean-am: distclean-am maintainer-clean-generic
731
732mostlyclean: mostlyclean-am
733
734mostlyclean-am: mostlyclean-compile mostlyclean-generic \
735 mostlyclean-libtool
736
737pdf: pdf-am
738
739pdf-am:
740
741ps: ps-am
742
743ps-am:
744
745uninstall-am: uninstall-pkgLTLIBRARIES
746
747.MAKE: install-am install-strip
748
749.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
750 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
751 ctags distclean distclean-compile distclean-generic \
752 distclean-libtool distclean-tags distdir dvi dvi-am html \
753 html-am info info-am install install-am install-data \
754 install-data-am install-dvi install-dvi-am install-exec \
755 install-exec-am install-html install-html-am install-info \
756 install-info-am install-man install-pdf install-pdf-am \
757 install-pkgLTLIBRARIES install-ps install-ps-am install-strip \
758 installcheck installcheck-am installdirs maintainer-clean \
759 maintainer-clean-generic mostlyclean mostlyclean-compile \
760 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
761 tags uninstall uninstall-am uninstall-pkgLTLIBRARIES
762
763
764# Tell versions [3.59,3.63) of GNU make to not export all variables.
765# Otherwise a system limit (for SysV at least) may be exceeded.
766.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_generic/evas_engine.c b/libraries/evas/src/modules/engines/software_generic/evas_engine.c
deleted file mode 100644
index 4667f6b..0000000
--- a/libraries/evas/src/modules/engines/software_generic/evas_engine.c
+++ /dev/null
@@ -1,2818 +0,0 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_private.h"
3
4#ifdef HAVE_DLSYM
5# include <dlfcn.h> /* dlopen,dlclose,etc */
6
7# define EVAS_GL 1
8# define EVAS_GL_NO_GL_H_CHECK 1
9# include "Evas_GL.h"
10
11#else
12# warning software_generic will not be able to have Evas_GL API.
13#endif
14
15#ifdef EVAS_GL
16//----------------------------------//
17// OSMesa...
18
19#define OSMESA_MAJOR_VERSION 6
20#define OSMESA_MINOR_VERSION 5
21#define OSMESA_PATCH_VERSION 0
22
23/*
24 * Values for the format parameter of OSMesaCreateContext()
25 * New in version 2.0.
26 */
27#define OSMESA_COLOR_INDEX GL_COLOR_INDEX
28#define OSMESA_RGBA GL_RGBA
29#define OSMESA_BGRA 0x1
30#define OSMESA_ARGB 0x2
31#define OSMESA_RGB GL_RGB
32#define OSMESA_BGR 0x4
33#define OSMESA_RGB_565 0x5
34
35
36/*
37 * OSMesaPixelStore() parameters:
38 * New in version 2.0.
39 */
40#define OSMESA_ROW_LENGTH 0x10
41#define OSMESA_Y_UP 0x11
42
43
44/*
45 * Accepted by OSMesaGetIntegerv:
46 */
47#define OSMESA_WIDTH 0x20
48#define OSMESA_HEIGHT 0x21
49#define OSMESA_FORMAT 0x22
50#define OSMESA_TYPE 0x23
51#define OSMESA_MAX_WIDTH 0x24 /* new in 4.0 */
52#define OSMESA_MAX_HEIGHT 0x25 /* new in 4.0 */
53
54
55typedef void (*OSMESAproc)();
56typedef struct osmesa_context *OSMesaContext;
57#endif
58
59typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
60typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
61
62struct _Render_Engine_GL_Surface
63{
64 int initialized;
65 int w, h;
66
67#ifdef EVAS_GL
68 GLenum internal_fmt;
69#endif
70 int internal_cpp; // Component per pixel. ie. RGB = 3
71
72 int depth_bits;
73 int stencil_bits;
74
75 // Data
76 void *buffer;
77
78 Render_Engine_GL_Context *current_ctx;
79};
80
81#ifdef EVAS_GL
82struct _Render_Engine_GL_Context
83{
84 int initialized;
85
86 OSMesaContext context;
87
88 Render_Engine_GL_Context *share_ctx;
89
90 Render_Engine_GL_Surface *current_sfc;
91};
92
93//------------------------------------------------------//
94typedef void (*_eng_fn) (void );
95typedef _eng_fn (*glsym_func_eng_fn) ();
96typedef void (*glsym_func_void) ();
97typedef unsigned int (*glsym_func_uint) ();
98typedef int (*glsym_func_int) ();
99typedef unsigned char (*glsym_func_uchar) ();
100typedef unsigned char *(*glsym_func_uchar_ptr) ();
101typedef const unsigned char *(*glsym_func_const_uchar_ptr) ();
102typedef char const *(*glsym_func_char_const_ptr) ();
103typedef GLboolean (*glsym_func_bool) ();
104typedef OSMesaContext (*glsym_func_osm_ctx) ();
105//------------------------------------------------------//
106
107/* Function table for GL APIs */
108static Evas_GL_API gl_funcs;
109static void *gl_lib_handle;
110static int gl_lib_is_gles = 0;
111static Evas_GL_API gl_funcs;
112
113//------------------------------------------------------//
114// OSMesa APIS...
115static OSMesaContext (*_sym_OSMesaCreateContextExt) (GLenum format, GLint depthBits, GLint stencilBits, GLint accumBits, OSMesaContext sharelist) = NULL;
116static void (*_sym_OSMesaDestroyContext) (OSMesaContext ctx) = NULL;
117static GLboolean (*_sym_OSMesaMakeCurrent) (OSMesaContext ctx, void *buffer, GLenum type, GLsizei width, GLsizei height) = NULL;
118static void (*_sym_OSMesaPixelStore) (GLint pname, GLint value) = NULL;
119static OSMESAproc (*_sym_OSMesaGetProcAddress) (const char *funcName);
120
121
122//------------------------------------------------------//
123// GLES 2.0 APIs...
124static void (*_sym_glActiveTexture) (GLenum texture) = NULL;
125static void (*_sym_glAttachShader) (GLuint program, GLuint shader) = NULL;
126static void (*_sym_glBindAttribLocation) (GLuint program, GLuint index, const char* name) = NULL;
127static void (*_sym_glBindBuffer) (GLenum target, GLuint buffer) = NULL;
128static void (*_sym_glBindFramebuffer) (GLenum target, GLuint framebuffer) = NULL;
129static void (*_sym_glBindRenderbuffer) (GLenum target, GLuint renderbuffer) = NULL;
130static void (*_sym_glBindTexture) (GLenum target, GLuint texture) = NULL;
131static void (*_sym_glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = NULL;
132static void (*_sym_glBlendEquation) (GLenum mode) = NULL;
133static void (*_sym_glBlendEquationSeparate) (GLenum modeRGB, GLenum modeAlpha) = NULL;
134static void (*_sym_glBlendFunc) (GLenum sfactor, GLenum dfactor) = NULL;
135static void (*_sym_glBlendFuncSeparate) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) = NULL;
136static void (*_sym_glBufferData) (GLenum target, GLsizeiptr size, const void* data, GLenum usage) = NULL;
137static void (*_sym_glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const void* data) = NULL;
138static GLenum (*_sym_glCheckFramebufferStatus) (GLenum target) = NULL;
139static void (*_sym_glClear) (GLbitfield mask) = NULL;
140static void (*_sym_glClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = NULL;
141static void (*_sym_glClearDepthf) (GLclampf depth) = NULL;
142static void (*_sym_glClearStencil) (GLint s) = NULL;
143static void (*_sym_glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) = NULL;
144static void (*_sym_glCompileShader) (GLuint shader) = NULL;
145static void (*_sym_glCompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data) = NULL;
146static void (*_sym_glCompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data) = NULL;
147static void (*_sym_glCopyTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) = NULL;
148static void (*_sym_glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
149static GLuint (*_sym_glCreateProgram) (void) = NULL;
150static GLuint (*_sym_glCreateShader) (GLenum type) = NULL;
151static void (*_sym_glCullFace) (GLenum mode) = NULL;
152static void (*_sym_glDeleteBuffers) (GLsizei n, const GLuint* buffers) = NULL;
153static void (*_sym_glDeleteFramebuffers) (GLsizei n, const GLuint* framebuffers) = NULL;
154static void (*_sym_glDeleteProgram) (GLuint program) = NULL;
155static void (*_sym_glDeleteRenderbuffers) (GLsizei n, const GLuint* renderbuffers) = NULL;
156static void (*_sym_glDeleteShader) (GLuint shader) = NULL;
157static void (*_sym_glDeleteTextures) (GLsizei n, const GLuint* textures) = NULL;
158static void (*_sym_glDepthFunc) (GLenum func) = NULL;
159static void (*_sym_glDepthMask) (GLboolean flag) = NULL;
160static void (*_sym_glDepthRangef) (GLclampf zNear, GLclampf zFar) = NULL;
161static void (*_sym_glDetachShader) (GLuint program, GLuint shader) = NULL;
162static void (*_sym_glDisable) (GLenum cap) = NULL;
163static void (*_sym_glDisableVertexAttribArray) (GLuint index) = NULL;
164static void (*_sym_glDrawArrays) (GLenum mode, GLint first, GLsizei count) = NULL;
165static void (*_sym_glDrawElements) (GLenum mode, GLsizei count, GLenum type, const void* indices) = NULL;
166static void (*_sym_glEnable) (GLenum cap) = NULL;
167static void (*_sym_glEnableVertexAttribArray) (GLuint index) = NULL;
168static void (*_sym_glFinish) (void) = NULL;
169static void (*_sym_glFlush) (void) = NULL;
170static void (*_sym_glFramebufferRenderbuffer) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) = NULL;
171static void (*_sym_glFramebufferTexture2D) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = NULL;
172static void (*_sym_glFrontFace) (GLenum mode) = NULL;
173static void (*_sym_glGenBuffers) (GLsizei n, GLuint* buffers) = NULL;
174static void (*_sym_glGenerateMipmap) (GLenum target) = NULL;
175static void (*_sym_glGenFramebuffers) (GLsizei n, GLuint* framebuffers) = NULL;
176static void (*_sym_glGenRenderbuffers) (GLsizei n, GLuint* renderbuffers) = NULL;
177static void (*_sym_glGenTextures) (GLsizei n, GLuint* textures) = NULL;
178static void (*_sym_glGetActiveAttrib) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = NULL;
179static void (*_sym_glGetActiveUniform) (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name) = NULL;
180static void (*_sym_glGetAttachedShaders) (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) = NULL;
181static int (*_sym_glGetAttribLocation) (GLuint program, const char* name) = NULL;
182static void (*_sym_glGetBooleanv) (GLenum pname, GLboolean* params) = NULL;
183static void (*_sym_glGetBufferParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
184static GLenum (*_sym_glGetError) (void) = NULL;
185static void (*_sym_glGetFloatv) (GLenum pname, GLfloat* params) = NULL;
186static void (*_sym_glGetFramebufferAttachmentParameteriv) (GLenum target, GLenum attachment, GLenum pname, GLint* params) = NULL;
187static void (*_sym_glGetIntegerv) (GLenum pname, GLint* params) = NULL;
188static void (*_sym_glGetProgramiv) (GLuint program, GLenum pname, GLint* params) = NULL;
189static void (*_sym_glGetProgramInfoLog) (GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) = NULL;
190static void (*_sym_glGetRenderbufferParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
191static void (*_sym_glGetShaderiv) (GLuint shader, GLenum pname, GLint* params) = NULL;
192static void (*_sym_glGetShaderInfoLog) (GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) = NULL;
193static void (*_sym_glGetShaderPrecisionFormat) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) = NULL;
194static void (*_sym_glGetShaderSource) (GLuint shader, GLsizei bufsize, GLsizei* length, char* source) = NULL;
195static const GLubyte *(*_sym_glGetString) (GLenum name) = NULL;
196static void (*_sym_glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat* params) = NULL;
197static void (*_sym_glGetTexParameteriv) (GLenum target, GLenum pname, GLint* params) = NULL;
198static void (*_sym_glGetUniformfv) (GLuint program, GLint location, GLfloat* params) = NULL;
199static void (*_sym_glGetUniformiv) (GLuint program, GLint location, GLint* params) = NULL;
200static int (*_sym_glGetUniformLocation) (GLuint program, const char* name) = NULL;
201static void (*_sym_glGetVertexAttribfv) (GLuint index, GLenum pname, GLfloat* params) = NULL;
202static void (*_sym_glGetVertexAttribiv) (GLuint index, GLenum pname, GLint* params) = NULL;
203static void (*_sym_glGetVertexAttribPointerv) (GLuint index, GLenum pname, void** pointer) = NULL;
204static void (*_sym_glHint) (GLenum target, GLenum mode) = NULL;
205static GLboolean (*_sym_glIsBuffer) (GLuint buffer) = NULL;
206static GLboolean (*_sym_glIsEnabled) (GLenum cap) = NULL;
207static GLboolean (*_sym_glIsFramebuffer) (GLuint framebuffer) = NULL;
208static GLboolean (*_sym_glIsProgram) (GLuint program) = NULL;
209static GLboolean (*_sym_glIsRenderbuffer) (GLuint renderbuffer) = NULL;
210static GLboolean (*_sym_glIsShader) (GLuint shader) = NULL;
211static GLboolean (*_sym_glIsTexture) (GLuint texture) = NULL;
212static void (*_sym_glLineWidth) (GLfloat width) = NULL;
213static void (*_sym_glLinkProgram) (GLuint program) = NULL;
214static void (*_sym_glPixelStorei) (GLenum pname, GLint param) = NULL;
215static void (*_sym_glPolygonOffset) (GLfloat factor, GLfloat units) = NULL;
216static void (*_sym_glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels) = NULL;
217static void (*_sym_glReleaseShaderCompiler) (void) = NULL;
218static void (*_sym_glRenderbufferStorage) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) = NULL;
219static void (*_sym_glSampleCoverage) (GLclampf value, GLboolean invert) = NULL;
220static void (*_sym_glScissor) (GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
221static void (*_sym_glShaderBinary) (GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length) = NULL;
222static void (*_sym_glShaderSource) (GLuint shader, GLsizei count, const char** string, const GLint* length) = NULL;
223static void (*_sym_glStencilFunc) (GLenum func, GLint ref, GLuint mask) = NULL;
224static void (*_sym_glStencilFuncSeparate) (GLenum face, GLenum func, GLint ref, GLuint mask) = NULL;
225static void (*_sym_glStencilMask) (GLuint mask) = NULL;
226static void (*_sym_glStencilMaskSeparate) (GLenum face, GLuint mask) = NULL;
227static void (*_sym_glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass) = NULL;
228static void (*_sym_glStencilOpSeparate) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass) = NULL;
229static void (*_sym_glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels) = NULL;
230static void (*_sym_glTexParameterf) (GLenum target, GLenum pname, GLfloat param) = NULL;
231static void (*_sym_glTexParameterfv) (GLenum target, GLenum pname, const GLfloat* params) = NULL;
232static void (*_sym_glTexParameteri) (GLenum target, GLenum pname, GLint param) = NULL;
233static void (*_sym_glTexParameteriv) (GLenum target, GLenum pname, const GLint* params) = NULL;
234static void (*_sym_glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels) = NULL;
235static void (*_sym_glUniform1f) (GLint location, GLfloat x) = NULL;
236static void (*_sym_glUniform1fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
237static void (*_sym_glUniform1i) (GLint location, GLint x) = NULL;
238static void (*_sym_glUniform1iv) (GLint location, GLsizei count, const GLint* v) = NULL;
239static void (*_sym_glUniform2f) (GLint location, GLfloat x, GLfloat y) = NULL;
240static void (*_sym_glUniform2fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
241static void (*_sym_glUniform2i) (GLint location, GLint x, GLint y) = NULL;
242static void (*_sym_glUniform2iv) (GLint location, GLsizei count, const GLint* v) = NULL;
243static void (*_sym_glUniform3f) (GLint location, GLfloat x, GLfloat y, GLfloat z) = NULL;
244static void (*_sym_glUniform3fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
245static void (*_sym_glUniform3i) (GLint location, GLint x, GLint y, GLint z) = NULL;
246static void (*_sym_glUniform3iv) (GLint location, GLsizei count, const GLint* v) = NULL;
247static void (*_sym_glUniform4f) (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = NULL;
248static void (*_sym_glUniform4fv) (GLint location, GLsizei count, const GLfloat* v) = NULL;
249static void (*_sym_glUniform4i) (GLint location, GLint x, GLint y, GLint z, GLint w) = NULL;
250static void (*_sym_glUniform4iv) (GLint location, GLsizei count, const GLint* v) = NULL;
251static void (*_sym_glUniformMatrix2fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
252static void (*_sym_glUniformMatrix3fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
253static void (*_sym_glUniformMatrix4fv) (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) = NULL;
254static void (*_sym_glUseProgram) (GLuint program) = NULL;
255static void (*_sym_glValidateProgram) (GLuint program) = NULL;
256static void (*_sym_glVertexAttrib1f) (GLuint indx, GLfloat x) = NULL;
257static void (*_sym_glVertexAttrib1fv) (GLuint indx, const GLfloat* values) = NULL;
258static void (*_sym_glVertexAttrib2f) (GLuint indx, GLfloat x, GLfloat y) = NULL;
259static void (*_sym_glVertexAttrib2fv) (GLuint indx, const GLfloat* values) = NULL;
260static void (*_sym_glVertexAttrib3f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z) = NULL;
261static void (*_sym_glVertexAttrib3fv) (GLuint indx, const GLfloat* values) = NULL;
262static void (*_sym_glVertexAttrib4f) (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) = NULL;
263static void (*_sym_glVertexAttrib4fv) (GLuint indx, const GLfloat* values) = NULL;
264static void (*_sym_glVertexAttribPointer) (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr) = NULL;
265static void (*_sym_glViewport) (GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
266
267// GLES Extensions...
268/* static void (*_sym_glGetProgramBinary) (GLuint a, GLsizei b, GLsizei* c, GLenum* d, void* e) = NULL; */
269/* static void (*_sym_glProgramBinary) (GLuint a, GLenum b, const void* c, GLint d) = NULL; */
270/* static void (*_sym_glProgramParameteri) (GLuint a, GLuint b, GLint d) = NULL; */
271#endif
272
273/*
274 *****
275 **
276 ** ENGINE ROUTINES
277 **
278 *****
279 */
280static int cpunum = 0;
281static int _evas_soft_gen_log_dom = -1;
282
283static void
284eng_output_dump(void *data __UNUSED__)
285{
286 evas_common_image_image_all_unload();
287 evas_common_font_font_all_unload();
288}
289
290static void *
291eng_context_new(void *data __UNUSED__)
292{
293 return evas_common_draw_context_new();
294}
295
296static void
297eng_context_free(void *data __UNUSED__, void *context)
298{
299 evas_common_draw_context_free(context);
300}
301
302static void
303eng_context_clip_set(void *data __UNUSED__, void *context, int x, int y, int w, int h)
304{
305 evas_common_draw_context_set_clip(context, x, y, w, h);
306}
307
308static void
309eng_context_clip_clip(void *data __UNUSED__, void *context, int x, int y, int w, int h)
310{
311 evas_common_draw_context_clip_clip(context, x, y, w, h);
312}
313
314static void
315eng_context_clip_unset(void *data __UNUSED__, void *context)
316{
317 evas_common_draw_context_unset_clip(context);
318}
319
320static int
321eng_context_clip_get(void *data __UNUSED__, void *context, int *x, int *y, int *w, int *h)
322{
323 *x = ((RGBA_Draw_Context *)context)->clip.x;
324 *y = ((RGBA_Draw_Context *)context)->clip.y;
325 *w = ((RGBA_Draw_Context *)context)->clip.w;
326 *h = ((RGBA_Draw_Context *)context)->clip.h;
327 return ((RGBA_Draw_Context *)context)->clip.use;
328}
329
330static void
331eng_context_color_set(void *data __UNUSED__, void *context, int r, int g, int b, int a)
332{
333 evas_common_draw_context_set_color(context, r, g, b, a);
334}
335
336static int
337eng_context_color_get(void *data __UNUSED__, void *context, int *r, int *g, int *b, int *a)
338{
339 *r = (int)(R_VAL(&((RGBA_Draw_Context *)context)->col.col));
340 *g = (int)(G_VAL(&((RGBA_Draw_Context *)context)->col.col));
341 *b = (int)(B_VAL(&((RGBA_Draw_Context *)context)->col.col));
342 *a = (int)(A_VAL(&((RGBA_Draw_Context *)context)->col.col));
343 return 1;
344}
345
346static void
347eng_context_multiplier_set(void *data __UNUSED__, void *context, int r, int g, int b, int a)
348{
349 evas_common_draw_context_set_multiplier(context, r, g, b, a);
350}
351
352static void
353eng_context_multiplier_unset(void *data __UNUSED__, void *context)
354{
355 evas_common_draw_context_unset_multiplier(context);
356}
357
358static int
359eng_context_multiplier_get(void *data __UNUSED__, void *context, int *r, int *g, int *b, int *a)
360{
361 *r = (int)(R_VAL(&((RGBA_Draw_Context *)context)->mul.col));
362 *g = (int)(G_VAL(&((RGBA_Draw_Context *)context)->mul.col));
363 *b = (int)(B_VAL(&((RGBA_Draw_Context *)context)->mul.col));
364 *a = (int)(A_VAL(&((RGBA_Draw_Context *)context)->mul.col));
365 return ((RGBA_Draw_Context *)context)->mul.use;
366}
367
368static void
369eng_context_mask_set(void *data __UNUSED__, void *context, void *mask, int x, int y, int w, int h)
370{
371 evas_common_draw_context_set_mask(context, mask, x, y, w, h);
372}
373
374static void
375eng_context_mask_unset(void *data __UNUSED__, void *context)
376{
377 evas_common_draw_context_unset_mask(context);
378}
379/*
380static void *
381eng_context_mask_get(void *data __UNUSED__, void *context)
382{
383 return ((RGBA_Draw_Context *)context)->mask.mask;
384}
385*/
386
387static void
388eng_context_cutout_add(void *data __UNUSED__, void *context, int x, int y, int w, int h)
389{
390 evas_common_draw_context_add_cutout(context, x, y, w, h);
391}
392
393static void
394eng_context_cutout_clear(void *data __UNUSED__, void *context)
395{
396 evas_common_draw_context_clear_cutouts(context);
397}
398
399static void
400eng_context_anti_alias_set(void *data __UNUSED__, void *context, unsigned char aa)
401{
402 evas_common_draw_context_set_anti_alias(context, aa);
403}
404
405static unsigned char
406eng_context_anti_alias_get(void *data __UNUSED__, void *context)
407{
408 return ((RGBA_Draw_Context *)context)->anti_alias;
409}
410
411static void
412eng_context_color_interpolation_set(void *data __UNUSED__, void *context, int color_space)
413{
414 evas_common_draw_context_set_color_interpolation(context, color_space);
415}
416
417static int
418eng_context_color_interpolation_get(void *data __UNUSED__, void *context)
419{
420 return ((RGBA_Draw_Context *)context)->interpolation.color_space;
421}
422
423static void
424eng_context_render_op_set(void *data __UNUSED__, void *context, int op)
425{
426 evas_common_draw_context_set_render_op(context, op);
427}
428
429static int
430eng_context_render_op_get(void *data __UNUSED__, void *context)
431{
432 return ((RGBA_Draw_Context *)context)->render_op;
433}
434
435
436
437static void
438eng_rectangle_draw(void *data __UNUSED__, void *context, void *surface, int x, int y, int w, int h)
439{
440#ifdef BUILD_PIPE_RENDER
441 if ((cpunum > 1)
442#ifdef EVAS_FRAME_QUEUING
443 && evas_common_frameq_enabled()
444#endif
445 )
446 evas_common_pipe_rectangle_draw(surface, context, x, y, w, h);
447 else
448#endif
449 {
450 evas_common_rectangle_draw(surface, context, x, y, w, h);
451 evas_common_cpu_end_opt();
452 }
453}
454
455static void
456eng_line_draw(void *data __UNUSED__, void *context, void *surface, int x1, int y1, int x2, int y2)
457{
458#ifdef BUILD_PIPE_RENDER
459 if ((cpunum > 1)
460 #ifdef EVAS_FRAME_QUEUING
461 && evas_common_frameq_enabled()
462#endif
463 )
464 evas_common_pipe_line_draw(surface, context, x1, y1, x2, y2);
465 else
466#endif
467 {
468 evas_common_line_draw(surface, context, x1, y1, x2, y2);
469 evas_common_cpu_end_opt();
470 }
471}
472
473static void *
474eng_polygon_point_add(void *data __UNUSED__, void *context __UNUSED__, void *polygon, int x, int y)
475{
476 return evas_common_polygon_point_add(polygon, x, y);
477}
478
479static void *
480eng_polygon_points_clear(void *data __UNUSED__, void *context __UNUSED__, void *polygon)
481{
482 return evas_common_polygon_points_clear(polygon);
483}
484
485static void
486eng_polygon_draw(void *data __UNUSED__, void *context, void *surface, void *polygon, int x, int y)
487{
488#ifdef BUILD_PIPE_RENDER
489 if ((cpunum > 1)
490#ifdef EVAS_FRAME_QUEUING
491 && evas_common_frameq_enabled()
492#endif
493 )
494 evas_common_pipe_poly_draw(surface, context, polygon, x, y);
495 else
496#endif
497 {
498 evas_common_polygon_draw(surface, context, polygon, x, y);
499 evas_common_cpu_end_opt();
500 }
501}
502
503static int
504eng_image_alpha_get(void *data __UNUSED__, void *image)
505{
506 Image_Entry *im;
507
508 if (!image) return 1;
509 im = image;
510 switch (im->space)
511 {
512 case EVAS_COLORSPACE_ARGB8888:
513 if (im->flags.alpha) return 1;
514 default:
515 break;
516 }
517 return 0;
518}
519
520static int
521eng_image_colorspace_get(void *data __UNUSED__, void *image)
522{
523 Image_Entry *im;
524
525 if (!image) return EVAS_COLORSPACE_ARGB8888;
526 im = image;
527 return im->space;
528}
529
530static Eina_Bool
531eng_image_can_region_get(void *data __UNUSED__, void *image)
532{
533 Image_Entry *im;
534 if (!image) return EINA_FALSE;
535 im = image;
536 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
537}
538
539static void
540eng_image_mask_create(void *data __UNUSED__, void *image)
541{
542 RGBA_Image *im;
543 int sz;
544 uint8_t *dst,*end;
545 uint32_t *src;
546
547 if (!image) return;
548 im = image;
549 if (im->mask.mask && !im->mask.dirty) return;
550
551 if (im->mask.mask) free(im->mask.mask);
552 sz = im->cache_entry.w * im->cache_entry.h;
553 im->mask.mask = malloc(sz);
554 dst = im->mask.mask;
555 if (!im->image.data)
556 evas_cache_image_load_data(&im->cache_entry);
557 src = (void*) im->image.data;
558 if (!src) return;
559 for (end = dst + sz ; dst < end ; dst ++, src ++)
560 *dst = *src >> 24;
561 im->mask.dirty = 0;
562}
563
564
565static void *
566eng_image_alpha_set(void *data __UNUSED__, void *image, int has_alpha)
567{
568 RGBA_Image *im;
569
570 if (!image) return NULL;
571 im = image;
572 if (im->cache_entry.space != EVAS_COLORSPACE_ARGB8888)
573 {
574 im->cache_entry.flags.alpha = 0;
575 return im;
576 }
577 im = (RGBA_Image *) evas_cache_image_alone(&im->cache_entry);
578 evas_common_image_colorspace_dirty(im);
579
580 im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
581 return im;
582}
583
584static void *
585eng_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
586{
587 RGBA_Image *im;
588
589 im = image;
590 return im;
591}
592
593static void
594eng_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
595{
596}
597
598static char *
599eng_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
600{
601 RGBA_Image *im;
602
603 if (!image) return NULL;
604 im = image;
605 return im->info.comment;
606}
607
608static char *
609eng_image_format_get(void *data __UNUSED__, void *image __UNUSED__)
610{
611 return NULL;
612}
613
614static void
615eng_image_colorspace_set(void *data __UNUSED__, void *image, int cspace)
616{
617 Image_Entry *im;
618
619 if (!image) return;
620 im = image;
621 evas_cache_image_colorspace(im, cspace);
622}
623
624static void *
625eng_image_native_set(void *data __UNUSED__, void *image, void *native __UNUSED__)
626{
627 //return image;
628 Evas_Native_Surface *ns = native;
629 Image_Entry *im = image, *im2 = NULL;
630
631 if (!im)
632 {
633 if ((!ns) && (ns->data.x11.visual))
634 {
635 im = evas_cache_image_data(evas_common_image_cache_get(),
636 im->w, im->h,
637 ns->data.x11.visual, 1,
638 EVAS_COLORSPACE_ARGB8888);
639 return im;
640 }
641 else
642 return NULL;
643 }
644
645 if ((!ns) && (!im)) return im;
646
647 if (!ns) return im;
648
649 im2 = evas_cache_image_data(evas_common_image_cache_get(),
650 im->w, im->h,
651 ns->data.x11.visual, 1,
652 EVAS_COLORSPACE_ARGB8888);
653 evas_cache_image_drop(im);
654 im = im2;
655
656 return im;
657
658}
659
660static void *
661eng_image_native_get(void *data __UNUSED__, void *image __UNUSED__)
662{
663 return NULL;
664}
665
666static void *
667eng_image_load(void *data __UNUSED__, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
668{
669 *error = EVAS_LOAD_ERROR_NONE;
670 return evas_common_load_image_from_file(file, key, lo, error);
671}
672
673static void *
674eng_image_new_from_data(void *data __UNUSED__, int w, int h, DATA32 *image_data, int alpha, int cspace)
675{
676 return evas_cache_image_data(evas_common_image_cache_get(), w, h, image_data, alpha, cspace);
677}
678
679static void *
680eng_image_new_from_copied_data(void *data __UNUSED__, int w, int h, DATA32 *image_data, int alpha, int cspace)
681{
682 return evas_cache_image_copied_data(evas_common_image_cache_get(), w, h, image_data, alpha, cspace);
683}
684
685static void
686eng_image_free(void *data __UNUSED__, void *image)
687{
688 evas_cache_image_drop(image);
689}
690
691static void
692eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
693{
694 Image_Entry *im;
695
696 im = image;
697 if (w) *w = im->w;
698 if (h) *h = im->h;
699}
700
701static void *
702eng_image_size_set(void *data __UNUSED__, void *image, int w, int h)
703{
704 Image_Entry *im = image;
705 if (!im) return NULL;
706 return evas_cache_image_size_set(im, w, h);
707}
708
709static void *
710eng_image_dirty_region(void *data __UNUSED__, void *image, int x, int y, int w, int h)
711{
712 Image_Entry *im = image;
713 if (!im) return NULL;
714 return evas_cache_image_dirty(im, x, y, w, h);
715}
716
717static void *
718eng_image_data_get(void *data __UNUSED__, void *image, int to_write, DATA32 **image_data, int *err)
719{
720 RGBA_Image *im;
721 int error;
722
723 if (!image)
724 {
725 *image_data = NULL;
726 return NULL;
727 }
728 im = image;
729 error = evas_cache_image_load_data(&im->cache_entry);
730 switch (im->cache_entry.space)
731 {
732 case EVAS_COLORSPACE_ARGB8888:
733 if (to_write)
734 im = (RGBA_Image *)evas_cache_image_alone(&im->cache_entry);
735 *image_data = im->image.data;
736 break;
737 case EVAS_COLORSPACE_YCBCR422P601_PL:
738 case EVAS_COLORSPACE_YCBCR422P709_PL:
739 case EVAS_COLORSPACE_YCBCR422601_PL:
740 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
741 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
742 *image_data = im->cs.data;
743 break;
744 default:
745 abort();
746 break;
747 }
748 if (err) *err = error;
749 return im;
750}
751
752static void *
753eng_image_data_put(void *data, void *image, DATA32 *image_data)
754{
755 RGBA_Image *im, *im2;
756
757 if (!image) return NULL;
758 im = image;
759 switch (im->cache_entry.space)
760 {
761 case EVAS_COLORSPACE_ARGB8888:
762 if (image_data != im->image.data)
763 {
764 int w, h;
765
766 w = im->cache_entry.w;
767 h = im->cache_entry.h;
768 im2 = eng_image_new_from_data(data, w, h, image_data,
769 eng_image_alpha_get(data, image),
770 eng_image_colorspace_get(data, image));
771 evas_cache_image_drop(&im->cache_entry);
772 im = im2;
773 }
774 break;
775 case EVAS_COLORSPACE_YCBCR422P601_PL:
776 case EVAS_COLORSPACE_YCBCR422P709_PL:
777 case EVAS_COLORSPACE_YCBCR422601_PL:
778 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
779 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
780 if (image_data != im->cs.data)
781 {
782 if (im->cs.data)
783 {
784 if (!im->cs.no_free) free(im->cs.data);
785 }
786 im->cs.data = image_data;
787 }
788 evas_common_image_colorspace_dirty(im);
789 break;
790 default:
791 abort();
792 break;
793 }
794 return im;
795}
796
797static void
798eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
799{
800 RGBA_Image *im = image;
801
802 if (!im) return ;
803 evas_cache_image_preload_data(&im->cache_entry, target);
804}
805
806static void
807eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
808{
809 RGBA_Image *im = image;
810
811 if (!im) return ;
812 evas_cache_image_preload_cancel(&im->cache_entry, target);
813}
814
815static void
816eng_image_draw(void *data __UNUSED__, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
817{
818 RGBA_Image *im;
819
820 if (!image) return;
821 im = image;
822#ifdef BUILD_PIPE_RENDER
823 if ((cpunum > 1)
824#ifdef EVAS_FRAME_QUEUING
825 && evas_common_frameq_enabled()
826#endif
827 )
828 {
829 evas_common_rgba_image_scalecache_prepare((Image_Entry *)(im),
830 surface, context, smooth,
831 src_x, src_y, src_w, src_h,
832 dst_x, dst_y, dst_w, dst_h);
833
834 evas_common_pipe_image_draw(im, surface, context, smooth,
835 src_x, src_y, src_w, src_h,
836 dst_x, dst_y, dst_w, dst_h);
837 }
838 else
839#endif
840 {
841// if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888)
842// evas_cache_image_load_data(&im->cache_entry);
843// evas_common_image_colorspace_normalize(im);
844 evas_common_rgba_image_scalecache_prepare(&im->cache_entry, surface, context, smooth,
845 src_x, src_y, src_w, src_h,
846 dst_x, dst_y, dst_w, dst_h);
847 evas_common_rgba_image_scalecache_do(&im->cache_entry, surface, context, smooth,
848 src_x, src_y, src_w, src_h,
849 dst_x, dst_y, dst_w, dst_h);
850/*
851 if (smooth)
852 evas_common_scale_rgba_in_to_out_clip_smooth(im, surface, context,
853 src_x, src_y, src_w, src_h,
854 dst_x, dst_y, dst_w, dst_h);
855 else
856 evas_common_scale_rgba_in_to_out_clip_sample(im, surface, context,
857 src_x, src_y, src_w, src_h,
858 dst_x, dst_y, dst_w, dst_h);
859 */
860 evas_common_cpu_end_opt();
861 }
862}
863
864static void
865eng_image_map_draw(void *data __UNUSED__, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
866{
867 RGBA_Image *im;
868
869 if (!image) return;
870 if (npoints < 3) return;
871 im = image;
872
873 if ((p[0].x == p[3].x) &&
874 (p[1].x == p[2].x) &&
875 (p[0].y == p[1].y) &&
876 (p[3].y == p[2].y) &&
877 (p[0].x <= p[1].x) &&
878 (p[0].y <= p[2].y) &&
879 (p[0].u == 0) &&
880 (p[0].v == 0) &&
881 (p[1].u == (int)(im->cache_entry.w << FP)) &&
882 (p[1].v == 0) &&
883 (p[2].u == (int)(im->cache_entry.w << FP)) &&
884 (p[2].v == (int)(im->cache_entry.h << FP)) &&
885 (p[3].u == 0) &&
886 (p[3].v == (int)(im->cache_entry.h << FP)) &&
887 (p[0].col == 0xffffffff) &&
888 (p[1].col == 0xffffffff) &&
889 (p[2].col == 0xffffffff) &&
890 (p[3].col == 0xffffffff))
891 {
892 int dx, dy, dw, dh;
893
894 dx = p[0].x >> FP;
895 dy = p[0].y >> FP;
896 dw = (p[2].x >> FP) - dx;
897 dh = (p[2].y >> FP) - dy;
898 eng_image_draw
899 (data, context, surface, image,
900 0, 0, im->cache_entry.w, im->cache_entry.h,
901 dx, dy, dw, dh, smooth);
902 }
903 else
904 {
905#ifdef BUILD_PIPE_RENDER
906 if ((cpunum > 1)
907# ifdef EVAS_FRAME_QUEUING
908 && evas_common_frameq_enabled()
909# endif
910 )
911 evas_common_pipe_map_draw(im, surface, context, npoints, p, smooth, level);
912 else
913#endif
914 evas_common_map_rgba(im, surface, context, npoints, p, smooth, level);
915 }
916 evas_common_cpu_end_opt();
917
918 if (npoints > 4)
919 {
920 eng_image_map_draw(data, context, surface, image, npoints - 2, p + 2,
921 smooth, level);
922 }
923}
924
925static void *
926eng_image_map_surface_new(void *data __UNUSED__, int w, int h, int alpha)
927{
928 void *surface;
929 surface = evas_cache_image_copied_data(evas_common_image_cache_get(),
930 w, h, NULL, alpha,
931 EVAS_COLORSPACE_ARGB8888);
932 evas_cache_image_pixels(surface);
933 return surface;
934}
935
936static void
937eng_image_map_surface_free(void *data __UNUSED__, void *surface)
938{
939 evas_cache_image_drop(surface);
940}
941
942static void
943eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
944{
945 Image_Entry *im;
946
947 if (!image) return;
948 im = image;
949 im->scale_hint = hint;
950}
951
952static int
953eng_image_scale_hint_get(void *data __UNUSED__, void *image)
954{
955 Image_Entry *im;
956
957 if (!image) return EVAS_IMAGE_SCALE_HINT_NONE;
958 im = image;
959 return im->scale_hint;
960}
961
962static Eina_Bool
963eng_image_animated_get(void *data __UNUSED__, void *image)
964{
965 Image_Entry *im;
966
967 if (!image) return EINA_FALSE;
968 im = image;
969 return im->flags.animated;
970}
971
972static int
973eng_image_animated_frame_count_get(void *data __UNUSED__, void *image)
974{
975 Image_Entry *im;
976
977 if (!image) return -1;
978 im = image;
979 if (!im->flags.animated) return -1;
980 return im->frame_count;
981}
982
983static Evas_Image_Animated_Loop_Hint
984eng_image_animated_loop_type_get(void *data __UNUSED__, void *image)
985{
986 Image_Entry *im;
987
988 if (!image) return EVAS_IMAGE_ANIMATED_HINT_NONE;
989 im = image;
990 if (!im->flags.animated) return EVAS_IMAGE_ANIMATED_HINT_NONE;
991 return im->loop_hint;
992}
993
994static int
995eng_image_animated_loop_count_get(void *data __UNUSED__, void *image)
996{
997 Image_Entry *im;
998
999 if (!image) return -1;
1000 im = image;
1001 if (!im->flags.animated) return -1;
1002 return im->loop_count;
1003}
1004
1005static double
1006eng_image_animated_frame_duration_get(void *data __UNUSED__, void *image, int start_frame, int frame_num)
1007{
1008 Image_Entry *im;
1009
1010 if (!image) return -1;
1011 im = image;
1012 if (!im->flags.animated) return -1;
1013 return evas_common_load_rgba_image_frame_duration_from_file(im, start_frame, frame_num);
1014}
1015
1016static Eina_Bool
1017eng_image_animated_frame_set(void *data __UNUSED__, void *image, int frame_index)
1018{
1019 Image_Entry *im;
1020
1021 if (!image) return EINA_FALSE;
1022 im = image;
1023 if (!im->flags.animated) return EINA_FALSE;
1024 if (im->cur_frame == frame_index) return EINA_FALSE;
1025 im->cur_frame = frame_index;
1026 return EINA_TRUE;
1027}
1028
1029static void
1030eng_image_cache_flush(void *data __UNUSED__)
1031{
1032 int tmp_size;
1033
1034 tmp_size = evas_common_image_get_cache();
1035 evas_common_image_set_cache(0);
1036 evas_common_rgba_image_scalecache_flush();
1037 evas_common_image_set_cache(tmp_size);
1038}
1039
1040static void
1041eng_image_cache_set(void *data __UNUSED__, int bytes)
1042{
1043 evas_common_image_set_cache(bytes);
1044 evas_common_rgba_image_scalecache_size_set(bytes);
1045}
1046
1047static int
1048eng_image_cache_get(void *data __UNUSED__)
1049{
1050 return evas_common_image_get_cache();
1051}
1052
1053static Evas_Font_Set *
1054eng_font_load(void *data __UNUSED__, const char *name, int size,
1055 Font_Rend_Flags wanted_rend)
1056{
1057 return (Evas_Font_Set *) evas_common_font_load(name, size, wanted_rend);
1058}
1059
1060static Evas_Font_Set *
1061eng_font_memory_load(void *data __UNUSED__, char *name, int size, const void *fdata, int fdata_size, Font_Rend_Flags wanted_rend)
1062{
1063 return (Evas_Font_Set *) evas_common_font_memory_load(name, size, fdata,
1064 fdata_size, wanted_rend);
1065}
1066
1067static Evas_Font_Set *
1068eng_font_add(void *data __UNUSED__, Evas_Font_Set *font, const char *name, int size, Font_Rend_Flags wanted_rend)
1069{
1070 return (Evas_Font_Set *) evas_common_font_add((RGBA_Font *) font, name,
1071 size, wanted_rend);
1072}
1073
1074static Evas_Font_Set *
1075eng_font_memory_add(void *data __UNUSED__, Evas_Font_Set *font, char *name, int size, const void *fdata, int fdata_size, Font_Rend_Flags wanted_rend)
1076{
1077 return (Evas_Font_Set *) evas_common_font_memory_add((RGBA_Font *) font,
1078 name, size, fdata, fdata_size, wanted_rend);
1079}
1080
1081static void
1082eng_font_free(void *data __UNUSED__, Evas_Font_Set *font)
1083{
1084 evas_common_font_free((RGBA_Font *) font);
1085}
1086
1087static int
1088eng_font_ascent_get(void *data __UNUSED__, Evas_Font_Set *font)
1089{
1090 return evas_common_font_ascent_get((RGBA_Font *) font);
1091}
1092
1093static int
1094eng_font_descent_get(void *data __UNUSED__, Evas_Font_Set *font)
1095{
1096 return evas_common_font_descent_get((RGBA_Font *) font);
1097}
1098
1099static int
1100eng_font_max_ascent_get(void *data __UNUSED__, Evas_Font_Set *font)
1101{
1102 return evas_common_font_max_ascent_get((RGBA_Font *) font);
1103}
1104
1105static int
1106eng_font_max_descent_get(void *data __UNUSED__, Evas_Font_Set *font)
1107{
1108 return evas_common_font_max_descent_get((RGBA_Font *) font);
1109}
1110
1111static void
1112eng_font_string_size_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props, int *w, int *h)
1113{
1114 evas_common_font_query_size((RGBA_Font *) font, text_props, w, h);
1115}
1116
1117static int
1118eng_font_inset_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props)
1119{
1120 return evas_common_font_query_inset((RGBA_Font *) font, text_props);
1121}
1122
1123static int
1124eng_font_right_inset_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props)
1125{
1126 return evas_common_font_query_right_inset((RGBA_Font *) font, text_props);
1127}
1128
1129static int
1130eng_font_h_advance_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props)
1131{
1132 int h, v;
1133
1134 evas_common_font_query_advance((RGBA_Font *) font, text_props, &h, &v);
1135 return h;
1136}
1137
1138static int
1139eng_font_v_advance_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props)
1140{
1141 int h, v;
1142
1143 evas_common_font_query_advance((RGBA_Font *) font, text_props, &h, &v);
1144 return v;
1145}
1146
1147static int
1148eng_font_pen_coords_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props, int pos, int *cpen_x, int *cy, int *cadv, int *ch)
1149{
1150 return evas_common_font_query_pen_coords((RGBA_Font *) font, text_props, pos, cpen_x, cy, cadv, ch);
1151}
1152
1153static Eina_Bool
1154eng_font_text_props_info_create(void *data __UNUSED__, Evas_Font_Instance *fi, const Eina_Unicode *text, Evas_Text_Props *text_props, const Evas_BiDi_Paragraph_Props *par_props, size_t par_pos, size_t len)
1155{
1156 return evas_common_text_props_content_create((RGBA_Font_Int *) fi, text,
1157 text_props, par_props, par_pos, len);
1158}
1159
1160static int
1161eng_font_char_coords_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props, int pos, int *cx, int *cy, int *cw, int *ch)
1162{
1163 return evas_common_font_query_char_coords((RGBA_Font *) font, text_props, pos, cx, cy, cw, ch);
1164}
1165
1166static int
1167eng_font_char_at_coords_get(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props, int x, int y, int *cx, int *cy, int *cw, int *ch)
1168{
1169 return evas_common_font_query_char_at_coords((RGBA_Font *) font, text_props, x, y, cx, cy, cw, ch);
1170}
1171
1172static int
1173eng_font_last_up_to_pos(void *data __UNUSED__, Evas_Font_Set *font, const Evas_Text_Props *text_props, int x, int y)
1174{
1175 return evas_common_font_query_last_up_to_pos((RGBA_Font *) font, text_props, x, y);
1176}
1177
1178static int
1179eng_font_run_font_end_get(void *data __UNUSED__, Evas_Font_Set *font, Evas_Font_Instance **script_fi, Evas_Font_Instance **cur_fi, Evas_Script_Type script, const Eina_Unicode *text, int run_len)
1180{
1181 return evas_common_font_query_run_font_end_get((RGBA_Font *) font,
1182 (RGBA_Font_Int **) script_fi, (RGBA_Font_Int **) cur_fi,
1183 script, text, run_len);
1184}
1185
1186static void
1187eng_font_draw(void *data __UNUSED__, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *text_props)
1188{
1189#ifdef BUILD_PIPE_RENDER
1190 if ((cpunum > 1)
1191#ifdef EVAS_FRAME_QUEUING
1192 && evas_common_frameq_enabled()
1193#endif
1194 )
1195 evas_common_pipe_text_draw(surface, context, (RGBA_Font *) font, x, y,
1196 text_props);
1197 else
1198#endif
1199 {
1200 evas_common_font_draw(surface, context, (RGBA_Font *) font, x, y,
1201 text_props);
1202 evas_common_cpu_end_opt();
1203 }
1204}
1205
1206static void
1207eng_font_cache_flush(void *data __UNUSED__)
1208{
1209 int tmp_size;
1210
1211 tmp_size = evas_common_font_cache_get();
1212 evas_common_font_cache_set(0);
1213 evas_common_font_flush();
1214 evas_common_font_cache_set(tmp_size);
1215}
1216
1217static void
1218eng_font_cache_set(void *data __UNUSED__, int bytes)
1219{
1220 evas_common_font_cache_set(bytes);
1221}
1222
1223static int
1224eng_font_cache_get(void *data __UNUSED__)
1225{
1226 return evas_common_font_cache_get();
1227}
1228
1229static void
1230eng_font_hinting_set(void *data __UNUSED__, Evas_Font_Set *font, int hinting)
1231{
1232 evas_common_font_hinting_set((RGBA_Font *) font, hinting);
1233}
1234
1235static int
1236eng_font_hinting_can_hint(void *data __UNUSED__, int hinting)
1237{
1238 return evas_common_hinting_available(hinting);
1239}
1240
1241static Eina_Bool
1242eng_canvas_alpha_get(void *data __UNUSED__, void *info __UNUSED__)
1243{
1244 return EINA_TRUE;
1245}
1246
1247
1248/* Filter API */
1249#if 0 // filtering disabled
1250static void
1251eng_image_draw_filtered(void *data __UNUSED__, void *context __UNUSED__,
1252 void *surface, void *image, Evas_Filter_Info *filter)
1253{
1254 Evas_Software_Filter_Fn fn;
1255 RGBA_Image *im = image;
1256
1257 fn = evas_filter_software_get(filter);
1258 if (!fn) return;
1259 if (im->cache_entry.cache) evas_cache_image_load_data(&im->cache_entry);
1260 fn(filter, image, surface);
1261 return;
1262}
1263
1264static Filtered_Image *
1265eng_image_filtered_get(void *image, uint8_t *key, size_t keylen)
1266{
1267 RGBA_Image *im = image;
1268 Filtered_Image *fi;
1269 Eina_List *l;
1270
1271 for (l = im->filtered ; l ; l = l->next)
1272 {
1273 fi = l->data;
1274 if (fi->keylen != keylen) continue;
1275 if (memcmp(key, fi->key, keylen) != 0) continue;
1276 fi->ref ++;
1277 return fi;
1278 }
1279
1280 return NULL;
1281}
1282
1283static Filtered_Image *
1284eng_image_filtered_save(void *image, void *fimage, uint8_t *key, size_t keylen)
1285{
1286 RGBA_Image *im = image;
1287 Filtered_Image *fi;
1288 Eina_List *l;
1289
1290 for (l = im->filtered ; l ; l = l->next)
1291 {
1292 fi = l->data;
1293 if (fi->keylen != keylen) continue;
1294 if (memcmp(key, fi->key, keylen) == 0) continue;
1295 evas_cache_image_drop((void *)fi->image);
1296 fi->image = fimage;
1297 return fi;
1298 }
1299
1300 fi = calloc(1,sizeof(Filtered_Image));
1301 if (!fi) return NULL;
1302
1303 fi->keylen = keylen;
1304 fi->key = malloc(keylen);
1305 memcpy(fi->key, key, keylen);
1306 fi->image = fimage;
1307 fi->ref = 1;
1308
1309 im->filtered = eina_list_prepend(im->filtered, fi);
1310
1311 return fi;
1312}
1313
1314static void
1315eng_image_filtered_free(void *image, Filtered_Image *fi)
1316{
1317 RGBA_Image *im = image;
1318
1319 fi->ref --;
1320 if (fi->ref) return;
1321
1322 free(fi->key);
1323 evas_cache_image_drop(&fi->image->cache_entry);
1324 fi->image = NULL;
1325
1326 im->filtered = eina_list_remove(im->filtered, fi);
1327}
1328#endif
1329
1330static int
1331eng_image_load_error_get(void *data __UNUSED__, void *image)
1332{
1333 RGBA_Image *im;
1334
1335 if (!image) return EVAS_LOAD_ERROR_NONE;
1336 im = image;
1337 return im->cache_entry.load_error;
1338}
1339
1340//------------ Evas GL engine code ---------------//
1341static void *
1342eng_gl_surface_create(void *data __UNUSED__, void *config, int w, int h)
1343{
1344#ifdef EVAS_GL
1345 Render_Engine_GL_Surface *sfc;
1346 Evas_GL_Config *cfg;
1347
1348 sfc = calloc(1, sizeof(Render_Engine_GL_Surface));
1349 if (!sfc) return NULL;
1350
1351 cfg = (Evas_GL_Config *)config;
1352
1353 sfc->initialized = 0;
1354 sfc->w = w;
1355 sfc->h = h;
1356
1357 // Color Format
1358 switch (cfg->color_format)
1359 {
1360
1361 case EVAS_GL_RGB_888:
1362 sfc->internal_fmt = OSMESA_RGB;
1363 sfc->internal_cpp = 3;
1364 break;
1365 case EVAS_GL_RGBA_8888:
1366 sfc->internal_fmt = OSMESA_BGRA;
1367 sfc->internal_cpp = 4;
1368 break;
1369 default:
1370 sfc->internal_fmt = OSMESA_RGBA;
1371 sfc->internal_cpp = 4;
1372 break;
1373 }
1374
1375 // Depth Bits
1376 switch (cfg->depth_bits)
1377 {
1378 case EVAS_GL_DEPTH_BIT_8:
1379 sfc->depth_bits = 8;
1380 break;
1381 case EVAS_GL_DEPTH_BIT_16:
1382 sfc->depth_bits = 16;
1383 break;
1384 case EVAS_GL_DEPTH_BIT_24:
1385 sfc->depth_bits = 24;
1386 break;
1387 case EVAS_GL_DEPTH_BIT_32:
1388 sfc->depth_bits = 32;
1389 break;
1390 case EVAS_GL_DEPTH_NONE:
1391 default:
1392 sfc->depth_bits = 0;
1393 break;
1394 }
1395
1396 // Stencil Bits
1397 switch (cfg->stencil_bits)
1398 {
1399 case EVAS_GL_STENCIL_BIT_1:
1400 sfc->stencil_bits = 1;
1401 break;
1402 case EVAS_GL_STENCIL_BIT_2:
1403 sfc->stencil_bits = 2;
1404 break;
1405 case EVAS_GL_STENCIL_BIT_4:
1406 sfc->stencil_bits = 4;
1407 break;
1408 case EVAS_GL_STENCIL_BIT_8:
1409 sfc->stencil_bits = 8;
1410 break;
1411 case EVAS_GL_STENCIL_BIT_16:
1412 sfc->stencil_bits = 16;
1413 break;
1414 case EVAS_GL_STENCIL_NONE:
1415 default:
1416 sfc->stencil_bits = 0;
1417 break;
1418 }
1419
1420 sfc->buffer = malloc(sizeof(unsigned char)*sfc->internal_cpp*w*h);
1421
1422 if (!sfc->buffer)
1423 {
1424 free(sfc);
1425 return NULL;
1426 }
1427
1428 return sfc;
1429#else
1430 (void) config;
1431 (void) w;
1432 (void) h;
1433 return NULL;
1434#endif
1435}
1436
1437static int
1438eng_gl_surface_destroy(void *data __UNUSED__, void *surface)
1439{
1440#ifdef EVAS_GL
1441 Render_Engine_GL_Surface *sfc;
1442
1443 sfc = (Render_Engine_GL_Surface*)surface;
1444
1445 if (!sfc) return 0;
1446
1447 if (sfc->buffer) free(sfc->buffer);
1448
1449 free(sfc);
1450
1451 surface = NULL;
1452
1453 return 1;
1454#else
1455 (void) surface;
1456 return 1;
1457#endif
1458}
1459
1460static void *
1461eng_gl_context_create(void *data __UNUSED__, void *share_context)
1462{
1463#ifdef EVAS_GL
1464 Render_Engine_GL_Context *ctx;
1465 Render_Engine_GL_Context *share_ctx;
1466
1467 ctx = calloc(1, sizeof(Render_Engine_GL_Context));
1468
1469 if (!ctx) return NULL;
1470
1471 share_ctx = (Render_Engine_GL_Context *)share_context;
1472
1473 ctx->share_ctx = share_ctx;
1474
1475 /*
1476 if (share_ctx)
1477 ctx->context = OSMesaCreateContextExt( OSMESA_RGBA, 8, 0, 0, share_ctx->context );
1478 else
1479 ctx->context = OSMesaCreateContextExt( OSMESA_RGBA, 8, 0, 0, NULL );
1480
1481
1482 if (!ctx->context)
1483 {
1484 ERR("Error creating OSMesa Context.");
1485 free(ctx);
1486 return NULL;
1487 }
1488 */
1489
1490 ctx->initialized = 0;
1491
1492 return ctx;
1493#else
1494 (void) share_context;
1495 return NULL;
1496#endif
1497}
1498
1499static int
1500eng_gl_context_destroy(void *data __UNUSED__, void *context)
1501{
1502#ifdef EVAS_GL
1503 Render_Engine_GL_Context *ctx;
1504
1505 ctx = (Render_Engine_GL_Context*)context;
1506
1507 if (!ctx) return 0;
1508
1509 _sym_OSMesaDestroyContext(ctx->context);
1510
1511 free(ctx);
1512 context = NULL;
1513
1514 return 1;
1515#else
1516 (void) context;
1517 return 0;
1518#endif
1519}
1520
1521static int
1522eng_gl_make_current(void *data __UNUSED__, void *surface, void *context)
1523{
1524#ifdef EVAS_GL
1525 Render_Engine_GL_Surface *sfc;
1526 Render_Engine_GL_Context *ctx;
1527 OSMesaContext share_ctx;
1528 GLboolean ret;
1529
1530 sfc = (Render_Engine_GL_Surface*)surface;
1531 ctx = (Render_Engine_GL_Context*)context;
1532
1533 // Unset surface/context
1534 if ((!sfc) || (!ctx))
1535 {
1536 if (ctx) ctx->current_sfc = NULL;
1537 if (sfc) sfc->current_ctx = NULL;
1538 return 1;
1539 }
1540
1541 // Initialize Context if it hasn't been.
1542 if (!ctx->initialized)
1543 {
1544 if (ctx->share_ctx)
1545 share_ctx = ctx->share_ctx->context;
1546 else
1547 share_ctx = NULL;
1548
1549 ctx->context = _sym_OSMesaCreateContextExt(sfc->internal_fmt,
1550 sfc->depth_bits,
1551 sfc->stencil_bits,
1552 0,
1553 share_ctx);
1554 if (!ctx->context)
1555 {
1556 ERR("Error initializing context.");
1557 return 0;
1558 }
1559
1560 ctx->initialized = 1;
1561 }
1562
1563
1564 // Call MakeCurrent
1565 ret = _sym_OSMesaMakeCurrent(ctx->context, sfc->buffer, GL_UNSIGNED_BYTE,
1566 sfc->w, sfc->h);
1567
1568 if (ret == GL_FALSE)
1569 {
1570 ERR("Error doing MakeCurrent.");
1571 return 0;
1572 }
1573
1574 _sym_OSMesaPixelStore(OSMESA_Y_UP, 0);
1575
1576 // Set the current surface/context
1577 ctx->current_sfc = sfc;
1578 sfc->current_ctx = ctx;
1579
1580 return 1;
1581#else
1582 (void) surface;
1583 (void) context;
1584 return 1;
1585#endif
1586}
1587
1588// FIXME!!! Implement later
1589static void *
1590eng_gl_string_query(void *data __UNUSED__, int name __UNUSED__)
1591{
1592 return NULL;
1593}
1594
1595static void *
1596eng_gl_proc_address_get(void *data __UNUSED__, const char *name)
1597{
1598#ifdef EVAS_GL
1599 if (_sym_OSMesaGetProcAddress) return _sym_OSMesaGetProcAddress(name);
1600 return dlsym(RTLD_DEFAULT, name);
1601#else
1602 (void) name;
1603 return NULL;
1604#endif
1605}
1606
1607static int
1608eng_gl_native_surface_get(void *data __UNUSED__, void *surface, void *native_surface)
1609{
1610#ifdef EVAS_GL
1611 Render_Engine_GL_Surface *sfc;
1612 Evas_Native_Surface *ns;
1613
1614 sfc = (Render_Engine_GL_Surface*)surface;
1615 ns = (Evas_Native_Surface*)native_surface;
1616
1617 if (!sfc) return 0;
1618
1619 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
1620 ns->version = EVAS_NATIVE_SURFACE_VERSION;
1621 ns->data.x11.visual = sfc->buffer;
1622
1623 return 1;
1624#else
1625 (void) surface;
1626 (void) native_surface;
1627 return 1;
1628#endif
1629}
1630
1631
1632static void *
1633eng_gl_api_get(void *data __UNUSED__)
1634{
1635#ifdef EVAS_GL
1636 return &gl_funcs;
1637#else
1638 return NULL;
1639#endif
1640}
1641
1642//------------------------------------------------//
1643
1644
1645/*
1646 *****
1647 **
1648 ** ENGINE API
1649 **
1650 *****
1651 */
1652
1653static Evas_Func func =
1654{
1655 NULL,
1656 NULL,
1657 NULL,
1658 NULL,
1659 NULL,
1660 NULL,
1661 NULL,
1662 NULL,
1663 NULL,
1664 NULL,
1665 NULL,
1666 NULL,
1667 NULL,
1668 eng_output_dump,
1669 /* draw context virtual methods */
1670 eng_context_new,
1671 eng_canvas_alpha_get,
1672 eng_context_free,
1673 eng_context_clip_set,
1674 eng_context_clip_clip,
1675 eng_context_clip_unset,
1676 eng_context_clip_get,
1677 eng_context_mask_set,
1678 eng_context_mask_unset,
1679 eng_context_color_set,
1680 eng_context_color_get,
1681 eng_context_multiplier_set,
1682 eng_context_multiplier_unset,
1683 eng_context_multiplier_get,
1684 eng_context_cutout_add,
1685 eng_context_cutout_clear,
1686 eng_context_anti_alias_set,
1687 eng_context_anti_alias_get,
1688 eng_context_color_interpolation_set,
1689 eng_context_color_interpolation_get,
1690 eng_context_render_op_set,
1691 eng_context_render_op_get,
1692 /* rect draw funcs */
1693 eng_rectangle_draw,
1694 /* line draw funcs */
1695 eng_line_draw,
1696 /* polygon draw funcs */
1697 eng_polygon_point_add,
1698 eng_polygon_points_clear,
1699 eng_polygon_draw,
1700 /* image draw funcs */
1701 eng_image_load,
1702 eng_image_new_from_data,
1703 eng_image_new_from_copied_data,
1704 eng_image_free,
1705 eng_image_size_get,
1706 eng_image_size_set,
1707 NULL,
1708 eng_image_dirty_region,
1709 eng_image_data_get,
1710 eng_image_data_put,
1711 eng_image_data_preload_request,
1712 eng_image_data_preload_cancel,
1713 eng_image_alpha_set,
1714 eng_image_alpha_get,
1715 eng_image_border_set,
1716 eng_image_border_get,
1717 eng_image_draw,
1718 eng_image_comment_get,
1719 eng_image_format_get,
1720 eng_image_colorspace_set,
1721 eng_image_colorspace_get,
1722 eng_image_can_region_get,
1723 eng_image_mask_create,
1724 eng_image_native_set,
1725 eng_image_native_get,
1726 /* image cache funcs */
1727 eng_image_cache_flush,
1728 eng_image_cache_set,
1729 eng_image_cache_get,
1730 /* font draw functions */
1731 eng_font_load,
1732 eng_font_memory_load,
1733 eng_font_add,
1734 eng_font_memory_add,
1735 eng_font_free,
1736 eng_font_ascent_get,
1737 eng_font_descent_get,
1738 eng_font_max_ascent_get,
1739 eng_font_max_descent_get,
1740 eng_font_string_size_get,
1741 eng_font_inset_get,
1742 eng_font_h_advance_get,
1743 eng_font_v_advance_get,
1744 eng_font_char_coords_get,
1745 eng_font_char_at_coords_get,
1746 eng_font_draw,
1747 /* font cache functions */
1748 eng_font_cache_flush,
1749 eng_font_cache_set,
1750 eng_font_cache_get,
1751 /* font hinting functions */
1752 eng_font_hinting_set,
1753 eng_font_hinting_can_hint,
1754 eng_image_scale_hint_set,
1755 eng_image_scale_hint_get,
1756 /* more font draw functions */
1757 eng_font_last_up_to_pos,
1758 eng_image_map_draw,
1759 eng_image_map_surface_new,
1760 eng_image_map_surface_free,
1761 NULL, // eng_image_content_hint_set - software doesn't use it
1762 NULL, // eng_image_content_hint_get - software doesn't use it
1763 eng_font_pen_coords_get,
1764 eng_font_text_props_info_create,
1765 eng_font_right_inset_get,
1766#if 0 // filtering disabled
1767 eng_image_draw_filtered,
1768 eng_image_filtered_get,
1769 eng_image_filtered_save,
1770 eng_image_filtered_free,
1771#endif
1772 NULL, // need software mesa for gl rendering <- gl_surface_create
1773 NULL, // need software mesa for gl rendering <- gl_surface_destroy
1774 NULL, // need software mesa for gl rendering <- gl_context_create
1775 NULL, // need software mesa for gl rendering <- gl_context_destroy
1776 NULL, // need software mesa for gl rendering <- gl_make_current
1777 NULL, // need software mesa for gl rendering <- gl_string_query
1778 NULL, // need software mesa for gl rendering <- gl_proc_address_get
1779 NULL, // need software mesa for gl rendering <- gl_native_surface_get
1780 NULL, // need software mesa for gl rendering <- gl_api_get
1781 NULL, // need software mesa for gl rendering <- gl_img_obj_set
1782 eng_image_load_error_get,
1783 eng_font_run_font_end_get,
1784 eng_image_animated_get,
1785 eng_image_animated_frame_count_get,
1786 eng_image_animated_loop_type_get,
1787 eng_image_animated_loop_count_get,
1788 eng_image_animated_frame_duration_get,
1789 eng_image_animated_frame_set,
1790 NULL
1791 /* FUTURE software generic calls go here */
1792};
1793
1794
1795//----------------------------------------------------------------//
1796// //
1797// Load Symbols //
1798// //
1799//----------------------------------------------------------------//
1800#ifdef EVAS_GL
1801static void
1802sym_missing(void)
1803{
1804 ERR("GL symbols missing!\n");
1805}
1806
1807static int
1808glue_sym_init(void)
1809{
1810 //------------------------------------------------//
1811 // Use eglGetProcAddress
1812#define FINDSYM(dst, sym, typ) \
1813 if (!dst) dst = (typeof(dst))dlsym(gl_lib_handle, sym); \
1814 if (!dst) \
1815 { \
1816 ERR("Symbol not found %s\n", sym); \
1817 return 0; \
1818 }
1819#define FALLBAK(dst, typ) if (!dst) dst = (typeof(dst))sym_missing;
1820
1821 //------------------------------------------------------//
1822 // OSMesa APIs...
1823 FINDSYM(_sym_OSMesaCreateContextExt, "OSMesaCreateContextExt", glsym_func_osm_ctx);
1824 FALLBAK(_sym_OSMesaCreateContextExt, glsym_func_void);
1825
1826 FINDSYM(_sym_OSMesaDestroyContext, "OSMesaDestroyContext", glsym_func_void);
1827 FALLBAK(_sym_OSMesaDestroyContext, glsym_func_void);
1828
1829 FINDSYM(_sym_OSMesaMakeCurrent, "OSMesaMakeCurrent", glsym_func_bool);
1830 FALLBAK(_sym_OSMesaMakeCurrent, glsym_func_void);
1831
1832 FINDSYM(_sym_OSMesaPixelStore, "OSMesaPixelStore", glsym_func_void);
1833 FALLBAK(_sym_OSMesaPixelStore, glsym_func_void);
1834
1835 FINDSYM(_sym_OSMesaGetProcAddress, "OSMesaGetProcAddress", glsym_func_eng_fn);
1836 FALLBAK(_sym_OSMesaGetProcAddress, glsym_func_void);
1837
1838#undef FINDSYM
1839#undef FALLBAK
1840
1841 return 1;
1842}
1843
1844static int
1845gl_sym_init(void)
1846{
1847 //------------------------------------------------//
1848#define FINDSYM(dst, sym, typ) \
1849 if (!dst) dst = (typeof(dst))dlsym(gl_lib_handle, sym); \
1850 if (!dst) DBG("Symbol not found %s\n", sym);
1851#define FALLBAK(dst, typ) if (!dst) dst = (typeof(dst))sym_missing;
1852
1853
1854 //------------------------------------------------------//
1855 // GLES 2.0 APIs...
1856 FINDSYM(_sym_glActiveTexture, "glActiveTexture", glsym_func_void);
1857 FALLBAK(_sym_glActiveTexture, glsym_func_void);
1858
1859 FINDSYM(_sym_glAttachShader, "glAttachShader", glsym_func_void);
1860 FALLBAK(_sym_glAttachShader, glsym_func_void);
1861
1862 FINDSYM(_sym_glBindAttribLocation, "glBindAttribLocation", glsym_func_void);
1863 FALLBAK(_sym_glBindAttribLocation, glsym_func_void);
1864
1865 FINDSYM(_sym_glBindBuffer, "glBindBuffer", glsym_func_void);
1866 FALLBAK(_sym_glBindBuffer, glsym_func_void);
1867
1868 FINDSYM(_sym_glBindFramebuffer, "glBindFramebuffer", glsym_func_void);
1869 FALLBAK(_sym_glBindFramebuffer, glsym_func_void);
1870
1871 FINDSYM(_sym_glBindRenderbuffer, "glBindRenderbuffer", glsym_func_void);
1872 FALLBAK(_sym_glBindRenderbuffer, glsym_func_void);
1873
1874 FINDSYM(_sym_glBindTexture, "glBindTexture", glsym_func_void);
1875 FALLBAK(_sym_glBindTexture, glsym_func_void);
1876
1877 FINDSYM(_sym_glBlendColor, "glBlendColor", glsym_func_void);
1878 FALLBAK(_sym_glBlendColor, glsym_func_void);
1879
1880 FINDSYM(_sym_glBlendEquation, "glBlendEquation", glsym_func_void);
1881 FALLBAK(_sym_glBlendEquation, glsym_func_void);
1882
1883 FINDSYM(_sym_glBlendEquationSeparate, "glBlendEquationSeparate", glsym_func_void);
1884 FALLBAK(_sym_glBlendEquationSeparate, glsym_func_void);
1885
1886 FINDSYM(_sym_glBlendFunc, "glBlendFunc", glsym_func_void);
1887 FALLBAK(_sym_glBlendFunc, glsym_func_void);
1888
1889 FINDSYM(_sym_glBlendFuncSeparate, "glBlendFuncSeparate", glsym_func_void);
1890 FALLBAK(_sym_glBlendFuncSeparate, glsym_func_void);
1891
1892 FINDSYM(_sym_glBufferData, "glBufferData", glsym_func_void);
1893 FALLBAK(_sym_glBufferData, glsym_func_void);
1894
1895 FINDSYM(_sym_glBufferSubData, "glBufferSubData", glsym_func_void);
1896 FALLBAK(_sym_glBufferSubData, glsym_func_void);
1897
1898 FINDSYM(_sym_glCheckFramebufferStatus, "glCheckFramebufferStatus", glsym_func_uint);
1899 FALLBAK(_sym_glCheckFramebufferStatus, glsym_func_uint);
1900
1901 FINDSYM(_sym_glClear, "glClear", glsym_func_void);
1902 FALLBAK(_sym_glClear, glsym_func_void);
1903
1904 FINDSYM(_sym_glClearColor, "glClearColor", glsym_func_void);
1905 FALLBAK(_sym_glClearColor, glsym_func_void);
1906
1907 FINDSYM(_sym_glClearDepthf, "glClearDepthf", glsym_func_void);
1908 FINDSYM(_sym_glClearDepthf, "glClearDepth", glsym_func_void);
1909 FALLBAK(_sym_glClearDepthf, glsym_func_void);
1910
1911 FINDSYM(_sym_glClearStencil, "glClearStencil", glsym_func_void);
1912 FALLBAK(_sym_glClearStencil, glsym_func_void);
1913
1914 FINDSYM(_sym_glColorMask, "glColorMask", glsym_func_void);
1915 FALLBAK(_sym_glColorMask, glsym_func_void);
1916
1917 FINDSYM(_sym_glCompileShader, "glCompileShader", glsym_func_void);
1918 FALLBAK(_sym_glCompileShader, glsym_func_void);
1919
1920 FINDSYM(_sym_glCompressedTexImage2D, "glCompressedTexImage2D", glsym_func_void);
1921 FALLBAK(_sym_glCompressedTexImage2D, glsym_func_void);
1922
1923 FINDSYM(_sym_glCompressedTexSubImage2D, "glCompressedTexSubImage2D", glsym_func_void);
1924 FALLBAK(_sym_glCompressedTexSubImage2D, glsym_func_void);
1925
1926 FINDSYM(_sym_glCopyTexImage2D, "glCopyTexImage2D", glsym_func_void);
1927 FALLBAK(_sym_glCopyTexImage2D, glsym_func_void);
1928
1929 FINDSYM(_sym_glCopyTexSubImage2D, "glCopyTexSubImage2D", glsym_func_void);
1930 FALLBAK(_sym_glCopyTexSubImage2D, glsym_func_void);
1931
1932 FINDSYM(_sym_glCreateProgram, "glCreateProgram", glsym_func_uint);
1933 FALLBAK(_sym_glCreateProgram, glsym_func_uint);
1934
1935 FINDSYM(_sym_glCreateShader, "glCreateShader", glsym_func_uint);
1936 FALLBAK(_sym_glCreateShader, glsym_func_uint);
1937
1938 FINDSYM(_sym_glCullFace, "glCullFace", glsym_func_void);
1939 FALLBAK(_sym_glCullFace, glsym_func_void);
1940
1941 FINDSYM(_sym_glDeleteBuffers, "glDeleteBuffers", glsym_func_void);
1942 FALLBAK(_sym_glDeleteBuffers, glsym_func_void);
1943
1944 FINDSYM(_sym_glDeleteFramebuffers, "glDeleteFramebuffers", glsym_func_void);
1945 FALLBAK(_sym_glDeleteFramebuffers, glsym_func_void);
1946
1947 FINDSYM(_sym_glDeleteProgram, "glDeleteProgram", glsym_func_void);
1948 FALLBAK(_sym_glDeleteProgram, glsym_func_void);
1949
1950 FINDSYM(_sym_glDeleteRenderbuffers, "glDeleteRenderbuffers", glsym_func_void);
1951 FALLBAK(_sym_glDeleteRenderbuffers, glsym_func_void);
1952
1953 FINDSYM(_sym_glDeleteShader, "glDeleteShader", glsym_func_void);
1954 FALLBAK(_sym_glDeleteShader, glsym_func_void);
1955
1956 FINDSYM(_sym_glDeleteTextures, "glDeleteTextures", glsym_func_void);
1957 FALLBAK(_sym_glDeleteTextures, glsym_func_void);
1958
1959 FINDSYM(_sym_glDepthFunc, "glDepthFunc", glsym_func_void);
1960 FALLBAK(_sym_glDepthFunc, glsym_func_void);
1961
1962 FINDSYM(_sym_glDepthMask, "glDepthMask", glsym_func_void);
1963 FALLBAK(_sym_glDepthMask, glsym_func_void);
1964
1965 FINDSYM(_sym_glDepthRangef, "glDepthRangef", glsym_func_void);
1966 FINDSYM(_sym_glDepthRangef, "glDepthRange", glsym_func_void);
1967 FALLBAK(_sym_glDepthRangef, glsym_func_void);
1968
1969 FINDSYM(_sym_glDetachShader, "glDetachShader", glsym_func_void);
1970 FALLBAK(_sym_glDetachShader, glsym_func_void);
1971
1972 FINDSYM(_sym_glDisable, "glDisable", glsym_func_void);
1973 FALLBAK(_sym_glDisable, glsym_func_void);
1974
1975 FINDSYM(_sym_glDisableVertexAttribArray, "glDisableVertexAttribArray", glsym_func_void);
1976 FALLBAK(_sym_glDisableVertexAttribArray, glsym_func_void);
1977
1978 FINDSYM(_sym_glDrawArrays, "glDrawArrays", glsym_func_void);
1979 FALLBAK(_sym_glDrawArrays, glsym_func_void);
1980
1981 FINDSYM(_sym_glDrawElements, "glDrawElements", glsym_func_void);
1982 FALLBAK(_sym_glDrawElements, glsym_func_void);
1983
1984 FINDSYM(_sym_glEnable, "glEnable", glsym_func_void);
1985 FALLBAK(_sym_glEnable, glsym_func_void);
1986
1987 FINDSYM(_sym_glEnableVertexAttribArray, "glEnableVertexAttribArray", glsym_func_void);
1988 FALLBAK(_sym_glEnableVertexAttribArray, glsym_func_void);
1989
1990 FINDSYM(_sym_glFinish, "glFinish", glsym_func_void);
1991 FALLBAK(_sym_glFinish, glsym_func_void);
1992
1993 FINDSYM(_sym_glFlush, "glFlush", glsym_func_void);
1994 FALLBAK(_sym_glFlush, glsym_func_void);
1995
1996 FINDSYM(_sym_glFramebufferRenderbuffer, "glFramebufferRenderbuffer", glsym_func_void);
1997 FALLBAK(_sym_glFramebufferRenderbuffer, glsym_func_void);
1998
1999 FINDSYM(_sym_glFramebufferTexture2D, "glFramebufferTexture2D", glsym_func_void);
2000 FALLBAK(_sym_glFramebufferTexture2D, glsym_func_void);
2001
2002 FINDSYM(_sym_glFrontFace, "glFrontFace", glsym_func_void);
2003 FALLBAK(_sym_glFrontFace, glsym_func_void);
2004
2005 FINDSYM(_sym_glGenBuffers, "glGenBuffers", glsym_func_void);
2006 FALLBAK(_sym_glGenBuffers, glsym_func_void);
2007
2008 FINDSYM(_sym_glGenerateMipmap, "glGenerateMipmap", glsym_func_void);
2009 FALLBAK(_sym_glGenerateMipmap, glsym_func_void);
2010
2011 FINDSYM(_sym_glGenFramebuffers, "glGenFramebuffers", glsym_func_void);
2012 FALLBAK(_sym_glGenFramebuffers, glsym_func_void);
2013
2014 FINDSYM(_sym_glGenRenderbuffers, "glGenRenderbuffers", glsym_func_void);
2015 FALLBAK(_sym_glGenRenderbuffers, glsym_func_void);
2016
2017 FINDSYM(_sym_glGenTextures, "glGenTextures", glsym_func_void);
2018 FALLBAK(_sym_glGenTextures, glsym_func_void);
2019
2020 FINDSYM(_sym_glGetActiveAttrib, "glGetActiveAttrib", glsym_func_void);
2021 FALLBAK(_sym_glGetActiveAttrib, glsym_func_void);
2022
2023 FINDSYM(_sym_glGetActiveUniform, "glGetActiveUniform", glsym_func_void);
2024 FALLBAK(_sym_glGetActiveUniform, glsym_func_void);
2025
2026 FINDSYM(_sym_glGetAttachedShaders, "glGetAttachedShaders", glsym_func_void);
2027 FALLBAK(_sym_glGetAttachedShaders, glsym_func_void);
2028
2029 FINDSYM(_sym_glGetAttribLocation, "glGetAttribLocation", glsym_func_int);
2030 FALLBAK(_sym_glGetAttribLocation, glsym_func_int);
2031
2032 FINDSYM(_sym_glGetBooleanv, "glGetBooleanv", glsym_func_void);
2033 FALLBAK(_sym_glGetBooleanv, glsym_func_void);
2034
2035 FINDSYM(_sym_glGetBufferParameteriv, "glGetBufferParameteriv", glsym_func_void);
2036 FALLBAK(_sym_glGetBufferParameteriv, glsym_func_void);
2037
2038 FINDSYM(_sym_glGetError, "glGetError", glsym_func_uint);
2039 FALLBAK(_sym_glGetError, glsym_func_uint);
2040
2041 FINDSYM(_sym_glGetFloatv, "glGetFloatv", glsym_func_void);
2042 FALLBAK(_sym_glGetFloatv, glsym_func_void);
2043
2044 FINDSYM(_sym_glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv", glsym_func_void);
2045 FALLBAK(_sym_glGetFramebufferAttachmentParameteriv, glsym_func_void);
2046
2047 FINDSYM(_sym_glGetIntegerv, "glGetIntegerv", glsym_func_void);
2048 FALLBAK(_sym_glGetIntegerv, glsym_func_void);
2049
2050 FINDSYM(_sym_glGetProgramiv, "glGetProgramiv", glsym_func_void);
2051 FALLBAK(_sym_glGetProgramiv, glsym_func_void);
2052
2053 FINDSYM(_sym_glGetProgramInfoLog, "glGetProgramInfoLog", glsym_func_void);
2054 FALLBAK(_sym_glGetProgramInfoLog, glsym_func_void);
2055
2056 FINDSYM(_sym_glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv", glsym_func_void);
2057 FALLBAK(_sym_glGetRenderbufferParameteriv, glsym_func_void);
2058
2059 FINDSYM(_sym_glGetShaderiv, "glGetShaderiv", glsym_func_void);
2060 FALLBAK(_sym_glGetShaderiv, glsym_func_void);
2061
2062 FINDSYM(_sym_glGetShaderInfoLog, "glGetShaderInfoLog", glsym_func_void);
2063 FALLBAK(_sym_glGetShaderInfoLog, glsym_func_void);
2064
2065 FINDSYM(_sym_glGetShaderPrecisionFormat, "glGetShaderPrecisionFormat", glsym_func_void);
2066 FALLBAK(_sym_glGetShaderPrecisionFormat, glsym_func_void);
2067
2068 FINDSYM(_sym_glGetShaderSource, "glGetShaderSource", glsym_func_void);
2069 FALLBAK(_sym_glGetShaderSource, glsym_func_void);
2070
2071 FINDSYM(_sym_glGetString, "glGetString", glsym_func_uchar_ptr);
2072 FALLBAK(_sym_glGetString, glsym_func_const_uchar_ptr);
2073
2074 FINDSYM(_sym_glGetTexParameterfv, "glGetTexParameterfv", glsym_func_void);
2075 FALLBAK(_sym_glGetTexParameterfv, glsym_func_void);
2076
2077 FINDSYM(_sym_glGetTexParameteriv, "glGetTexParameteriv", glsym_func_void);
2078 FALLBAK(_sym_glGetTexParameteriv, glsym_func_void);
2079
2080 FINDSYM(_sym_glGetUniformfv, "glGetUniformfv", glsym_func_void);
2081 FALLBAK(_sym_glGetUniformfv, glsym_func_void);
2082
2083 FINDSYM(_sym_glGetUniformiv, "glGetUniformiv", glsym_func_void);
2084 FALLBAK(_sym_glGetUniformiv, glsym_func_void);
2085
2086 FINDSYM(_sym_glGetUniformLocation, "glGetUniformLocation", glsym_func_int);
2087 FALLBAK(_sym_glGetUniformLocation, glsym_func_int);
2088
2089 FINDSYM(_sym_glGetVertexAttribfv, "glGetVertexAttribfv", glsym_func_void);
2090 FALLBAK(_sym_glGetVertexAttribfv, glsym_func_void);
2091
2092 FINDSYM(_sym_glGetVertexAttribiv, "glGetVertexAttribiv", glsym_func_void);
2093 FALLBAK(_sym_glGetVertexAttribiv, glsym_func_void);
2094
2095 FINDSYM(_sym_glGetVertexAttribPointerv, "glGetVertexAttribPointerv", glsym_func_void);
2096 FALLBAK(_sym_glGetVertexAttribPointerv, glsym_func_void);
2097
2098 FINDSYM(_sym_glHint, "glHint", glsym_func_void);
2099 FALLBAK(_sym_glHint, glsym_func_void);
2100
2101 FINDSYM(_sym_glIsBuffer, "glIsBuffer", glsym_func_uchar);
2102 FALLBAK(_sym_glIsBuffer, glsym_func_uchar);
2103
2104 FINDSYM(_sym_glIsEnabled, "glIsEnabled", glsym_func_uchar);
2105 FALLBAK(_sym_glIsEnabled, glsym_func_uchar);
2106
2107 FINDSYM(_sym_glIsFramebuffer, "glIsFramebuffer", glsym_func_uchar);
2108 FALLBAK(_sym_glIsFramebuffer, glsym_func_uchar);
2109
2110 FINDSYM(_sym_glIsProgram, "glIsProgram", glsym_func_uchar);
2111 FALLBAK(_sym_glIsProgram, glsym_func_uchar);
2112
2113 FINDSYM(_sym_glIsRenderbuffer, "glIsRenderbuffer", glsym_func_uchar);
2114 FALLBAK(_sym_glIsRenderbuffer, glsym_func_uchar);
2115
2116 FINDSYM(_sym_glIsShader, "glIsShader", glsym_func_uchar);
2117 FALLBAK(_sym_glIsShader, glsym_func_uchar);
2118
2119 FINDSYM(_sym_glIsTexture, "glIsTexture", glsym_func_uchar);
2120 FALLBAK(_sym_glIsTexture, glsym_func_uchar);
2121
2122 FINDSYM(_sym_glLineWidth, "glLineWidth", glsym_func_void);
2123 FALLBAK(_sym_glLineWidth, glsym_func_void);
2124
2125 FINDSYM(_sym_glLinkProgram, "glLinkProgram", glsym_func_void);
2126 FALLBAK(_sym_glLinkProgram, glsym_func_void);
2127
2128 FINDSYM(_sym_glPixelStorei, "glPixelStorei", glsym_func_void);
2129 FALLBAK(_sym_glPixelStorei, glsym_func_void);
2130
2131 FINDSYM(_sym_glPolygonOffset, "glPolygonOffset", glsym_func_void);
2132 FALLBAK(_sym_glPolygonOffset, glsym_func_void);
2133
2134 FINDSYM(_sym_glReadPixels, "glReadPixels", glsym_func_void);
2135 FALLBAK(_sym_glReadPixels, glsym_func_void);
2136
2137 FINDSYM(_sym_glReleaseShaderCompiler, "glReleaseShaderCompiler", glsym_func_void);
2138 FALLBAK(_sym_glReleaseShaderCompiler, glsym_func_void);
2139
2140 FINDSYM(_sym_glRenderbufferStorage, "glRenderbufferStorage", glsym_func_void);
2141 FALLBAK(_sym_glRenderbufferStorage, glsym_func_void);
2142
2143 FINDSYM(_sym_glSampleCoverage, "glSampleCoverage", glsym_func_void);
2144 FALLBAK(_sym_glSampleCoverage, glsym_func_void);
2145
2146 FINDSYM(_sym_glScissor, "glScissor", glsym_func_void);
2147 FALLBAK(_sym_glScissor, glsym_func_void);
2148
2149 FINDSYM(_sym_glShaderBinary, "glShaderBinary", glsym_func_void);
2150 FALLBAK(_sym_glShaderBinary, glsym_func_void);
2151
2152 FINDSYM(_sym_glShaderSource, "glShaderSource", glsym_func_void);
2153 FALLBAK(_sym_glShaderSource, glsym_func_void);
2154
2155 FINDSYM(_sym_glStencilFunc, "glStencilFunc", glsym_func_void);
2156 FALLBAK(_sym_glStencilFunc, glsym_func_void);
2157
2158 FINDSYM(_sym_glStencilFuncSeparate, "glStencilFuncSeparate", glsym_func_void);
2159 FALLBAK(_sym_glStencilFuncSeparate, glsym_func_void);
2160
2161 FINDSYM(_sym_glStencilMask, "glStencilMask", glsym_func_void);
2162 FALLBAK(_sym_glStencilMask, glsym_func_void);
2163
2164 FINDSYM(_sym_glStencilMaskSeparate, "glStencilMaskSeparate", glsym_func_void);
2165 FALLBAK(_sym_glStencilMaskSeparate, glsym_func_void);
2166
2167 FINDSYM(_sym_glStencilOp, "glStencilOp", glsym_func_void);
2168 FALLBAK(_sym_glStencilOp, glsym_func_void);
2169
2170 FINDSYM(_sym_glStencilOpSeparate, "glStencilOpSeparate", glsym_func_void);
2171 FALLBAK(_sym_glStencilOpSeparate, glsym_func_void);
2172
2173 FINDSYM(_sym_glTexImage2D, "glTexImage2D", glsym_func_void);
2174 FALLBAK(_sym_glTexImage2D, glsym_func_void);
2175
2176 FINDSYM(_sym_glTexParameterf, "glTexParameterf", glsym_func_void);
2177 FALLBAK(_sym_glTexParameterf, glsym_func_void);
2178
2179 FINDSYM(_sym_glTexParameterfv, "glTexParameterfv", glsym_func_void);
2180 FALLBAK(_sym_glTexParameterfv, glsym_func_void);
2181
2182 FINDSYM(_sym_glTexParameteri, "glTexParameteri", glsym_func_void);
2183 FALLBAK(_sym_glTexParameteri, glsym_func_void);
2184
2185 FINDSYM(_sym_glTexParameteriv, "glTexParameteriv", glsym_func_void);
2186 FALLBAK(_sym_glTexParameteriv, glsym_func_void);
2187
2188 FINDSYM(_sym_glTexSubImage2D, "glTexSubImage2D", glsym_func_void);
2189 FALLBAK(_sym_glTexSubImage2D, glsym_func_void);
2190
2191 FINDSYM(_sym_glUniform1f, "glUniform1f", glsym_func_void);
2192 FALLBAK(_sym_glUniform1f, glsym_func_void);
2193
2194 FINDSYM(_sym_glUniform1fv, "glUniform1fv", glsym_func_void);
2195 FALLBAK(_sym_glUniform1fv, glsym_func_void);
2196
2197 FINDSYM(_sym_glUniform1i, "glUniform1i", glsym_func_void);
2198 FALLBAK(_sym_glUniform1i, glsym_func_void);
2199
2200 FINDSYM(_sym_glUniform1iv, "glUniform1iv", glsym_func_void);
2201 FALLBAK(_sym_glUniform1iv, glsym_func_void);
2202
2203 FINDSYM(_sym_glUniform2f, "glUniform2f", glsym_func_void);
2204 FALLBAK(_sym_glUniform2f, glsym_func_void);
2205
2206 FINDSYM(_sym_glUniform2fv, "glUniform2fv", glsym_func_void);
2207 FALLBAK(_sym_glUniform2fv, glsym_func_void);
2208
2209 FINDSYM(_sym_glUniform2i, "glUniform2i", glsym_func_void);
2210 FALLBAK(_sym_glUniform2i, glsym_func_void);
2211
2212 FINDSYM(_sym_glUniform2iv, "glUniform2iv", glsym_func_void);
2213 FALLBAK(_sym_glUniform2iv, glsym_func_void);
2214
2215 FINDSYM(_sym_glUniform3f, "glUniform3f", glsym_func_void);
2216 FALLBAK(_sym_glUniform3f, glsym_func_void);
2217
2218 FINDSYM(_sym_glUniform3fv, "glUniform3fv", glsym_func_void);
2219 FALLBAK(_sym_glUniform3fv, glsym_func_void);
2220
2221 FINDSYM(_sym_glUniform3i, "glUniform3i", glsym_func_void);
2222 FALLBAK(_sym_glUniform3i, glsym_func_void);
2223
2224 FINDSYM(_sym_glUniform3iv, "glUniform3iv", glsym_func_void);
2225 FALLBAK(_sym_glUniform3iv, glsym_func_void);
2226
2227 FINDSYM(_sym_glUniform4f, "glUniform4f", glsym_func_void);
2228 FALLBAK(_sym_glUniform4f, glsym_func_void);
2229
2230 FINDSYM(_sym_glUniform4fv, "glUniform4fv", glsym_func_void);
2231 FALLBAK(_sym_glUniform4fv, glsym_func_void);
2232
2233 FINDSYM(_sym_glUniform4i, "glUniform4i", glsym_func_void);
2234 FALLBAK(_sym_glUniform4i, glsym_func_void);
2235
2236 FINDSYM(_sym_glUniform4iv, "glUniform4iv", glsym_func_void);
2237 FALLBAK(_sym_glUniform4iv, glsym_func_void);
2238
2239 FINDSYM(_sym_glUniformMatrix2fv, "glUniformMatrix2fv", glsym_func_void);
2240 FALLBAK(_sym_glUniformMatrix2fv, glsym_func_void);
2241
2242 FINDSYM(_sym_glUniformMatrix3fv, "glUniformMatrix3fv", glsym_func_void);
2243 FALLBAK(_sym_glUniformMatrix3fv, glsym_func_void);
2244
2245 FINDSYM(_sym_glUniformMatrix4fv, "glUniformMatrix4fv", glsym_func_void);
2246 FALLBAK(_sym_glUniformMatrix4fv, glsym_func_void);
2247
2248 FINDSYM(_sym_glUseProgram, "glUseProgram", glsym_func_void);
2249 FALLBAK(_sym_glUseProgram, glsym_func_void);
2250
2251 FINDSYM(_sym_glValidateProgram, "glValidateProgram", glsym_func_void);
2252 FALLBAK(_sym_glValidateProgram, glsym_func_void);
2253
2254 FINDSYM(_sym_glVertexAttrib1f, "glVertexAttrib1f", glsym_func_void);
2255 FALLBAK(_sym_glVertexAttrib1f, glsym_func_void);
2256
2257 FINDSYM(_sym_glVertexAttrib1fv, "glVertexAttrib1fv", glsym_func_void);
2258 FALLBAK(_sym_glVertexAttrib1fv, glsym_func_void);
2259
2260 FINDSYM(_sym_glVertexAttrib2f, "glVertexAttrib2f", glsym_func_void);
2261 FALLBAK(_sym_glVertexAttrib2f, glsym_func_void);
2262
2263 FINDSYM(_sym_glVertexAttrib2fv, "glVertexAttrib2fv", glsym_func_void);
2264 FALLBAK(_sym_glVertexAttrib2fv, glsym_func_void);
2265
2266 FINDSYM(_sym_glVertexAttrib3f, "glVertexAttrib3f", glsym_func_void);
2267 FALLBAK(_sym_glVertexAttrib3f, glsym_func_void);
2268
2269 FINDSYM(_sym_glVertexAttrib3fv, "glVertexAttrib3fv", glsym_func_void);
2270 FALLBAK(_sym_glVertexAttrib3fv, glsym_func_void);
2271
2272 FINDSYM(_sym_glVertexAttrib4f, "glVertexAttrib4f", glsym_func_void);
2273 FALLBAK(_sym_glVertexAttrib4f, glsym_func_void);
2274
2275 FINDSYM(_sym_glVertexAttrib4fv, "glVertexAttrib4fv", glsym_func_void);
2276 FALLBAK(_sym_glVertexAttrib4fv, glsym_func_void);
2277
2278 FINDSYM(_sym_glVertexAttribPointer, "glVertexAttribPointer", glsym_func_void);
2279 FALLBAK(_sym_glVertexAttribPointer, glsym_func_void);
2280
2281 FINDSYM(_sym_glViewport, "glViewport", glsym_func_void);
2282 FALLBAK(_sym_glViewport, glsym_func_void);
2283
2284#undef FINDSYM
2285#undef FALLBAK
2286
2287 // Checking to see if this function exists is a poor but reasonable way to
2288 // check if it's gles but it works for now
2289 if (_sym_glGetShaderPrecisionFormat != (typeof(_sym_glGetShaderPrecisionFormat))sym_missing )
2290 {
2291 DBG("GL Library is GLES.");
2292 gl_lib_is_gles = 1;
2293 }
2294
2295 return 1;
2296}
2297
2298//--------------------------------------------------------------//
2299// Wrapped GL APIs to handle desktop compatibility
2300
2301// Stripping precision code from GLES shader for desktop compatibility
2302// Code adopted from Meego GL code. Temporary Fix.
2303static const char *
2304opengl_strtok(const char *s, int *n, char **saveptr, char *prevbuf)
2305{
2306 char *start;
2307 char *ret;
2308 char *p;
2309 int retlen;
2310 static const char *delim = " \t\n\r/";
2311
2312 if (prevbuf) free(prevbuf);
2313
2314 if (s)
2315 *saveptr = (char *)s;
2316 else
2317 {
2318 if (!(*saveptr) || !(*n))
2319 return NULL;
2320 s = *saveptr;
2321 }
2322
2323 for (; *n && strchr(delim, *s); s++, (*n)--)
2324 {
2325 if (*s == '/' && *n > 1)
2326 {
2327 if (s[1] == '/')
2328 {
2329 do
2330 {
2331 s++, (*n)--;
2332 }
2333 while (*n > 1 && s[1] != '\n' && s[1] != '\r');
2334 }
2335 else if (s[1] == '*')
2336 {
2337 do
2338 {
2339 s++, (*n)--;
2340 }
2341 while (*n > 2 && (s[1] != '*' || s[2] != '/'));
2342 s++, (*n)--;
2343 }
2344 }
2345 }
2346
2347 start = (char *)s;
2348 for (; *n && *s && !strchr(delim, *s); s++, (*n)--);
2349 if (*n > 0) s++, (*n)--;
2350
2351 *saveptr = (char *)s;
2352
2353 retlen = s - start;
2354 ret = malloc(retlen + 1);
2355 p = ret;
2356
2357 while (retlen > 0)
2358 {
2359 if (*start == '/' && retlen > 1)
2360 {
2361 if (start[1] == '/')
2362 {
2363 do
2364 {
2365 start++, retlen--;
2366 }
2367 while (retlen > 1 && start[1] != '\n' && start[1] != '\r');
2368 start++, retlen--;
2369 continue;
2370 }
2371 else if (start[1] == '*')
2372 {
2373 do
2374 {
2375 start++, retlen--;
2376 }
2377 while (retlen > 2 && (start[1] != '*' || start[2] != '/'));
2378 start += 3, retlen -= 3;
2379 continue;
2380 }
2381 }
2382 *(p++) = *(start++), retlen--;
2383 }
2384
2385 *p = 0;
2386 return ret;
2387}
2388
2389static char *
2390patch_gles_shader(const char *source, int length, int *patched_len)
2391{
2392 char *saveptr = NULL;
2393 char *sp;
2394 char *p = NULL;
2395
2396 if (!length) length = strlen(source);
2397
2398 *patched_len = 0;
2399 int patched_size = length;
2400 char *patched = malloc(patched_size + 1);
2401
2402 if (!patched) return NULL;
2403
2404 p = (char *)opengl_strtok(source, &length, &saveptr, NULL);
2405 for (; p; p = (char *)opengl_strtok(0, &length, &saveptr, p))
2406 {
2407 if (!strncmp(p, "lowp", 4) || !strncmp(p, "mediump", 7) || !strncmp(p, "highp", 5))
2408 {
2409 continue;
2410 }
2411 else if (!strncmp(p, "precision", 9))
2412 {
2413 while ((p = (char *)opengl_strtok(0, &length, &saveptr, p)) && !strchr(p, ';'));
2414 }
2415 else
2416 {
2417 if (!strncmp(p, "gl_MaxVertexUniformVectors", 26))
2418 {
2419 p = "(gl_MaxVertexUniformComponents / 4)";
2420 }
2421 else if (!strncmp(p, "gl_MaxFragmentUniformVectors", 28))
2422 {
2423 p = "(gl_MaxFragmentUniformComponents / 4)";
2424 }
2425 else if (!strncmp(p, "gl_MaxVaryingVectors", 20))
2426 {
2427 p = "(gl_MaxVaryingFloats / 4)";
2428 }
2429
2430 int new_len = strlen(p);
2431 if (*patched_len + new_len > patched_size)
2432 {
2433 patched_size *= 2;
2434 patched = realloc(patched, patched_size + 1);
2435
2436 if (!patched)
2437 return NULL;
2438 }
2439
2440 memcpy(patched + *patched_len, p, new_len);
2441 *patched_len += new_len;
2442 }
2443 }
2444
2445 patched[*patched_len] = 0;
2446 /* check that we don't leave dummy preprocessor lines */
2447 for (sp = patched; *sp;)
2448 {
2449 for (; *sp == ' ' || *sp == '\t'; sp++);
2450 if (!strncmp(sp, "#define", 7))
2451 {
2452 for (p = sp + 7; *p == ' ' || *p == '\t'; p++);
2453 if (*p == '\n' || *p == '\r' || *p == '/')
2454 {
2455 memset(sp, 0x20, 7);
2456 }
2457 }
2458 for (; *sp && *sp != '\n' && *sp != '\r'; sp++);
2459 for (; *sp == '\n' || *sp == '\r'; sp++);
2460 }
2461 return patched;
2462}
2463
2464static void
2465evgl_glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
2466{
2467 int i = 0, len = 0;
2468
2469 char **s = malloc(count * sizeof(char*));
2470 GLint *l = malloc(count * sizeof(GLint));
2471
2472 memset(s, 0, count * sizeof(char*));
2473 memset(l, 0, count * sizeof(GLint));
2474
2475 for (i = 0; i < count; ++i)
2476 {
2477 if (length)
2478 {
2479 len = length[i];
2480 if (len < 0)
2481 len = string[i] ? strlen(string[i]) : 0;
2482 }
2483 else
2484 len = string[i] ? strlen(string[i]) : 0;
2485
2486 if (string[i])
2487 {
2488 s[i] = patch_gles_shader(string[i], len, &l[i]);
2489 if (!s[i])
2490 {
2491 while(i)
2492 free(s[--i]);
2493 free(l);
2494 free(s);
2495
2496 DBG("Patching Shader Failed.");
2497 return;
2498 }
2499 }
2500 else
2501 {
2502 s[i] = NULL;
2503 l[i] = 0;
2504 }
2505 }
2506
2507 _sym_glShaderSource(shader, count, (const char **)s, l);
2508
2509 while(i)
2510 free(s[--i]);
2511 free(l);
2512 free(s);
2513}
2514
2515
2516static void
2517evgl_glGetShaderPrecisionFormat(GLenum shadertype __UNUSED__, GLenum precisiontype __UNUSED__, GLint* range, GLint* precision)
2518{
2519 if (range)
2520 {
2521 range[0] = -126; // floor(log2(FLT_MIN))
2522 range[1] = 127; // floor(log2(FLT_MAX))
2523 }
2524 if (precision)
2525 {
2526 precision[0] = 24; // floor(-log2((1.0/16777218.0)));
2527 }
2528 return;
2529}
2530
2531static void
2532evgl_glReleaseShaderCompiler(void)
2533{
2534 DBG("Not supported in Desktop GL");
2535 return;
2536}
2537
2538static void
2539evgl_glShaderBinary(GLsizei n __UNUSED__, const GLuint* shaders __UNUSED__, GLenum binaryformat __UNUSED__, const void* binary __UNUSED__, GLsizei length __UNUSED__)
2540{
2541 // FIXME: need to dlsym/getprocaddress for this
2542 DBG("Not supported in Desktop GL");
2543 return;
2544 //n = binaryformat = length = 0;
2545 //shaders = binary = 0;
2546}
2547#endif
2548//--------------------------------------------------------------//
2549
2550
2551#ifdef EVAS_GL
2552static void
2553override_gl_apis(Evas_GL_API *api)
2554{
2555
2556 api->version = EVAS_GL_API_VERSION;
2557
2558#define ORD(f) EVAS_API_OVERRIDE(f, api, _sym_)
2559 // GLES 2.0
2560 ORD(glActiveTexture);
2561 ORD(glAttachShader);
2562 ORD(glBindAttribLocation);
2563 ORD(glBindBuffer);
2564 ORD(glBindFramebuffer);
2565 ORD(glBindRenderbuffer);
2566 ORD(glBindTexture);
2567 ORD(glBlendColor);
2568 ORD(glBlendEquation);
2569 ORD(glBlendEquationSeparate);
2570 ORD(glBlendFunc);
2571 ORD(glBlendFuncSeparate);
2572 ORD(glBufferData);
2573 ORD(glBufferSubData);
2574 ORD(glCheckFramebufferStatus);
2575 ORD(glClear);
2576 ORD(glClearColor);
2577 ORD(glClearDepthf);
2578 ORD(glClearStencil);
2579 ORD(glColorMask);
2580 ORD(glCompileShader);
2581 ORD(glCompressedTexImage2D);
2582 ORD(glCompressedTexSubImage2D);
2583 ORD(glCopyTexImage2D);
2584 ORD(glCopyTexSubImage2D);
2585 ORD(glCreateProgram);
2586 ORD(glCreateShader);
2587 ORD(glCullFace);
2588 ORD(glDeleteBuffers);
2589 ORD(glDeleteFramebuffers);
2590 ORD(glDeleteProgram);
2591 ORD(glDeleteRenderbuffers);
2592 ORD(glDeleteShader);
2593 ORD(glDeleteTextures);
2594 ORD(glDepthFunc);
2595 ORD(glDepthMask);
2596 ORD(glDepthRangef);
2597 ORD(glDetachShader);
2598 ORD(glDisable);
2599 ORD(glDisableVertexAttribArray);
2600 ORD(glDrawArrays);
2601 ORD(glDrawElements);
2602 ORD(glEnable);
2603 ORD(glEnableVertexAttribArray);
2604 ORD(glFinish);
2605 ORD(glFlush);
2606 ORD(glFramebufferRenderbuffer);
2607 ORD(glFramebufferTexture2D);
2608 ORD(glFrontFace);
2609 ORD(glGenBuffers);
2610 ORD(glGenerateMipmap);
2611 ORD(glGenFramebuffers);
2612 ORD(glGenRenderbuffers);
2613 ORD(glGenTextures);
2614 ORD(glGetActiveAttrib);
2615 ORD(glGetActiveUniform);
2616 ORD(glGetAttachedShaders);
2617 ORD(glGetAttribLocation);
2618 ORD(glGetBooleanv);
2619 ORD(glGetBufferParameteriv);
2620 ORD(glGetError);
2621 ORD(glGetFloatv);
2622 ORD(glGetFramebufferAttachmentParameteriv);
2623 ORD(glGetIntegerv);
2624 ORD(glGetProgramiv);
2625 ORD(glGetProgramInfoLog);
2626 ORD(glGetRenderbufferParameteriv);
2627 ORD(glGetShaderiv);
2628 ORD(glGetShaderInfoLog);
2629 ORD(glGetShaderPrecisionFormat);
2630 ORD(glGetShaderSource);
2631 ORD(glGetString); // FIXME
2632 ORD(glGetTexParameterfv);
2633 ORD(glGetTexParameteriv);
2634 ORD(glGetUniformfv);
2635 ORD(glGetUniformiv);
2636 ORD(glGetUniformLocation);
2637 ORD(glGetVertexAttribfv);
2638 ORD(glGetVertexAttribiv);
2639 ORD(glGetVertexAttribPointerv);
2640 ORD(glHint);
2641 ORD(glIsBuffer);
2642 ORD(glIsEnabled);
2643 ORD(glIsFramebuffer);
2644 ORD(glIsProgram);
2645 ORD(glIsRenderbuffer);
2646 ORD(glIsShader);
2647 ORD(glIsTexture);
2648 ORD(glLineWidth);
2649 ORD(glLinkProgram);
2650 ORD(glPixelStorei);
2651 ORD(glPolygonOffset);
2652 ORD(glReadPixels);
2653 ORD(glReleaseShaderCompiler);
2654 ORD(glRenderbufferStorage);
2655 ORD(glSampleCoverage);
2656 ORD(glScissor);
2657 ORD(glShaderBinary);
2658 ORD(glShaderSource);
2659 ORD(glStencilFunc);
2660 ORD(glStencilFuncSeparate);
2661 ORD(glStencilMask);
2662 ORD(glStencilMaskSeparate);
2663 ORD(glStencilOp);
2664 ORD(glStencilOpSeparate);
2665 ORD(glTexImage2D);
2666 ORD(glTexParameterf);
2667 ORD(glTexParameterfv);
2668 ORD(glTexParameteri);
2669 ORD(glTexParameteriv);
2670 ORD(glTexSubImage2D);
2671 ORD(glUniform1f);
2672 ORD(glUniform1fv);
2673 ORD(glUniform1i);
2674 ORD(glUniform1iv);
2675 ORD(glUniform2f);
2676 ORD(glUniform2fv);
2677 ORD(glUniform2i);
2678 ORD(glUniform2iv);
2679 ORD(glUniform3f);
2680 ORD(glUniform3fv);
2681 ORD(glUniform3i);
2682 ORD(glUniform3iv);
2683 ORD(glUniform4f);
2684 ORD(glUniform4fv);
2685 ORD(glUniform4i);
2686 ORD(glUniform4iv);
2687 ORD(glUniformMatrix2fv);
2688 ORD(glUniformMatrix3fv);
2689 ORD(glUniformMatrix4fv);
2690 ORD(glUseProgram);
2691 ORD(glValidateProgram);
2692 ORD(glVertexAttrib1f);
2693 ORD(glVertexAttrib1fv);
2694 ORD(glVertexAttrib2f);
2695 ORD(glVertexAttrib2fv);
2696 ORD(glVertexAttrib3f);
2697 ORD(glVertexAttrib3fv);
2698 ORD(glVertexAttrib4f);
2699 ORD(glVertexAttrib4fv);
2700 ORD(glVertexAttribPointer);
2701 ORD(glViewport);
2702#undef ORD
2703
2704#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
2705 if (!gl_lib_is_gles)
2706 {
2707 // Override functions wrapped by Evas_GL
2708 // GLES2.0 API compat on top of desktop gl
2709 ORD(glGetShaderPrecisionFormat);
2710 ORD(glReleaseShaderCompiler);
2711 ORD(glShaderBinary);
2712 }
2713
2714 ORD(glShaderSource); // Do precision stripping in both cases
2715#undef ORD
2716}
2717#endif
2718
2719//-------------------------------------------//
2720static int
2721gl_lib_init(void)
2722{
2723#ifdef EVAS_GL
2724 // dlopen OSMesa
2725 gl_lib_handle = dlopen("libOSMesa.so.1", RTLD_NOW);
2726 if (!gl_lib_handle) gl_lib_handle = dlopen("libOSMesa.so", RTLD_NOW);
2727 if (!gl_lib_handle)
2728 {
2729 DBG("Unable to open libOSMesa: %s", dlerror());
2730 return 0;
2731 }
2732
2733 //------------------------------------------------//
2734 if (!glue_sym_init()) return 0;
2735 if (!gl_sym_init()) return 0;
2736
2737 override_gl_apis(&gl_funcs);
2738
2739 return 1;
2740#else
2741 return 0;
2742#endif
2743}
2744
2745
2746static void
2747init_gl(void)
2748{
2749 DBG("Initializing Software OpenGL APIs...\n");
2750
2751 if (!gl_lib_init())
2752 DBG("Unable to support EvasGL in this engine module. Install OSMesa to get it running");
2753 else
2754 {
2755#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
2756 ORD(gl_surface_create);
2757 ORD(gl_surface_destroy);
2758 ORD(gl_context_create);
2759 ORD(gl_context_destroy);
2760 ORD(gl_make_current);
2761 ORD(gl_string_query); // FIXME: Need to implement
2762 ORD(gl_proc_address_get); // FIXME: Need to implement
2763 ORD(gl_native_surface_get);
2764 ORD(gl_api_get);
2765#undef ORD
2766 }
2767}
2768
2769
2770/*
2771 *****
2772 **
2773 ** MODULE ACCESSIBLE API API
2774 **
2775 *****
2776 */
2777
2778static int
2779module_open(Evas_Module *em)
2780{
2781 if (!em) return 0;
2782 _evas_soft_gen_log_dom = eina_log_domain_register
2783 ("evas-software_generic", EVAS_DEFAULT_LOG_COLOR);
2784 if(_evas_soft_gen_log_dom<0)
2785 {
2786 EINA_LOG_ERR("Can not create a module log domain.");
2787 return 0;
2788 }
2789
2790 init_gl();
2791
2792 em->functions = (void *)(&func);
2793 cpunum = eina_cpu_count();
2794 return 1;
2795}
2796
2797static void
2798module_close(Evas_Module *em __UNUSED__)
2799{
2800 eina_log_domain_unregister(_evas_soft_gen_log_dom);
2801}
2802
2803static Evas_Module_Api evas_modapi =
2804{
2805 EVAS_MODULE_API_VERSION,
2806 "software_generic",
2807 "none",
2808 {
2809 module_open,
2810 module_close
2811 }
2812};
2813
2814EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_generic);
2815
2816#ifndef EVAS_STATIC_BUILD_SOFTWARE_GENERIC
2817EVAS_EINA_MODULE_DEFINE(engine, software_generic);
2818#endif
diff --git a/libraries/evas/src/modules/engines/software_sdl/Evas_Engine_SDL.h b/libraries/evas/src/modules/engines/software_sdl/Evas_Engine_SDL.h
deleted file mode 100644
index 3cce6ec..0000000
--- a/libraries/evas/src/modules/engines/software_sdl/Evas_Engine_SDL.h
+++ /dev/null
@@ -1,27 +0,0 @@
1#ifndef _EVAS_ENGINE_SDL_H
2#define _EVAS_ENGINE_SDL_H
3
4#include <SDL/SDL.h>
5
6typedef struct _Evas_Engine_Info_SDL Evas_Engine_Info_SDL;
7
8struct _Evas_Engine_Info_SDL
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 struct {
15 int rotation;
16 int fullscreen : 1;
17 int hwsurface : 1;
18 int noframe : 1;
19 int alpha : 1;
20 } info;
21
22 /* non-blocking or blocking mode */
23 Evas_Engine_Render_Mode render_mode;
24};
25#endif
26
27
diff --git a/libraries/evas/src/modules/engines/software_sdl/Makefile.am b/libraries/evas/src/modules/engines/software_sdl/Makefile.am
deleted file mode 100644
index dc548ba..0000000
--- a/libraries/evas/src/modules/engines/software_sdl/Makefile.am
+++ /dev/null
@@ -1,45 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@evas_engine_software_sdl_cflags@
13
14AM_CFLAGS = @WIN32_CFLAGS@
15
16if BUILD_ENGINE_SOFTWARE_SDL
17
18SOFTWARE_SDL_SOURCES = evas_engine.c
19SOFTWARE_SDL_LIBADD = @evas_engine_software_sdl_libs@
20
21
22includes_HEADERS = Evas_Engine_SDL.h
23includesdir = $(includedir)/evas-@VMAJ@
24
25if !EVAS_STATIC_BUILD_SOFTWARE_SDL
26
27pkgdir = $(libdir)/evas/modules/engines/software_sdl/$(MODULE_ARCH)
28pkg_LTLIBRARIES = module.la
29
30module_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
31module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_SDL_LIBADD)
32module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
33module_la_LIBTOOLFLAGS = --tag=disable-static
34
35else
36
37noinst_LTLIBRARIES = libevas_engine_software_sdl.la
38
39libevas_engine_software_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
40libevas_engine_software_sdl_la_LIBADD = $(SOFTWARE_SDL_LIBADD)
41
42endif
43endif
44
45EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_sdl/Makefile.in b/libraries/evas/src/modules/engines/software_sdl/Makefile.in
deleted file mode 100644
index f63f3eb..0000000
--- a/libraries/evas/src/modules/engines/software_sdl/Makefile.in
+++ /dev/null
@@ -1,800 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/software_sdl
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE@libevas_engine_software_sdl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_sdl_la_SOURCES_DIST = evas_engine.c
87@BUILD_ENGINE_SOFTWARE_SDL_TRUE@am__objects_1 = evas_engine.lo
88@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE@am_libevas_engine_software_sdl_la_OBJECTS = $(am__objects_1)
89libevas_engine_software_sdl_la_OBJECTS = \
90 $(am_libevas_engine_software_sdl_la_OBJECTS)
91AM_V_lt = $(am__v_lt_$(V))
92am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
93am__v_lt_0 = --silent
94@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE@am_libevas_engine_software_sdl_la_rpath =
95@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la \
96@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@ $(am__DEPENDENCIES_1)
97am__module_la_SOURCES_DIST = evas_engine.c
98@BUILD_ENGINE_SOFTWARE_SDL_TRUE@am__objects_2 = \
99@BUILD_ENGINE_SOFTWARE_SDL_TRUE@ module_la-evas_engine.lo
100@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@am_module_la_OBJECTS = $(am__objects_2)
101module_la_OBJECTS = $(am_module_la_OBJECTS)
102module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
103 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
104 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
105@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@am_module_la_rpath = -rpath \
106@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@ $(pkgdir)
107DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
108depcomp = $(SHELL) $(top_srcdir)/depcomp
109am__depfiles_maybe = depfiles
110am__mv = mv -f
111COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
112 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
113LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
114 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
115 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
116 $(AM_CFLAGS) $(CFLAGS)
117AM_V_CC = $(am__v_CC_$(V))
118am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
119am__v_CC_0 = @echo " CC " $@;
120AM_V_at = $(am__v_at_$(V))
121am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
122am__v_at_0 = @
123CCLD = $(CC)
124LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
125 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
126 $(AM_LDFLAGS) $(LDFLAGS) -o $@
127AM_V_CCLD = $(am__v_CCLD_$(V))
128am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
129am__v_CCLD_0 = @echo " CCLD " $@;
130AM_V_GEN = $(am__v_GEN_$(V))
131am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
132am__v_GEN_0 = @echo " GEN " $@;
133SOURCES = $(libevas_engine_software_sdl_la_SOURCES) \
134 $(module_la_SOURCES)
135DIST_SOURCES = $(am__libevas_engine_software_sdl_la_SOURCES_DIST) \
136 $(am__module_la_SOURCES_DIST)
137am__includes_HEADERS_DIST = Evas_Engine_SDL.h
138HEADERS = $(includes_HEADERS)
139ETAGS = etags
140CTAGS = ctags
141DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
142ACLOCAL = @ACLOCAL@
143ALLOCA = @ALLOCA@
144AMTAR = @AMTAR@
145AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
146AR = @AR@
147AS = @AS@
148AUTOCONF = @AUTOCONF@
149AUTOHEADER = @AUTOHEADER@
150AUTOMAKE = @AUTOMAKE@
151AWK = @AWK@
152CC = @CC@
153CCDEPMODE = @CCDEPMODE@
154CFLAGS = @CFLAGS@
155CHECK_CFLAGS = @CHECK_CFLAGS@
156CHECK_LIBS = @CHECK_LIBS@
157CPP = @CPP@
158CPPFLAGS = @CPPFLAGS@
159CXX = @CXX@
160CXXCPP = @CXXCPP@
161CXXDEPMODE = @CXXDEPMODE@
162CXXFLAGS = @CXXFLAGS@
163CYGPATH_W = @CYGPATH_W@
164DEFS = @DEFS@
165DEPDIR = @DEPDIR@
166DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
167DIRECTFB_LIBS = @DIRECTFB_LIBS@
168DLLTOOL = @DLLTOOL@
169DSYMUTIL = @DSYMUTIL@
170DUMPBIN = @DUMPBIN@
171ECHO_C = @ECHO_C@
172ECHO_N = @ECHO_N@
173ECHO_T = @ECHO_T@
174ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
175ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
176EDB_CFLAGS = @EDB_CFLAGS@
177EDB_LIBS = @EDB_LIBS@
178EDJE_CFLAGS = @EDJE_CFLAGS@
179EDJE_LIBS = @EDJE_LIBS@
180EET_CFLAGS = @EET_CFLAGS@
181EET_LIBS = @EET_LIBS@
182EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
183EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
184EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
185EGREP = @EGREP@
186EINA_CFLAGS = @EINA_CFLAGS@
187EINA_LIBS = @EINA_LIBS@
188EVAS_CFLAGS = @EVAS_CFLAGS@
189EVAS_LIBS = @EVAS_LIBS@
190EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
191EVIL_CFLAGS = @EVIL_CFLAGS@
192EVIL_LIBS = @EVIL_LIBS@
193EXEEXT = @EXEEXT@
194FGREP = @FGREP@
195FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
196FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
197FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
198FREETYPE_LIBS = @FREETYPE_LIBS@
199FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
200FRIBIDI_LIBS = @FRIBIDI_LIBS@
201GL_EET_CFLAGS = @GL_EET_CFLAGS@
202GL_EET_LIBS = @GL_EET_LIBS@
203GREP = @GREP@
204HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
205HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
206INSTALL = @INSTALL@
207INSTALL_DATA = @INSTALL_DATA@
208INSTALL_PROGRAM = @INSTALL_PROGRAM@
209INSTALL_SCRIPT = @INSTALL_SCRIPT@
210INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
211LD = @LD@
212LDFLAGS = @LDFLAGS@
213LIBOBJS = @LIBOBJS@
214LIBS = @LIBS@
215LIBTOOL = @LIBTOOL@
216LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
217LINEBREAK_LIBS = @LINEBREAK_LIBS@
218LIPO = @LIPO@
219LN_S = @LN_S@
220LTLIBOBJS = @LTLIBOBJS@
221MAKEINFO = @MAKEINFO@
222MKDIR_P = @MKDIR_P@
223MODULE_ARCH = @MODULE_ARCH@
224NM = @NM@
225NMEDIT = @NMEDIT@
226OBJC = @OBJC@
227OBJCDEPMODE = @OBJCDEPMODE@
228OBJCFLAGS = @OBJCFLAGS@
229OBJDUMP = @OBJDUMP@
230OBJEXT = @OBJEXT@
231OTOOL = @OTOOL@
232OTOOL64 = @OTOOL64@
233PACKAGE = @PACKAGE@
234PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
235PACKAGE_NAME = @PACKAGE_NAME@
236PACKAGE_STRING = @PACKAGE_STRING@
237PACKAGE_TARNAME = @PACKAGE_TARNAME@
238PACKAGE_URL = @PACKAGE_URL@
239PACKAGE_VERSION = @PACKAGE_VERSION@
240PATH_SEPARATOR = @PATH_SEPARATOR@
241PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
242PIXMAN_LIBS = @PIXMAN_LIBS@
243PKG_CONFIG = @PKG_CONFIG@
244PNG_CFLAGS = @PNG_CFLAGS@
245PNG_LIBS = @PNG_LIBS@
246RANLIB = @RANLIB@
247SDL_CFLAGS = @SDL_CFLAGS@
248SDL_LIBS = @SDL_LIBS@
249SED = @SED@
250SET_MAKE = @SET_MAKE@
251SHELL = @SHELL@
252SHM_OPEN_LINK = @SHM_OPEN_LINK@
253STRIP = @STRIP@
254SVG_CFLAGS = @SVG_CFLAGS@
255SVG_LIBS = @SVG_LIBS@
256VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
257VALGRIND_LIBS = @VALGRIND_LIBS@
258VERSION = @VERSION@
259VMAJ = @VMAJ@
260WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
261WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
262WIN32_CFLAGS = @WIN32_CFLAGS@
263WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
264XCB_CFLAGS = @XCB_CFLAGS@
265XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
266XCB_GL_LIBS = @XCB_GL_LIBS@
267XCB_LIBS = @XCB_LIBS@
268XEXT_CFLAGS = @XEXT_CFLAGS@
269XEXT_LIBS = @XEXT_LIBS@
270XMKMF = @XMKMF@
271X_CFLAGS = @X_CFLAGS@
272X_EXTRA_LIBS = @X_EXTRA_LIBS@
273X_LIBS = @X_LIBS@
274X_PRE_LIBS = @X_PRE_LIBS@
275abs_builddir = @abs_builddir@
276abs_srcdir = @abs_srcdir@
277abs_top_builddir = @abs_top_builddir@
278abs_top_srcdir = @abs_top_srcdir@
279ac_ct_CC = @ac_ct_CC@
280ac_ct_CXX = @ac_ct_CXX@
281ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
282ac_ct_OBJC = @ac_ct_OBJC@
283altivec_cflags = @altivec_cflags@
284am__include = @am__include@
285am__leading_dot = @am__leading_dot@
286am__quote = @am__quote@
287am__tar = @am__tar@
288am__untar = @am__untar@
289bindir = @bindir@
290build = @build@
291build_alias = @build_alias@
292build_cpu = @build_cpu@
293build_os = @build_os@
294build_vendor = @build_vendor@
295builddir = @builddir@
296datadir = @datadir@
297datarootdir = @datarootdir@
298dlopen_libs = @dlopen_libs@
299docdir = @docdir@
300dvidir = @dvidir@
301edje_cc = @edje_cc@
302efl_doxygen = @efl_doxygen@
303efl_have_doxygen = @efl_have_doxygen@
304evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
305evas_engine_buffer_libs = @evas_engine_buffer_libs@
306evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
307evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
308evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
309evas_engine_directfb_libs = @evas_engine_directfb_libs@
310evas_engine_fb_cflags = @evas_engine_fb_cflags@
311evas_engine_fb_libs = @evas_engine_fb_libs@
312evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
313evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
314evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
315evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
316evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
317evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
318evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
319evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
320evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
321evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
322evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
323evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
324evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
325evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
326evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
327evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
328evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
329evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
330evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
331evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
332evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
333evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
334evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
335evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
336evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
337evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@
338evas_engine_software_sdl_libs = @evas_engine_software_sdl_libs@
339evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
340evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
341evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
342evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
343evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
344evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
345evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
346evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
347evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
348evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
349evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
350evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
351evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
352evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
353evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
354evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
355evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
356evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
357evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
358evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
359evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
360evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
361evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
362evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
363evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
364evas_image_loader_png_libs = @evas_image_loader_png_libs@
365evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
366evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
367evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
368evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
369evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
370evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
371evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
372evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
373evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
374evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
375evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
376evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
377exec_prefix = @exec_prefix@
378have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
379have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
380have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
381have_evas_engine_software_x11 = @have_evas_engine_software_x11@
382have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
383have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
384have_lcov = @have_lcov@
385host = @host@
386host_alias = @host_alias@
387host_cpu = @host_cpu@
388host_os = @host_os@
389host_vendor = @host_vendor@
390htmldir = @htmldir@
391includedir = @includedir@
392infodir = @infodir@
393install_sh = @install_sh@
394libdir = @libdir@
395libexecdir = @libexecdir@
396localedir = @localedir@
397localstatedir = @localstatedir@
398lt_ECHO = @lt_ECHO@
399lt_enable_auto_import = @lt_enable_auto_import@
400mandir = @mandir@
401mkdir_p = @mkdir_p@
402oldincludedir = @oldincludedir@
403pdfdir = @pdfdir@
404pkgconfig_requires_private = @pkgconfig_requires_private@
405prefix = @prefix@
406program_transform_name = @program_transform_name@
407psdir = @psdir@
408pthread_cflags = @pthread_cflags@
409pthread_libs = @pthread_libs@
410release_info = @release_info@
411requirement_evas = @requirement_evas@
412sbindir = @sbindir@
413sharedstatedir = @sharedstatedir@
414srcdir = @srcdir@
415sysconfdir = @sysconfdir@
416target_alias = @target_alias@
417top_build_prefix = @top_build_prefix@
418top_builddir = @top_builddir@
419top_srcdir = @top_srcdir@
420version_info = @version_info@
421MAINTAINERCLEANFILES = Makefile.in
422AM_CPPFLAGS = \
423-I. \
424-I$(top_srcdir)/src/lib \
425-I$(top_srcdir)/src/lib/include \
426-I$(top_srcdir)/src/modules/engines \
427@FREETYPE_CFLAGS@ \
428@PIXMAN_CFLAGS@ \
429@EINA_CFLAGS@ \
430@evas_engine_software_sdl_cflags@
431
432AM_CFLAGS = @WIN32_CFLAGS@
433@BUILD_ENGINE_SOFTWARE_SDL_TRUE@SOFTWARE_SDL_SOURCES = evas_engine.c
434@BUILD_ENGINE_SOFTWARE_SDL_TRUE@SOFTWARE_SDL_LIBADD = @evas_engine_software_sdl_libs@
435@BUILD_ENGINE_SOFTWARE_SDL_TRUE@includes_HEADERS = Evas_Engine_SDL.h
436@BUILD_ENGINE_SOFTWARE_SDL_TRUE@includesdir = $(includedir)/evas-@VMAJ@
437@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_sdl/$(MODULE_ARCH)
438@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@pkg_LTLIBRARIES = module.la
439@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@module_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
440@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_SDL_LIBADD)
441@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@module_la_LDFLAGS = @lt_enable_auto_import@ -no-undefined -module -avoid-version
442@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
443@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE@noinst_LTLIBRARIES = libevas_engine_software_sdl.la
444@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE@libevas_engine_software_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
445@BUILD_ENGINE_SOFTWARE_SDL_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_SDL_TRUE@libevas_engine_software_sdl_la_LIBADD = $(SOFTWARE_SDL_LIBADD)
446EXTRA_DIST = evas_engine.h
447all: all-am
448
449.SUFFIXES:
450.SUFFIXES: .c .lo .o .obj
451$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
452 @for dep in $?; do \
453 case '$(am__configure_deps)' in \
454 *$$dep*) \
455 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
456 && { if test -f $@; then exit 0; else break; fi; }; \
457 exit 1;; \
458 esac; \
459 done; \
460 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_sdl/Makefile'; \
461 $(am__cd) $(top_srcdir) && \
462 $(AUTOMAKE) --gnu src/modules/engines/software_sdl/Makefile
463.PRECIOUS: Makefile
464Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
465 @case '$?' in \
466 *config.status*) \
467 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
468 *) \
469 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
470 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
471 esac;
472
473$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
474 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
475
476$(top_srcdir)/configure: $(am__configure_deps)
477 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
478$(ACLOCAL_M4): $(am__aclocal_m4_deps)
479 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
480$(am__aclocal_m4_deps):
481
482clean-noinstLTLIBRARIES:
483 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
484 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
485 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
486 test "$$dir" != "$$p" || dir=.; \
487 echo "rm -f \"$${dir}/so_locations\""; \
488 rm -f "$${dir}/so_locations"; \
489 done
490install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
491 @$(NORMAL_INSTALL)
492 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
493 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
494 list2=; for p in $$list; do \
495 if test -f $$p; then \
496 list2="$$list2 $$p"; \
497 else :; fi; \
498 done; \
499 test -z "$$list2" || { \
500 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
501 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
502 }
503
504uninstall-pkgLTLIBRARIES:
505 @$(NORMAL_UNINSTALL)
506 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
507 for p in $$list; do \
508 $(am__strip_dir) \
509 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
510 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
511 done
512
513clean-pkgLTLIBRARIES:
514 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
515 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
516 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
517 test "$$dir" != "$$p" || dir=.; \
518 echo "rm -f \"$${dir}/so_locations\""; \
519 rm -f "$${dir}/so_locations"; \
520 done
521libevas_engine_software_sdl.la: $(libevas_engine_software_sdl_la_OBJECTS) $(libevas_engine_software_sdl_la_DEPENDENCIES)
522 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_sdl_la_rpath) $(libevas_engine_software_sdl_la_OBJECTS) $(libevas_engine_software_sdl_la_LIBADD) $(LIBS)
523module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
524 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
525
526mostlyclean-compile:
527 -rm -f *.$(OBJEXT)
528
529distclean-compile:
530 -rm -f *.tab.c
531
532@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
533@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
534
535.c.o:
536@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
537@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
538@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
539@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
540@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
541@am__fastdepCC_FALSE@ $(COMPILE) -c $<
542
543.c.obj:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
550
551.c.lo:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
558
559module_la-evas_engine.lo: evas_engine.c
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
566
567mostlyclean-libtool:
568 -rm -f *.lo
569
570clean-libtool:
571 -rm -rf .libs _libs
572install-includesHEADERS: $(includes_HEADERS)
573 @$(NORMAL_INSTALL)
574 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
575 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
576 for p in $$list; do \
577 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
578 echo "$$d$$p"; \
579 done | $(am__base_list) | \
580 while read files; do \
581 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
582 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
583 done
584
585uninstall-includesHEADERS:
586 @$(NORMAL_UNINSTALL)
587 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
588 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
589 test -n "$$files" || exit 0; \
590 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
591 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
592
593ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
594 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
595 unique=`for i in $$list; do \
596 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
597 done | \
598 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
599 END { if (nonempty) { for (i in files) print i; }; }'`; \
600 mkid -fID $$unique
601tags: TAGS
602
603TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
604 $(TAGS_FILES) $(LISP)
605 set x; \
606 here=`pwd`; \
607 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
608 unique=`for i in $$list; do \
609 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
610 done | \
611 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
612 END { if (nonempty) { for (i in files) print i; }; }'`; \
613 shift; \
614 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
615 test -n "$$unique" || unique=$$empty_fix; \
616 if test $$# -gt 0; then \
617 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
618 "$$@" $$unique; \
619 else \
620 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
621 $$unique; \
622 fi; \
623 fi
624ctags: CTAGS
625CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
626 $(TAGS_FILES) $(LISP)
627 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
628 unique=`for i in $$list; do \
629 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
630 done | \
631 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
632 END { if (nonempty) { for (i in files) print i; }; }'`; \
633 test -z "$(CTAGS_ARGS)$$unique" \
634 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
635 $$unique
636
637GTAGS:
638 here=`$(am__cd) $(top_builddir) && pwd` \
639 && $(am__cd) $(top_srcdir) \
640 && gtags -i $(GTAGS_ARGS) "$$here"
641
642distclean-tags:
643 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
644
645distdir: $(DISTFILES)
646 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
647 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
648 list='$(DISTFILES)'; \
649 dist_files=`for file in $$list; do echo $$file; done | \
650 sed -e "s|^$$srcdirstrip/||;t" \
651 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
652 case $$dist_files in \
653 */*) $(MKDIR_P) `echo "$$dist_files" | \
654 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
655 sort -u` ;; \
656 esac; \
657 for file in $$dist_files; do \
658 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
659 if test -d $$d/$$file; then \
660 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
661 if test -d "$(distdir)/$$file"; then \
662 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
663 fi; \
664 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
665 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
666 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
667 fi; \
668 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
669 else \
670 test -f "$(distdir)/$$file" \
671 || cp -p $$d/$$file "$(distdir)/$$file" \
672 || exit 1; \
673 fi; \
674 done
675check-am: all-am
676check: check-am
677all-am: Makefile $(LTLIBRARIES) $(HEADERS)
678installdirs:
679 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
680 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
681 done
682install: install-am
683install-exec: install-exec-am
684install-data: install-data-am
685uninstall: uninstall-am
686
687install-am: all-am
688 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
689
690installcheck: installcheck-am
691install-strip:
692 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
693 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
694 `test -z '$(STRIP)' || \
695 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
696mostlyclean-generic:
697
698clean-generic:
699
700distclean-generic:
701 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
702 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
703
704maintainer-clean-generic:
705 @echo "This command is intended for maintainers to use"
706 @echo "it deletes files that may require special tools to rebuild."
707 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
708clean: clean-am
709
710clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
711 clean-pkgLTLIBRARIES mostlyclean-am
712
713distclean: distclean-am
714 -rm -rf ./$(DEPDIR)
715 -rm -f Makefile
716distclean-am: clean-am distclean-compile distclean-generic \
717 distclean-tags
718
719dvi: dvi-am
720
721dvi-am:
722
723html: html-am
724
725html-am:
726
727info: info-am
728
729info-am:
730
731install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
732
733install-dvi: install-dvi-am
734
735install-dvi-am:
736
737install-exec-am:
738
739install-html: install-html-am
740
741install-html-am:
742
743install-info: install-info-am
744
745install-info-am:
746
747install-man:
748
749install-pdf: install-pdf-am
750
751install-pdf-am:
752
753install-ps: install-ps-am
754
755install-ps-am:
756
757installcheck-am:
758
759maintainer-clean: maintainer-clean-am
760 -rm -rf ./$(DEPDIR)
761 -rm -f Makefile
762maintainer-clean-am: distclean-am maintainer-clean-generic
763
764mostlyclean: mostlyclean-am
765
766mostlyclean-am: mostlyclean-compile mostlyclean-generic \
767 mostlyclean-libtool
768
769pdf: pdf-am
770
771pdf-am:
772
773ps: ps-am
774
775ps-am:
776
777uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
778
779.MAKE: install-am install-strip
780
781.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
782 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
783 ctags distclean distclean-compile distclean-generic \
784 distclean-libtool distclean-tags distdir dvi dvi-am html \
785 html-am info info-am install install-am install-data \
786 install-data-am install-dvi install-dvi-am install-exec \
787 install-exec-am install-html install-html-am \
788 install-includesHEADERS install-info install-info-am \
789 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
790 install-ps install-ps-am install-strip installcheck \
791 installcheck-am installdirs maintainer-clean \
792 maintainer-clean-generic mostlyclean mostlyclean-compile \
793 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
794 tags uninstall uninstall-am uninstall-includesHEADERS \
795 uninstall-pkgLTLIBRARIES
796
797
798# Tell versions [3.59,3.63) of GNU make to not export all variables.
799# Otherwise a system limit (for SysV at least) may be exceeded.
800.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_sdl/evas_engine.c b/libraries/evas/src/modules/engines/software_sdl/evas_engine.c
deleted file mode 100644
index 22c11b0..0000000
--- a/libraries/evas/src/modules/engines/software_sdl/evas_engine.c
+++ /dev/null
@@ -1,1218 +0,0 @@
1#include <assert.h>
2#include <math.h>
3#include <string.h>
4#include <sys/time.h>
5#include <time.h>
6#include <SDL/SDL.h>
7
8#include "evas_common.h" /* Also includes international specific stuff */
9#include "evas_engine.h"
10
11int _evas_engine_soft_sdl_log_dom = -1;
12/* #define DEBUG_SDL */
13
14static Evas_Func func, pfunc;
15
16static void* _sdl_output_setup (int w, int h, int fullscreen, int noframe, int alpha, int hwsurface);
17
18static Engine_Image_Entry *_sdl_image_alloc (void);
19static void _sdl_image_delete (Engine_Image_Entry *eim);
20
21static int _sdl_image_constructor (Engine_Image_Entry*, void* data);
22static void _sdl_image_destructor (Engine_Image_Entry *eim);
23
24static void _sdl_image_dirty_region(Engine_Image_Entry *eim, unsigned int x, unsigned int y, unsigned int w, unsigned int h);
25
26static int _sdl_image_dirty (Engine_Image_Entry *dst, const Engine_Image_Entry *src);
27
28static int _sdl_image_size_set (Engine_Image_Entry *dst, const Engine_Image_Entry *src);
29
30static int _sdl_image_update_data (Engine_Image_Entry* dst, void* engine_data);
31
32static void _sdl_image_load (Engine_Image_Entry *eim, const Image_Entry* im);
33static int _sdl_image_mem_size_get(Engine_Image_Entry *eim);
34
35#ifdef DEBUG_SDL
36static void _sdl_image_debug (const char* context, Engine_Image_Entry* im);
37#endif
38
39static const Evas_Cache_Engine_Image_Func _sdl_cache_engine_image_cb = {
40 NULL /* key */,
41 _sdl_image_alloc /* alloc */,
42 _sdl_image_delete /* dealloc */,
43 _sdl_image_constructor /* constructor */,
44 _sdl_image_destructor /* destructor */,
45 _sdl_image_dirty_region /* dirty_region */,
46 _sdl_image_dirty /* dirty */,
47 _sdl_image_size_set /* size_set */,
48 _sdl_image_update_data /* update_data */,
49 _sdl_image_load /* load */,
50 _sdl_image_mem_size_get /* mem_size_get */,
51#ifdef DEBUG_SDL /* debug */
52 _sdl_image_debug
53#else
54 NULL
55#endif
56};
57
58#define _SDL_UPDATE_PIXELS(EIM) \
59 ((RGBA_Image *) EIM->cache_entry.src)->image.data = EIM->surface->pixels;
60
61#define RMASK 0x00ff0000
62#define GMASK 0x0000ff00
63#define BMASK 0x000000ff
64#define AMASK 0xff000000
65
66/* SDL engine info function */
67static void*
68evas_engine_sdl_info (Evas* e __UNUSED__)
69{
70 Evas_Engine_Info_SDL* info;
71 info = calloc(1, sizeof (Evas_Engine_Info_SDL));
72 if (!info) return NULL;
73 info->magic.magic = rand();
74 return info;
75}
76
77static void
78evas_engine_sdl_info_free (Evas* e __UNUSED__, void* info)
79{
80 Evas_Engine_Info_SDL* in;
81 in = (Evas_Engine_Info_SDL*) info;
82 free(in);
83}
84
85/* SDL engine output manipulation function */
86static int
87evas_engine_sdl_setup (Evas* e, void* in)
88{
89 Evas_Engine_Info_SDL* info = (Evas_Engine_Info_SDL*) in;
90
91 /* if we arent set to sdl, why the hell do we get called?! */
92 if (evas_output_method_get(e) != evas_render_method_lookup("software_sdl"))
93 return 0;
94
95 SDL_Init(SDL_INIT_NOPARACHUTE);
96
97 if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0)
98 {
99 ERR("SDL_Init failed with %s", SDL_GetError());
100 SDL_Quit();
101 return 0;
102 }
103
104 /* lets just set up */
105 e->engine.data.output = _sdl_output_setup(e->output.w, e->output.h,
106 info->info.fullscreen,
107 info->info.noframe,
108 info->info.alpha,
109 info->info.hwsurface);
110
111 if (!e->engine.data.output)
112 return 0;
113
114 e->engine.func = &func;
115 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
116
117 return 1;
118}
119
120static void
121evas_engine_sdl_output_free (void *data)
122{
123 Render_Engine* re = data;
124
125 if (re->tb)
126 evas_common_tilebuf_free(re->tb);
127 if (re->rects)
128 evas_common_tilebuf_free_render_rects(re->rects);
129 if (re->rgba_engine_image)
130 evas_cache_engine_image_drop(&re->rgba_engine_image->cache_entry);
131 if (re->cache)
132 evas_cache_engine_image_shutdown(re->cache);
133
134 if (re->update_rects)
135 free(re->update_rects);
136 free(re);
137
138 evas_common_font_shutdown();
139 evas_common_image_shutdown();
140
141 SDL_QuitSubSystem(SDL_INIT_VIDEO);
142}
143
144static void
145evas_engine_sdl_output_resize (void *data, int w, int h)
146{
147 /* FIXME */
148 Render_Engine *re = data;
149 SDL_Surface *surface;
150
151 if (w == re->tb->outbuf_w && h == re->tb->outbuf_h)
152 return;
153
154 /* Destroy the current screen */
155 evas_cache_engine_image_drop(&re->rgba_engine_image->cache_entry);
156
157 /* Rebuil tilebuf */
158 evas_common_tilebuf_free(re->tb);
159 re->tb = evas_common_tilebuf_new(w, h);
160 if (re->tb)
161 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
162
163 /* Build the new screen */
164 surface = SDL_SetVideoMode(w, h, 32,
165 (re->flags.hwsurface ? SDL_HWSURFACE : SDL_SWSURFACE)
166 | (re->flags.fullscreen ? SDL_FULLSCREEN : 0)
167 | (re->flags.noframe ? SDL_NOFRAME : 0)
168 | (re->flags.alpha ? SDL_SRCALPHA : 0));
169
170 if (!surface)
171 {
172 ERR("Unable to change the resolution to : %ix%i", w, h);
173 exit(-1);
174 }
175 re->rgba_engine_image = (SDL_Engine_Image_Entry *) evas_cache_engine_image_engine(re->cache, surface);
176 if (!re->rgba_engine_image)
177 {
178 ERR("RGBA_Image allocation from SDL failed");
179 exit(-1);
180 }
181
182 SDL_FillRect(surface, NULL, 0);
183}
184
185static void
186evas_engine_sdl_output_tile_size_set (void *data, int w, int h)
187{
188 Render_Engine* re = (Render_Engine*) data;
189
190 evas_common_tilebuf_set_tile_size(re->tb, w, h);
191}
192
193static void
194evas_engine_sdl_output_redraws_rect_add (void *data, int x, int y, int w, int h)
195{
196 Render_Engine* re = (Render_Engine*) data;
197
198 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
199}
200
201static void
202evas_engine_sdl_output_redraws_rect_del (void *data, int x, int y, int w, int h)
203{
204 Render_Engine* re = (Render_Engine*) data;
205
206 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
207}
208
209static void
210evas_engine_sdl_output_redraws_clear (void *data)
211{
212 Render_Engine* re = (Render_Engine*) data;
213
214 evas_common_tilebuf_clear(re->tb);
215}
216
217static void*
218evas_engine_sdl_output_redraws_next_update_get (void *data,
219 int *x, int *y, int *w, int *h,
220 int *cx, int *cy, int *cw, int *ch)
221{
222 Render_Engine *re = data;
223 Tilebuf_Rect *tb_rect;
224 SDL_Rect rect;
225
226 if (re->flags.end)
227 {
228 re->flags.end = 0;
229 return NULL;
230 }
231 if (!re->rects)
232 {
233 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
234 re->cur_rect = EINA_INLIST_GET(re->rects);
235 }
236 if (!re->cur_rect)
237 {
238 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
239 re->rects = NULL;
240 return NULL;
241 }
242
243 tb_rect = (Tilebuf_Rect*) re->cur_rect;
244 *cx = *x = tb_rect->x;
245 *cy = *y = tb_rect->y;
246 *cw = *w = tb_rect->w;
247 *ch = *h = tb_rect->h;
248 re->cur_rect = re->cur_rect->next;
249 if (!re->cur_rect)
250 {
251 evas_common_tilebuf_free_render_rects(re->rects);
252 re->rects = NULL;
253 re->flags.end = 1;
254 }
255
256 rect.x = *x;
257 rect.y = *y;
258 rect.w = *w;
259 rect.h = *h;
260
261 /* Return the "fake" surface so it is passed to the drawing routines. */
262 return re->rgba_engine_image;
263}
264
265static void
266evas_engine_sdl_output_redraws_next_update_push (void *data, void *surface __UNUSED__,
267 int x, int y, int w, int h)
268{
269 Render_Engine *re = (Render_Engine *) data;
270
271 if (re->update_rects_count + 1 > re->update_rects_limit)
272 {
273 re->update_rects_limit += 8;
274 re->update_rects = realloc(re->update_rects, sizeof (SDL_Rect) * re->update_rects_limit);
275 }
276
277 re->update_rects[re->update_rects_count].x = x;
278 re->update_rects[re->update_rects_count].y = y;
279 re->update_rects[re->update_rects_count].w = w;
280 re->update_rects[re->update_rects_count].h = h;
281
282 ++re->update_rects_count;
283
284 evas_common_cpu_end_opt();
285}
286
287static void
288_sdl_image_dirty_region(Engine_Image_Entry *eim, unsigned int x, unsigned int y, unsigned int w, unsigned int h)
289{
290 SDL_Engine_Image_Entry *dst;
291 RGBA_Image *im;
292
293 dst = (SDL_Engine_Image_Entry *) eim;
294
295 SDL_UpdateRect(dst->surface, x, y, w, h);
296
297 im = (RGBA_Image *)eim->src;
298 im->flags |= RGBA_IMAGE_IS_DIRTY;
299}
300
301static void
302evas_engine_sdl_output_flush(void *data)
303{
304 Render_Engine *re = (Render_Engine *) data;
305
306 if (re->update_rects_count > 0)
307 SDL_UpdateRects(re->rgba_engine_image->surface, re->update_rects_count, re->update_rects);
308
309 re->update_rects_count = 0;
310}
311
312
313static void
314evas_engine_sdl_output_idle_flush(void *data)
315{
316 (void) data;
317}
318
319/*
320 * Image objects
321 */
322
323static void*
324evas_engine_sdl_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
325{
326 Render_Engine* re = (Render_Engine*) data;;
327
328 *error = 0;
329 return evas_cache_engine_image_request(re->cache, file, key, lo, NULL, error);
330}
331
332static int
333evas_engine_sdl_image_alpha_get(void *data __UNUSED__, void *image)
334{
335 SDL_Engine_Image_Entry *eim = image;
336 RGBA_Image *im;
337
338 if (!eim) return 1;
339 im = (RGBA_Image *) eim->cache_entry.src;
340 switch (eim->cache_entry.src->space)
341 {
342 case EVAS_COLORSPACE_ARGB8888:
343 if (im->cache_entry.flags.alpha) return 1;
344 default:
345 break;
346 }
347 return 0;
348}
349
350static void
351evas_engine_sdl_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
352{
353 SDL_Engine_Image_Entry *eim;
354
355 eim = image;
356 if (w) *w = eim->cache_entry.src->w;
357 if (h) *h = eim->cache_entry.src->h;
358}
359
360static int
361evas_engine_sdl_image_colorspace_get(void *data __UNUSED__, void *image)
362{
363 SDL_Engine_Image_Entry *eim = image;
364
365 if (!eim) return EVAS_COLORSPACE_ARGB8888;
366 return eim->cache_entry.src->space;
367}
368
369static void
370evas_engine_sdl_image_colorspace_set(void *data __UNUSED__, void *image, int cspace)
371{
372 SDL_Engine_Image_Entry *eim = image;
373
374 if (!eim) return;
375 if (eim->cache_entry.src->space == cspace) return;
376
377 evas_cache_engine_image_colorspace(&eim->cache_entry, cspace, NULL);
378}
379
380static void*
381evas_engine_sdl_image_new_from_copied_data(void *data,
382 int w, int h,
383 DATA32* image_data,
384 int alpha, int cspace)
385{
386 Render_Engine *re = (Render_Engine*) data;
387
388 return evas_cache_engine_image_copied_data(re->cache, w, h, image_data, alpha, cspace, NULL);
389}
390
391static void*
392evas_engine_sdl_image_new_from_data(void *data, int w, int h, DATA32* image_data, int alpha, int cspace)
393{
394 Render_Engine *re = (Render_Engine*) data;
395
396 return evas_cache_engine_image_data(re->cache, w, h, image_data, alpha, cspace, NULL);
397}
398
399static void
400evas_engine_sdl_image_free(void *data, void *image)
401{
402 SDL_Engine_Image_Entry *eim = image;
403
404 (void) data;
405
406 evas_cache_engine_image_drop(&eim->cache_entry);
407}
408
409static void*
410evas_engine_sdl_image_size_set(void *data, void *image, int w, int h)
411{
412 SDL_Engine_Image_Entry *eim = image;
413
414 (void) data;
415
416 return evas_cache_engine_image_size_set(&eim->cache_entry, w, h);
417}
418
419static void*
420evas_engine_sdl_image_dirty_region(void *data,
421 void *image,
422 int x, int y, int w, int h)
423{
424 SDL_Engine_Image_Entry *eim = image;
425
426 (void) data;
427
428 return evas_cache_engine_image_dirty(&eim->cache_entry, x, y, w, h);
429}
430
431static void*
432evas_engine_sdl_image_data_get(void *data, void *image,
433 int to_write, DATA32** image_data, int *err)
434{
435 SDL_Engine_Image_Entry *eim = image;
436 RGBA_Image *im;
437
438 (void) data;
439
440 if (!eim)
441 {
442 *image_data = NULL;
443 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
444 return NULL;
445 }
446 im = (RGBA_Image *) eim->cache_entry.src;
447
448 switch (eim->cache_entry.src->space)
449 {
450 case EVAS_COLORSPACE_ARGB8888:
451 if (to_write)
452 eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_dirty(&eim->cache_entry, 0, 0, eim->cache_entry.src->w, eim->cache_entry.src->h);
453
454 evas_cache_engine_image_load_data(&eim->cache_entry);
455 *image_data = im->image.data;
456 break;
457 case EVAS_COLORSPACE_YCBCR422P709_PL:
458 case EVAS_COLORSPACE_YCBCR422P601_PL:
459 case EVAS_COLORSPACE_YCBCR422601_PL:
460 *image_data = im->cs.data;
461 break;
462 default:
463 abort();
464 break;
465 }
466 if (err) *err = EVAS_LOAD_ERROR_NONE;
467 return eim;
468}
469
470static void*
471evas_engine_sdl_image_data_put(void *data, void *image, DATA32* image_data)
472{
473 SDL_Engine_Image_Entry *eim = image;
474 Render_Engine *re = data;
475 RGBA_Image *im;
476
477 if (!eim) return NULL;
478 im = (RGBA_Image*) eim->cache_entry.src;
479
480 switch (eim->cache_entry.src->space)
481 {
482 case EVAS_COLORSPACE_ARGB8888:
483 if (image_data != im->image.data)
484 {
485 evas_cache_engine_image_drop(&eim->cache_entry);
486 eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_data(re->cache,
487 eim->cache_entry.w, eim->cache_entry.h,
488 image_data,
489 func.image_alpha_get(data, eim),
490 func.image_colorspace_get(data, eim),
491 NULL);
492 }
493 break;
494 case EVAS_COLORSPACE_YCBCR422P601_PL:
495 case EVAS_COLORSPACE_YCBCR422P709_PL:
496 case EVAS_COLORSPACE_YCBCR422601_PL:
497 if (image_data != im->cs.data)
498 {
499 if (im->cs.data)
500 if (!im->cs.no_free)
501 free(im->cs.data);
502 im->cs.data = image_data;
503 evas_common_image_colorspace_dirty(im);
504 }
505 break;
506 default:
507 abort();
508 break;
509 }
510 return eim;
511}
512
513static void
514evas_engine_sdl_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
515{
516 SDL_Engine_Image_Entry *eim = image;
517 RGBA_Image *im;
518
519 if (!eim) return ;
520 im = (RGBA_Image*) eim->cache_entry.src;
521 if (!im) return ;
522 evas_cache_image_preload_data(&im->cache_entry, target);
523}
524
525static void
526evas_engine_sdl_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
527{
528 SDL_Engine_Image_Entry *eim = image;
529 RGBA_Image *im;
530
531 if (!eim) return ;
532 im = (RGBA_Image*) eim->cache_entry.src;
533 if (!im) return ;
534 evas_cache_image_preload_cancel(&im->cache_entry, target);
535}
536
537static void*
538evas_engine_sdl_image_alpha_set(void *data, void *image, int has_alpha)
539{
540 SDL_Engine_Image_Entry *eim = image;
541 RGBA_Image *im;
542
543 (void) data;
544
545 if (!eim) return NULL;
546
547 im = (RGBA_Image *) eim->cache_entry.src;
548
549 if (eim->cache_entry.src->space != EVAS_COLORSPACE_ARGB8888)
550 {
551 im->cache_entry.flags.alpha = 0;
552 return eim;
553 }
554
555 eim = (SDL_Engine_Image_Entry *) evas_cache_engine_image_dirty(&eim->cache_entry, 0, 0, eim->cache_entry.w, eim->cache_entry.h);
556
557 /* FIXME: update SDL_Surface flags */
558 im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
559 return eim;
560}
561
562static void*
563evas_engine_sdl_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
564{
565 return image;
566}
567
568static void
569evas_engine_sdl_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
570{
571 /* FIXME: need to know what evas expect from this call */
572}
573
574static void
575evas_engine_sdl_image_draw(void *data, void *context, void *surface, void *image,
576 int src_region_x, int src_region_y, int src_region_w, int src_region_h,
577 int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h,
578 int smooth)
579{
580 SDL_Engine_Image_Entry *eim = image;
581 SDL_Engine_Image_Entry *dst = surface;
582 RGBA_Draw_Context *dc = (RGBA_Draw_Context*) context;
583 int mustlock_im = 0;
584 int mustlock_dst = 0;
585
586 (void) data;
587
588 if (eim->cache_entry.src->space == EVAS_COLORSPACE_ARGB8888)
589 evas_cache_engine_image_load_data(&eim->cache_entry);
590
591 /* Fallback to software method */
592 if (SDL_MUSTLOCK(dst->surface))
593 {
594 mustlock_dst = 1;
595 SDL_LockSurface(dst->surface);
596 _SDL_UPDATE_PIXELS(dst);
597 }
598
599 if (eim->surface && SDL_MUSTLOCK(eim->surface))
600 {
601 mustlock_im = 1;
602 SDL_LockSurface(eim->surface);
603 _SDL_UPDATE_PIXELS(eim);
604 }
605
606 evas_common_image_colorspace_normalize((RGBA_Image *) eim->cache_entry.src);
607
608 if (smooth)
609 evas_common_scale_rgba_in_to_out_clip_smooth((RGBA_Image *) eim->cache_entry.src,
610 (RGBA_Image *) dst->cache_entry.src,
611 dc,
612 src_region_x, src_region_y, src_region_w, src_region_h,
613 dst_region_x, dst_region_y, dst_region_w, dst_region_h);
614 else
615 evas_common_scale_rgba_in_to_out_clip_sample((RGBA_Image *) eim->cache_entry.src,
616 (RGBA_Image *) dst->cache_entry.src,
617 dc,
618 src_region_x, src_region_y, src_region_w, src_region_h,
619 dst_region_x, dst_region_y, dst_region_w, dst_region_h);
620 evas_common_cpu_end_opt ();
621
622 if (mustlock_im)
623 SDL_UnlockSurface(eim->surface);
624
625 if (mustlock_dst)
626 SDL_UnlockSurface(dst->surface);
627}
628
629static void
630evas_engine_sdl_image_map_draw(void *data __UNUSED__, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
631{
632 SDL_Engine_Image_Entry *eim = image;
633 SDL_Engine_Image_Entry *dst = surface;
634 int mustlock_im = 0;
635 int mustlock_dst = 0;
636
637 if (!eim || !dst) return;
638
639 if (SDL_MUSTLOCK(dst->surface))
640 {
641 mustlock_dst = 1;
642 SDL_LockSurface(dst->surface);
643 _SDL_UPDATE_PIXELS(dst);
644 }
645
646 if (eim->surface && SDL_MUSTLOCK(eim->surface))
647 {
648 mustlock_im = 1;
649 SDL_LockSurface(eim->surface);
650 _SDL_UPDATE_PIXELS(eim);
651 }
652
653 evas_common_map_rgba((RGBA_Image*) eim->cache_entry.src,
654 (RGBA_Image*) dst->cache_entry.src, context, npoints, p, smooth, level);
655 evas_common_cpu_end_opt();
656
657 if (mustlock_im)
658 SDL_UnlockSurface(eim->surface);
659
660 if (mustlock_dst)
661 SDL_UnlockSurface(dst->surface);
662}
663
664static void *
665evas_engine_sdl_image_map_surface_new(void *data, int w, int h, int alpha)
666{
667 Render_Engine *re = (Render_Engine*) data;
668 void *surface;
669
670 surface = evas_cache_engine_image_copied_data(re->cache,
671 w, h, NULL, alpha,
672 EVAS_COLORSPACE_ARGB8888,
673 NULL);
674 return surface;
675}
676
677static void
678evas_engine_sdl_image_map_surface_free(void *data __UNUSED__, void *surface)
679{
680 evas_cache_engine_image_drop(surface);
681}
682
683static void
684evas_engine_sdl_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
685{
686 SDL_Engine_Image_Entry *eim;
687
688 if (!image) return ;
689 eim = image;
690 eim->cache_entry.src->scale_hint = hint;
691}
692
693static int
694evas_engine_sdl_image_scale_hint_get(void *data __UNUSED__, void *image)
695{
696 SDL_Engine_Image_Entry *eim;
697
698 if (!image) return EVAS_IMAGE_SCALE_HINT_NONE;
699 eim = image;
700 return eim->cache_entry.src->scale_hint;
701}
702
703static void
704evas_engine_sdl_image_cache_flush(void *data)
705{
706 Render_Engine *re = (Render_Engine*) data;
707 int size;
708
709 size = evas_cache_engine_image_get(re->cache);
710 evas_cache_engine_image_set(re->cache, 0);
711 evas_cache_engine_image_set(re->cache, size);
712}
713
714static void
715evas_engine_sdl_image_cache_set(void *data, int bytes)
716{
717 Render_Engine *re = (Render_Engine*) data;
718
719 evas_cache_engine_image_set(re->cache, bytes);
720}
721
722static int
723evas_engine_sdl_image_cache_get(void *data)
724{
725 Render_Engine *re = (Render_Engine*) data;
726
727 return evas_cache_engine_image_get(re->cache);
728}
729
730static char*
731evas_engine_sdl_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
732{
733 SDL_Engine_Image_Entry *eim = image;
734 RGBA_Image *im;
735
736 if (!eim) return NULL;
737 im = (RGBA_Image *) eim->cache_entry.src;
738
739 return im->info.comment;
740}
741
742static char*
743evas_engine_sdl_image_format_get(void *data __UNUSED__, void *image __UNUSED__)
744{
745 /* FIXME: need to know what evas expect from this call */
746 return NULL;
747}
748
749static void
750evas_engine_sdl_font_draw(void *data __UNUSED__, void *context, void *surface, void *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
751{
752 SDL_Engine_Image_Entry *eim = surface;
753 int mustlock_im = 0;
754
755 if (eim->surface && SDL_MUSTLOCK(eim->surface))
756 {
757 mustlock_im = 1;
758 SDL_LockSurface(eim->surface);
759 _SDL_UPDATE_PIXELS(eim);
760 }
761
762 evas_common_font_draw((RGBA_Image *) eim->cache_entry.src, context, font, x, y, intl_props);
763 evas_common_cpu_end_opt();
764
765 if (mustlock_im)
766 SDL_UnlockSurface(eim->surface);
767}
768
769static void
770evas_engine_sdl_line_draw(void *data __UNUSED__, void *context, void *surface, int x1, int y1, int x2, int y2)
771{
772 SDL_Engine_Image_Entry *eim = surface;
773 int mustlock_im = 0;
774
775 if (eim->surface && SDL_MUSTLOCK(eim->surface))
776 {
777 mustlock_im = 1;
778 SDL_LockSurface(eim->surface);
779 _SDL_UPDATE_PIXELS(eim);
780 }
781
782 evas_common_line_draw((RGBA_Image *) eim->cache_entry.src, context, x1, y1, x2, y2);
783 evas_common_cpu_end_opt();
784
785 if (mustlock_im)
786 SDL_UnlockSurface(eim->surface);
787}
788
789static void
790evas_engine_sdl_rectangle_draw(void *data __UNUSED__, void *context, void *surface, int x, int y, int w, int h)
791{
792 SDL_Engine_Image_Entry *eim = surface;
793#if ENGINE_SDL_PRIMITIVE
794 RGBA_Draw_Context *dc = context;
795#endif
796 int mustlock_im = 0;
797
798#if ENGINE_SDL_PRIMITIVE
799 if (A_VAL(&dc->col.col) != 0x00)
800 {
801 if (A_VAL(&dc->col.col) != 0xFF)
802 {
803#endif
804 if (eim->surface && SDL_MUSTLOCK(eim->surface))
805 {
806 mustlock_im = 1;
807 SDL_LockSurface(eim->surface);
808 _SDL_UPDATE_PIXELS(eim);
809 }
810
811 evas_common_rectangle_draw((RGBA_Image *) eim->cache_entry.src, context, x, y, w, h);
812 evas_common_cpu_end_opt();
813
814 if (mustlock_im)
815 SDL_UnlockSurface(eim->surface);
816#if ENGINE_SDL_PRIMITIVE
817 }
818 else
819 {
820 SDL_Rect dstrect;
821
822 if (dc->clip.use)
823 {
824 SDL_Rect cliprect;
825
826 cliprect.x = dc->clip.x;
827 cliprect.y = dc->clip.y;
828 cliprect.w = dc->clip.w;
829 cliprect.h = dc->clip.h;
830
831 SDL_SetClipRect(eim->surface, &cliprect);
832 }
833
834 dstrect.x = x;
835 dstrect.y = y;
836 dstrect.w = w;
837 dstrect.h = h;
838
839 SDL_FillRect(eim->surface, &dstrect, SDL_MapRGBA(eim->surface->format, R_VAL(&dc->col.col), G_VAL(&dc->col.col), B_VAL(&dc->col.col), 0xFF));
840
841 if (dc->clip.use)
842 SDL_SetClipRect(eim->surface, NULL);
843 }
844 }
845#endif
846}
847
848static void
849evas_engine_sdl_polygon_draw(void *data __UNUSED__, void *context, void *surface, void *polygon, int x, int y)
850{
851 SDL_Engine_Image_Entry *eim = surface;
852 int mustlock_im = 0;
853
854 if (eim->surface && SDL_MUSTLOCK(eim->surface))
855 {
856 mustlock_im = 1;
857 SDL_LockSurface(eim->surface);
858 _SDL_UPDATE_PIXELS(eim);
859 }
860
861 evas_common_polygon_draw((RGBA_Image *) eim->cache_entry.src, context, polygon, x, y);
862 evas_common_cpu_end_opt();
863
864 if (mustlock_im)
865 SDL_UnlockSurface(eim->surface);
866}
867
868static int module_open(Evas_Module *em)
869{
870 if (!em) return 0;
871 /* get whatever engine module we inherit from */
872 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
873 _evas_engine_soft_sdl_log_dom = eina_log_domain_register
874 ("evas-software_sdl", EVAS_DEFAULT_LOG_COLOR);
875 if (_evas_engine_soft_sdl_log_dom < 0)
876 {
877 EINA_LOG_ERR("Can not create a module log domain.");
878 return 0;
879 }
880 /* store it for later use */
881 func = pfunc;
882 /* now to override methods */
883#define ORD(f) EVAS_API_OVERRIDE(f, &func, evas_engine_sdl_)
884 ORD(info);
885 ORD(info_free);
886 ORD(setup);
887 ORD(output_free);
888 ORD(output_resize);
889 ORD(output_tile_size_set);
890 ORD(output_redraws_rect_add);
891 ORD(output_redraws_rect_del);
892 ORD(output_redraws_clear);
893 ORD(output_redraws_next_update_get);
894 ORD(output_redraws_next_update_push);
895 ORD(output_flush);
896 ORD(output_idle_flush);
897 ORD(image_load);
898 ORD(image_new_from_data);
899 ORD(image_new_from_copied_data);
900 ORD(image_colorspace_set);
901 ORD(image_colorspace_get);
902 ORD(image_free);
903 ORD(image_size_set);
904 ORD(image_size_get);
905 ORD(image_dirty_region);
906 ORD(image_data_get);
907 ORD(image_data_put);
908 ORD(image_data_preload_request);
909 ORD(image_data_preload_cancel);
910 ORD(image_alpha_set);
911 ORD(image_alpha_get);
912 ORD(image_border_set);
913 ORD(image_border_get);
914 ORD(image_draw);
915 ORD(image_map_draw);
916 ORD(image_map_surface_new);
917 ORD(image_map_surface_free);
918 ORD(image_comment_get);
919 ORD(image_format_get);
920 ORD(image_cache_flush);
921 ORD(image_cache_set);
922 ORD(image_cache_get);
923 ORD(font_draw);
924 ORD(line_draw);
925 ORD(rectangle_draw);
926 ORD(polygon_draw);
927
928 ORD(image_scale_hint_set);
929 ORD(image_scale_hint_get);
930
931 /* now advertise out own api */
932 em->functions = (void *)(&func);
933 return 1;
934}
935
936static void module_close(Evas_Module *em __UNUSED__)
937{
938 eina_log_domain_unregister(_evas_engine_soft_sdl_log_dom);
939}
940
941static Evas_Module_Api evas_modapi =
942{
943 EVAS_MODULE_API_VERSION,
944 "software_sdl",
945 "none",
946 {
947 module_open,
948 module_close
949 }
950};
951
952EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_sdl);
953
954#ifndef EVAS_STATIC_BUILD_SOFTWARE_SDL
955EVAS_EINA_MODULE_DEFINE(engine, software_sdl);
956#endif
957
958/* Private routines. */
959
960static void*
961_sdl_output_setup (int w, int h, int fullscreen, int noframe, int alpha, int hwsurface)
962{
963 Render_Engine *re = calloc(1, sizeof(Render_Engine));
964 SDL_Surface *surface;
965
966 if (!re)
967 return NULL;
968
969 /* if we haven't initialized - init (automatic abort if already done) */
970 evas_common_cpu_init();
971 evas_common_blend_init();
972 evas_common_image_init();
973 evas_common_convert_init();
974 evas_common_scale_init();
975 evas_common_rectangle_init();
976 evas_common_polygon_init();
977 evas_common_line_init();
978 evas_common_font_init();
979 evas_common_draw_init();
980 evas_common_tilebuf_init();
981
982 if (w <= 0) w = 640;
983 if (h <= 0) h = 480;
984
985 re->cache = evas_cache_engine_image_init(&_sdl_cache_engine_image_cb, evas_common_image_cache_get());
986 if (!re->cache)
987 {
988 ERR("Evas_Cache_Engine_Image allocation failed!");
989 free (re);
990 return NULL;
991 }
992
993 re->tb = evas_common_tilebuf_new(w, h);
994 /* in preliminary tests 16x16 gave highest framerates */
995 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
996 surface = SDL_SetVideoMode(w, h, 32,
997 (hwsurface ? SDL_HWSURFACE : SDL_SWSURFACE)
998 | (fullscreen ? SDL_FULLSCREEN : 0)
999 | (noframe ? SDL_NOFRAME : 0)
1000 | (alpha ? SDL_SRCALPHA : 0));
1001
1002 if (!surface)
1003 {
1004 ERR("SDL_SetVideoMode [ %i x %i x 32 ] failed.", w, h);
1005 evas_cache_engine_image_shutdown(re->cache);
1006 free (re);
1007 return NULL;
1008 }
1009
1010 SDL_SetAlpha(surface, SDL_SRCALPHA | SDL_RLEACCEL, 0);
1011
1012 /* We create a "fake" RGBA_Image which points to the SDL surface. Each access
1013 * to that surface is wrapped in Lock / Unlock calls whenever the data is
1014 * manipulated directly. */
1015 re->rgba_engine_image = (SDL_Engine_Image_Entry *) evas_cache_engine_image_engine(re->cache, surface);
1016 if (!re->rgba_engine_image)
1017 {
1018 CRIT("RGBA_Image allocation from SDL failed");
1019 evas_cache_engine_image_shutdown(re->cache);
1020 free (re);
1021 return NULL;
1022 }
1023
1024 SDL_FillRect(surface, NULL, 0);
1025
1026 re->flags.alpha = alpha;
1027 re->flags.hwsurface = hwsurface;
1028 re->flags.fullscreen = fullscreen;
1029 re->flags.noframe = noframe;
1030 return re;
1031}
1032
1033static Engine_Image_Entry*
1034_sdl_image_alloc(void)
1035{
1036 SDL_Engine_Image_Entry *new;
1037
1038 new = calloc(1, sizeof (SDL_Engine_Image_Entry));
1039
1040 return (Engine_Image_Entry *) new;
1041}
1042
1043static void
1044_sdl_image_delete(Engine_Image_Entry *eim)
1045{
1046 free(eim);
1047}
1048
1049static int
1050_sdl_image_constructor(Engine_Image_Entry *ie, void *data __UNUSED__)
1051{
1052 SDL_Surface *sdl = NULL;
1053 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) ie;
1054 RGBA_Image *im;
1055
1056 im = (RGBA_Image *) ie->src;
1057
1058 if (im)
1059 {
1060 evas_cache_image_load_data(&im->cache_entry);
1061
1062 if (im->image.data)
1063 {
1064 /* FIXME: Take care of CSPACE */
1065 sdl = SDL_CreateRGBSurfaceFrom(im->image.data,
1066 ie->w, ie->h,
1067 32, ie->w * 4,
1068 RMASK, GMASK, BMASK, AMASK);
1069 eim->surface = sdl;
1070 eim->flags.engine_surface = 0;
1071 }
1072 }
1073
1074 return EVAS_LOAD_ERROR_NONE;
1075}
1076
1077static void
1078_sdl_image_destructor(Engine_Image_Entry *eie)
1079{
1080 SDL_Engine_Image_Entry *seie = (SDL_Engine_Image_Entry *) eie;
1081
1082 if (seie->surface && !seie->flags.engine_surface)
1083 SDL_FreeSurface(seie->surface);
1084 seie->surface = NULL;
1085}
1086
1087static int
1088_sdl_image_dirty(Engine_Image_Entry *dst, const Engine_Image_Entry *src __UNUSED__)
1089{
1090 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) dst;
1091 SDL_Surface *sdl = NULL;
1092 RGBA_Image *im;
1093
1094 im = (RGBA_Image *) dst->src;
1095
1096 /* FIXME: Take care of CSPACE */
1097 sdl = SDL_CreateRGBSurfaceFrom(im->image.data,
1098 dst->w, dst->h,
1099 32, dst->w * 4,
1100 0xff0000, 0xff00, 0xff, 0xff000000);
1101 eim->surface = sdl;
1102 eim->flags.engine_surface = 0;
1103
1104 return 0;
1105}
1106
1107static int
1108_sdl_image_update_data(Engine_Image_Entry *dst, void* engine_data)
1109{
1110 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) dst;
1111 SDL_Surface *sdl = NULL;
1112 RGBA_Image *im;
1113
1114 im = (RGBA_Image *) dst->src;
1115
1116 if (engine_data)
1117 {
1118 sdl = engine_data;
1119
1120 if (im)
1121 {
1122 im->image.data = sdl->pixels;
1123 im->image.no_free = 1;
1124 im->cache_entry.flags.alpha = 0;
1125 dst->src->w = sdl->w;
1126 dst->src->h = sdl->h;
1127 }
1128 dst->w = sdl->w;
1129 dst->h = sdl->h;
1130 }
1131 else
1132 {
1133 /* FIXME: Take care of CSPACE */
1134 SDL_FreeSurface(eim->surface);
1135 sdl = SDL_CreateRGBSurfaceFrom(im->image.data,
1136 dst->w, dst->h,
1137 32, dst->w * 4,
1138 RMASK, GMASK, BMASK, AMASK);
1139 }
1140
1141 eim->surface = sdl;
1142
1143 return 0;
1144}
1145
1146static int
1147_sdl_image_size_set(Engine_Image_Entry *dst, const Engine_Image_Entry *src __UNUSED__)
1148{
1149 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) dst;
1150 SDL_Surface *sdl;
1151 RGBA_Image *im;
1152
1153 im = (RGBA_Image *) dst->src;
1154
1155 /* FIXME: handle im == NULL */
1156 sdl = SDL_CreateRGBSurfaceFrom(im->image.data,
1157 dst->w, dst->h,
1158 32, dst->w * 4,
1159 RMASK, GMASK, BMASK, AMASK);
1160
1161 eim->surface = sdl;
1162
1163 return 0;
1164}
1165
1166static void
1167_sdl_image_load(Engine_Image_Entry *eim, const Image_Entry *ie_im)
1168{
1169 SDL_Engine_Image_Entry *load = (SDL_Engine_Image_Entry *) eim;
1170 SDL_Surface *sdl;
1171
1172 if (!load->surface)
1173 {
1174 RGBA_Image *im;
1175
1176 im = (RGBA_Image *) ie_im;
1177
1178 sdl = SDL_CreateRGBSurfaceFrom(im->image.data,
1179 eim->w, eim->h,
1180 32, eim->w * 4,
1181 RMASK, GMASK, BMASK, AMASK);
1182 load->surface = sdl;
1183 }
1184}
1185
1186static int
1187_sdl_image_mem_size_get(Engine_Image_Entry *eim)
1188{
1189 SDL_Engine_Image_Entry *seie = (SDL_Engine_Image_Entry *) eim;
1190 int size = 0;
1191
1192 /* FIXME: Count surface size. */
1193 if (seie->surface)
1194 size = sizeof (SDL_Surface) + sizeof (SDL_PixelFormat);
1195
1196 return size;
1197}
1198
1199#ifdef DEBUG_SDL
1200static void
1201_sdl_image_debug(const char* context, Engine_Image_Entry* eie)
1202{
1203 SDL_Engine_Image_Entry *eim = (SDL_Engine_Image_Entry *) eie;
1204
1205 DBG("*** %s image (%p) ***", context, eim);
1206 if (eim)
1207 {
1208 DBG("W: %i, H: %i, R: %i", eim->cache_entry.w, eim->cache_entry.h, eim->cache_entry.references);
1209 if (eim->cache_entry.src)
1210 DBG("Pixels: %p, SDL Surface: %p",((RGBA_Image*) eim->cache_entry.src)->image.data, eim->surface);
1211 if (eim->surface)
1212 DBG("Surface->pixels: %p", eim->surface->pixels);
1213 DBG("Key: %s", eim->cache_entry.cache_key);
1214 DBG("Reference: %i", eim->cache_entry.references);
1215 }
1216 DBG("*** ***");
1217}
1218#endif
diff --git a/libraries/evas/src/modules/engines/software_sdl/evas_engine.h b/libraries/evas/src/modules/engines/software_sdl/evas_engine.h
deleted file mode 100644
index 5133fec..0000000
--- a/libraries/evas/src/modules/engines/software_sdl/evas_engine.h
+++ /dev/null
@@ -1,72 +0,0 @@
1#ifndef EVAS_ENGINE_SDL_H
2#define EVAS_ENGINE_SDL_H
3
4#include "evas_common.h"
5#include "evas_private.h"
6#include "Evas_Engine_SDL.h"
7
8extern int _evas_engine_soft_sdl_log_dom ;
9#ifdef ERR
10# undef ERR
11#endif
12#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft_sdl_log_dom, __VA_ARGS__)
13
14#ifdef DBG
15# undef DBG
16#endif
17#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft_sdl_log_dom, __VA_ARGS__)
18
19#ifdef INF
20# undef INF
21#endif
22#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft_sdl_log_dom, __VA_ARGS__)
23
24#ifdef WRN
25# undef WRN
26#endif
27#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft_sdl_log_dom, __VA_ARGS__)
28
29#ifdef CRIT
30# undef CRIT
31#endif
32#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft_sdl_log_dom, __VA_ARGS__)
33
34typedef struct _SDL_Engine_Image_Entry SDL_Engine_Image_Entry;
35struct _SDL_Engine_Image_Entry
36{
37 Engine_Image_Entry cache_entry;
38
39 SDL_Surface *surface;
40
41 struct
42 {
43 unsigned int engine_surface : 1;
44 } flags;
45};
46
47typedef struct _Render_Engine Render_Engine;
48struct _Render_Engine
49{
50 SDL_Engine_Image_Entry *rgba_engine_image;
51
52 Tilebuf *tb;
53 Tilebuf_Rect *rects;
54 Eina_Inlist *cur_rect;
55
56 Evas_Cache_Engine_Image *cache;
57
58 SDL_Rect *update_rects;
59 int update_rects_count;
60 int update_rects_limit;
61
62 struct
63 {
64 unsigned int fullscreen : 1;
65 unsigned int noframe : 1;
66 unsigned int alpha : 1;
67 unsigned int hwsurface : 1;
68 unsigned int end : 1;
69 } flags;
70};
71
72#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/Evas_Engine_Software_X11.h b/libraries/evas/src/modules/engines/software_x11/Evas_Engine_Software_X11.h
deleted file mode 100644
index e42c10a..0000000
--- a/libraries/evas/src/modules/engines/software_x11/Evas_Engine_Software_X11.h
+++ /dev/null
@@ -1,52 +0,0 @@
1#ifndef _EVAS_ENGINE_SOFTWARE_X11_H
2# define _EVAS_ENGINE_SOFTWARE_X11_H
3
4typedef enum
5{
6 EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB,
7 EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB
8} Evas_Engine_Info_Software_X11_Backend;
9
10typedef struct _Evas_Engine_Info_Software_X11 Evas_Engine_Info_Software_X11;
11
12struct _Evas_Engine_Info_Software_X11
13{
14 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
15 /* at you and make nasty noises */
16 Evas_Engine_Info magic;
17
18 /* engine specific data & parameters it needs to set up */
19 struct
20 {
21 Evas_Engine_Info_Software_X11_Backend backend;
22
23 void *connection, *screen;
24 unsigned int drawable, mask;
25 void *visual;
26 unsigned int colormap;
27 int depth, rotation;
28
29 Eina_Bool alloc_grayscale : 1;
30 Eina_Bool debug : 1;
31 Eina_Bool shape_dither : 1;
32 Eina_Bool destination_alpha : 1;
33 Eina_Bool track_mask_changes : 1;
34
35 int alloc_colors_max;
36 } info;
37
38 /* engine specific function calls to query stuff about the destination */
39 struct
40 {
41 void *(*best_visual_get) (int backend, void *connection, int screen);
42 unsigned int (*best_colormap_get) (int backend, void *connection, int screen);
43 int (*best_depth_get) (int backend, void *connection, int screen);
44 } func;
45
46 unsigned char mask_changed : 1;
47
48 /* non-blocking or blocking mode */
49 Evas_Engine_Render_Mode render_mode;
50};
51
52#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/Makefile.am b/libraries/evas/src/modules/engines/software_x11/Makefile.am
deleted file mode 100644
index 5a2e345..0000000
--- a/libraries/evas/src/modules/engines/software_x11/Makefile.am
+++ /dev/null
@@ -1,85 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4if BUILD_ENGINE_SOFTWARE_X11
5
6SOFTWARE_X11_SOURCES = evas_engine.c
7
8if BUILD_ENGINE_SOFTWARE_XLIB
9
10AM_CPPFLAGS = \
11-I. \
12-I$(top_srcdir)/src/lib \
13-I$(top_srcdir)/src/lib/include \
14-I$(top_srcdir)/src/modules/engines \
15@FREETYPE_CFLAGS@ \
16@PIXMAN_CFLAGS@ \
17@EINA_CFLAGS@ \
18@evas_engine_software_xlib_cflags@
19
20SOFTWARE_X11_SOURCES += \
21evas_xlib_outbuf.c \
22evas_xlib_buffer.c \
23evas_xlib_color.c \
24evas_xlib_main.c
25
26SOFTWARE_X11_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_software_xlib_libs@
27
28endif
29
30if BUILD_ENGINE_SOFTWARE_XCB
31
32AM_CPPFLAGS = \
33-I. \
34-I$(top_srcdir)/src/lib \
35-I$(top_srcdir)/src/lib/include \
36-I$(top_srcdir)/src/modules/engines \
37@FREETYPE_CFLAGS@ \
38@PIXMAN_CFLAGS@ \
39@EINA_CFLAGS@ \
40@evas_engine_software_xcb_cflags@
41
42SOFTWARE_X11_SOURCES += \
43evas_xcb_xdefaults.c \
44evas_xcb_outbuf.c \
45evas_xcb_buffer.c \
46evas_xcb_color.c \
47evas_xcb_main.c
48
49SOFTWARE_X11_LIBADD = @FREETYPE_LIBS@ @PIXMAN_LIBS@ @EINA_LIBS@ @evas_engine_software_xcb_libs@
50
51endif
52
53includes_HEADERS = Evas_Engine_Software_X11.h
54includesdir = $(includedir)/evas-@VMAJ@
55
56if !EVAS_STATIC_BUILD_SOFTWARE_X11
57
58pkgdir = $(libdir)/evas/modules/engines/software_x11/$(MODULE_ARCH)
59pkg_LTLIBRARIES = module.la
60
61module_la_SOURCES = $(SOFTWARE_X11_SOURCES)
62module_la_LIBADD = $(top_builddir)/src/lib/libevas.la $(SOFTWARE_X11_LIBADD)
63module_la_LDFLAGS = -no-undefined -module -avoid-version
64module_la_LIBTOOLFLAGS = --tag=disable-static
65
66else
67
68noinst_LTLIBRARIES = libevas_engine_software_x11.la
69
70libevas_engine_software_x11_la_SOURCES = $(SOFTWARE_X11_SOURCES)
71libevas_engine_software_x11_la_LIBADD = $(SOFTWARE_X11_LIBADD)
72
73endif
74endif
75
76EXTRA_DIST = \
77evas_engine.h \
78evas_xlib_outbuf.h \
79evas_xlib_buffer.h \
80evas_xlib_color.h \
81evas_xcb_outbuf.h \
82evas_xcb_buffer.h \
83evas_xcb_color.h \
84evas_xcb_xdefaults.h
85
diff --git a/libraries/evas/src/modules/engines/software_x11/Makefile.in b/libraries/evas/src/modules/engines/software_x11/Makefile.in
deleted file mode 100644
index caab918..0000000
--- a/libraries/evas/src/modules/engines/software_x11/Makefile.in
+++ /dev/null
@@ -1,952 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@am__append_1 = \
39@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@evas_xlib_outbuf.c \
40@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@evas_xlib_buffer.c \
41@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@evas_xlib_color.c \
42@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@evas_xlib_main.c
43
44@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@am__append_2 = \
45@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@evas_xcb_xdefaults.c \
46@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@evas_xcb_outbuf.c \
47@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@evas_xcb_buffer.c \
48@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@evas_xcb_color.c \
49@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@evas_xcb_main.c
50
51subdir = src/modules/engines/software_x11
52DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
53 $(srcdir)/Makefile.in
54ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
55am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
56 $(top_srcdir)/m4/efl_coverage.m4 \
57 $(top_srcdir)/m4/efl_doxygen.m4 \
58 $(top_srcdir)/m4/efl_fnmatch.m4 \
59 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
60 $(top_srcdir)/m4/evas_check_engine.m4 \
61 $(top_srcdir)/m4/evas_check_loader.m4 \
62 $(top_srcdir)/m4/evas_converter.m4 \
63 $(top_srcdir)/m4/evas_dither.m4 \
64 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
65 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
66 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
67 $(top_srcdir)/configure.ac
68am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
69 $(ACLOCAL_M4)
70mkinstalldirs = $(install_sh) -d
71CONFIG_HEADER = $(top_builddir)/config.h
72CONFIG_CLEAN_FILES =
73CONFIG_CLEAN_VPATH_FILES =
74am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
75am__vpath_adj = case $$p in \
76 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
77 *) f=$$p;; \
78 esac;
79am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
80am__install_max = 40
81am__nobase_strip_setup = \
82 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
83am__nobase_strip = \
84 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
85am__nobase_list = $(am__nobase_strip_setup); \
86 for p in $$list; do echo "$$p $$p"; done | \
87 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
88 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
89 if (++n[$$2] == $(am__install_max)) \
90 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
91 END { for (dir in files) print dir, files[dir] }'
92am__base_list = \
93 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
94 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
95am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
96LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
97am__DEPENDENCIES_1 =
98@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@libevas_engine_software_x11_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
99am__libevas_engine_software_x11_la_SOURCES_DIST = evas_engine.c \
100 evas_xlib_outbuf.c evas_xlib_buffer.c evas_xlib_color.c \
101 evas_xlib_main.c evas_xcb_xdefaults.c evas_xcb_outbuf.c \
102 evas_xcb_buffer.c evas_xcb_color.c evas_xcb_main.c
103@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@am__objects_1 = evas_xlib_outbuf.lo \
104@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@ evas_xlib_buffer.lo \
105@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@ evas_xlib_color.lo \
106@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@ evas_xlib_main.lo
107@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@am__objects_2 = evas_xcb_xdefaults.lo \
108@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ evas_xcb_outbuf.lo \
109@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ evas_xcb_buffer.lo \
110@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ evas_xcb_color.lo \
111@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ evas_xcb_main.lo
112@BUILD_ENGINE_SOFTWARE_X11_TRUE@am__objects_3 = evas_engine.lo \
113@BUILD_ENGINE_SOFTWARE_X11_TRUE@ $(am__objects_1) \
114@BUILD_ENGINE_SOFTWARE_X11_TRUE@ $(am__objects_2)
115@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am_libevas_engine_software_x11_la_OBJECTS = $(am__objects_3)
116libevas_engine_software_x11_la_OBJECTS = \
117 $(am_libevas_engine_software_x11_la_OBJECTS)
118AM_V_lt = $(am__v_lt_$(V))
119am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
120am__v_lt_0 = --silent
121@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@am_libevas_engine_software_x11_la_rpath =
122@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la \
123@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@ $(am__DEPENDENCIES_1)
124am__module_la_SOURCES_DIST = evas_engine.c evas_xlib_outbuf.c \
125 evas_xlib_buffer.c evas_xlib_color.c evas_xlib_main.c \
126 evas_xcb_xdefaults.c evas_xcb_outbuf.c evas_xcb_buffer.c \
127 evas_xcb_color.c evas_xcb_main.c
128@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@am__objects_4 = module_la-evas_xlib_outbuf.lo \
129@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@ module_la-evas_xlib_buffer.lo \
130@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@ module_la-evas_xlib_color.lo \
131@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@ module_la-evas_xlib_main.lo
132@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@am__objects_5 = module_la-evas_xcb_xdefaults.lo \
133@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ module_la-evas_xcb_outbuf.lo \
134@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ module_la-evas_xcb_buffer.lo \
135@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ module_la-evas_xcb_color.lo \
136@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@ module_la-evas_xcb_main.lo
137@BUILD_ENGINE_SOFTWARE_X11_TRUE@am__objects_6 = \
138@BUILD_ENGINE_SOFTWARE_X11_TRUE@ module_la-evas_engine.lo \
139@BUILD_ENGINE_SOFTWARE_X11_TRUE@ $(am__objects_4) \
140@BUILD_ENGINE_SOFTWARE_X11_TRUE@ $(am__objects_5)
141@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@am_module_la_OBJECTS = $(am__objects_6)
142module_la_OBJECTS = $(am_module_la_OBJECTS)
143module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
144 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
145 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
146@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@am_module_la_rpath = -rpath \
147@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@ $(pkgdir)
148DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
149depcomp = $(SHELL) $(top_srcdir)/depcomp
150am__depfiles_maybe = depfiles
151am__mv = mv -f
152COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
153 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
154LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
155 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
156 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
157 $(AM_CFLAGS) $(CFLAGS)
158AM_V_CC = $(am__v_CC_$(V))
159am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
160am__v_CC_0 = @echo " CC " $@;
161AM_V_at = $(am__v_at_$(V))
162am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
163am__v_at_0 = @
164CCLD = $(CC)
165LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
166 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
167 $(AM_LDFLAGS) $(LDFLAGS) -o $@
168AM_V_CCLD = $(am__v_CCLD_$(V))
169am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
170am__v_CCLD_0 = @echo " CCLD " $@;
171AM_V_GEN = $(am__v_GEN_$(V))
172am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
173am__v_GEN_0 = @echo " GEN " $@;
174SOURCES = $(libevas_engine_software_x11_la_SOURCES) \
175 $(module_la_SOURCES)
176DIST_SOURCES = $(am__libevas_engine_software_x11_la_SOURCES_DIST) \
177 $(am__module_la_SOURCES_DIST)
178am__includes_HEADERS_DIST = Evas_Engine_Software_X11.h
179HEADERS = $(includes_HEADERS)
180ETAGS = etags
181CTAGS = ctags
182DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
183ACLOCAL = @ACLOCAL@
184ALLOCA = @ALLOCA@
185AMTAR = @AMTAR@
186AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
187AR = @AR@
188AS = @AS@
189AUTOCONF = @AUTOCONF@
190AUTOHEADER = @AUTOHEADER@
191AUTOMAKE = @AUTOMAKE@
192AWK = @AWK@
193CC = @CC@
194CCDEPMODE = @CCDEPMODE@
195CFLAGS = @CFLAGS@
196CHECK_CFLAGS = @CHECK_CFLAGS@
197CHECK_LIBS = @CHECK_LIBS@
198CPP = @CPP@
199CPPFLAGS = @CPPFLAGS@
200CXX = @CXX@
201CXXCPP = @CXXCPP@
202CXXDEPMODE = @CXXDEPMODE@
203CXXFLAGS = @CXXFLAGS@
204CYGPATH_W = @CYGPATH_W@
205DEFS = @DEFS@
206DEPDIR = @DEPDIR@
207DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
208DIRECTFB_LIBS = @DIRECTFB_LIBS@
209DLLTOOL = @DLLTOOL@
210DSYMUTIL = @DSYMUTIL@
211DUMPBIN = @DUMPBIN@
212ECHO_C = @ECHO_C@
213ECHO_N = @ECHO_N@
214ECHO_T = @ECHO_T@
215ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
216ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
217EDB_CFLAGS = @EDB_CFLAGS@
218EDB_LIBS = @EDB_LIBS@
219EDJE_CFLAGS = @EDJE_CFLAGS@
220EDJE_LIBS = @EDJE_LIBS@
221EET_CFLAGS = @EET_CFLAGS@
222EET_LIBS = @EET_LIBS@
223EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
224EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
225EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
226EGREP = @EGREP@
227EINA_CFLAGS = @EINA_CFLAGS@
228EINA_LIBS = @EINA_LIBS@
229EVAS_CFLAGS = @EVAS_CFLAGS@
230EVAS_LIBS = @EVAS_LIBS@
231EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
232EVIL_CFLAGS = @EVIL_CFLAGS@
233EVIL_LIBS = @EVIL_LIBS@
234EXEEXT = @EXEEXT@
235EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
236EXOTIC_LIBS = @EXOTIC_LIBS@
237FGREP = @FGREP@
238FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
239FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
240FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
241FREETYPE_LIBS = @FREETYPE_LIBS@
242FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
243FRIBIDI_LIBS = @FRIBIDI_LIBS@
244GL_EET_CFLAGS = @GL_EET_CFLAGS@
245GL_EET_LIBS = @GL_EET_LIBS@
246GREP = @GREP@
247HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
248HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
249INSTALL = @INSTALL@
250INSTALL_DATA = @INSTALL_DATA@
251INSTALL_PROGRAM = @INSTALL_PROGRAM@
252INSTALL_SCRIPT = @INSTALL_SCRIPT@
253INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
254LD = @LD@
255LDFLAGS = @LDFLAGS@
256LIBOBJS = @LIBOBJS@
257LIBS = @LIBS@
258LIBTOOL = @LIBTOOL@
259LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
260LINEBREAK_LIBS = @LINEBREAK_LIBS@
261LIPO = @LIPO@
262LN_S = @LN_S@
263LTLIBOBJS = @LTLIBOBJS@
264MAKEINFO = @MAKEINFO@
265MKDIR_P = @MKDIR_P@
266MODULE_ARCH = @MODULE_ARCH@
267NM = @NM@
268NMEDIT = @NMEDIT@
269OBJC = @OBJC@
270OBJCDEPMODE = @OBJCDEPMODE@
271OBJCFLAGS = @OBJCFLAGS@
272OBJDUMP = @OBJDUMP@
273OBJEXT = @OBJEXT@
274OTOOL = @OTOOL@
275OTOOL64 = @OTOOL64@
276PACKAGE = @PACKAGE@
277PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
278PACKAGE_NAME = @PACKAGE_NAME@
279PACKAGE_STRING = @PACKAGE_STRING@
280PACKAGE_TARNAME = @PACKAGE_TARNAME@
281PACKAGE_URL = @PACKAGE_URL@
282PACKAGE_VERSION = @PACKAGE_VERSION@
283PATH_SEPARATOR = @PATH_SEPARATOR@
284PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
285PIXMAN_LIBS = @PIXMAN_LIBS@
286PKG_CONFIG = @PKG_CONFIG@
287PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
288PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
289PNG_CFLAGS = @PNG_CFLAGS@
290PNG_LIBS = @PNG_LIBS@
291RANLIB = @RANLIB@
292SDL_CFLAGS = @SDL_CFLAGS@
293SDL_LIBS = @SDL_LIBS@
294SED = @SED@
295SET_MAKE = @SET_MAKE@
296SHELL = @SHELL@
297SHM_OPEN_LINK = @SHM_OPEN_LINK@
298STRIP = @STRIP@
299SVG_CFLAGS = @SVG_CFLAGS@
300SVG_LIBS = @SVG_LIBS@
301VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
302VALGRIND_LIBS = @VALGRIND_LIBS@
303VERSION = @VERSION@
304VMAJ = @VMAJ@
305WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
306WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
307XCB_CFLAGS = @XCB_CFLAGS@
308XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
309XCB_GL_LIBS = @XCB_GL_LIBS@
310XCB_LIBS = @XCB_LIBS@
311XEXT_CFLAGS = @XEXT_CFLAGS@
312XEXT_LIBS = @XEXT_LIBS@
313XMKMF = @XMKMF@
314X_CFLAGS = @X_CFLAGS@
315X_EXTRA_LIBS = @X_EXTRA_LIBS@
316X_LIBS = @X_LIBS@
317X_PRE_LIBS = @X_PRE_LIBS@
318abs_builddir = @abs_builddir@
319abs_srcdir = @abs_srcdir@
320abs_top_builddir = @abs_top_builddir@
321abs_top_srcdir = @abs_top_srcdir@
322ac_ct_CC = @ac_ct_CC@
323ac_ct_CXX = @ac_ct_CXX@
324ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
325ac_ct_OBJC = @ac_ct_OBJC@
326altivec_cflags = @altivec_cflags@
327am__include = @am__include@
328am__leading_dot = @am__leading_dot@
329am__quote = @am__quote@
330am__tar = @am__tar@
331am__untar = @am__untar@
332bindir = @bindir@
333build = @build@
334build_alias = @build_alias@
335build_cpu = @build_cpu@
336build_os = @build_os@
337build_vendor = @build_vendor@
338builddir = @builddir@
339datadir = @datadir@
340datarootdir = @datarootdir@
341dlopen_libs = @dlopen_libs@
342docdir = @docdir@
343dvidir = @dvidir@
344edje_cc = @edje_cc@
345efl_doxygen = @efl_doxygen@
346efl_have_doxygen = @efl_have_doxygen@
347evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
348evas_engine_buffer_libs = @evas_engine_buffer_libs@
349evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
350evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
351evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
352evas_engine_directfb_libs = @evas_engine_directfb_libs@
353evas_engine_fb_cflags = @evas_engine_fb_cflags@
354evas_engine_fb_libs = @evas_engine_fb_libs@
355evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
356evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
357evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
358evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
359evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
360evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
361evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
362evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
363evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
364evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
365evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
366evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
367evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
368evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
369evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
370evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
371evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
372evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
373evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
374evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
375evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
376evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
377evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
378evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
379evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
380evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
381evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
382evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
383evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
384evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
385evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
386evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
387evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
388evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
389evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
390evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
391evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
392evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
393evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
394evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
395evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
396evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
397evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
398evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
399evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
400evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
401evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
402evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
403evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
404evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
405evas_image_loader_png_libs = @evas_image_loader_png_libs@
406evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
407evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
408evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
409evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
410evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
411evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
412evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
413evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
414evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
415evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
416evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
417evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
418exec_prefix = @exec_prefix@
419have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
420have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
421have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
422have_evas_engine_software_x11 = @have_evas_engine_software_x11@
423have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
424have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
425have_lcov = @have_lcov@
426host = @host@
427host_alias = @host_alias@
428host_cpu = @host_cpu@
429host_os = @host_os@
430host_vendor = @host_vendor@
431htmldir = @htmldir@
432includedir = @includedir@
433infodir = @infodir@
434install_sh = @install_sh@
435libdir = @libdir@
436libexecdir = @libexecdir@
437localedir = @localedir@
438localstatedir = @localstatedir@
439lt_ECHO = @lt_ECHO@
440lt_enable_auto_import = @lt_enable_auto_import@
441mandir = @mandir@
442mkdir_p = @mkdir_p@
443oldincludedir = @oldincludedir@
444pdfdir = @pdfdir@
445pkgconfig_requires_private = @pkgconfig_requires_private@
446prefix = @prefix@
447program_transform_name = @program_transform_name@
448psdir = @psdir@
449pthread_cflags = @pthread_cflags@
450pthread_libs = @pthread_libs@
451release_info = @release_info@
452requirement_evas = @requirement_evas@
453sbindir = @sbindir@
454sharedstatedir = @sharedstatedir@
455srcdir = @srcdir@
456sysconfdir = @sysconfdir@
457target_alias = @target_alias@
458top_build_prefix = @top_build_prefix@
459top_builddir = @top_builddir@
460top_srcdir = @top_srcdir@
461version_info = @version_info@
462MAINTAINERCLEANFILES = Makefile.in
463@BUILD_ENGINE_SOFTWARE_X11_TRUE@SOFTWARE_X11_SOURCES = evas_engine.c \
464@BUILD_ENGINE_SOFTWARE_X11_TRUE@ $(am__append_1) \
465@BUILD_ENGINE_SOFTWARE_X11_TRUE@ $(am__append_2)
466@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@AM_CPPFLAGS = \
467@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@-I. \
468@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@-I$(top_srcdir)/src/lib \
469@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@-I$(top_srcdir)/src/lib/include \
470@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@-I$(top_srcdir)/src/modules/engines \
471@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@@FREETYPE_CFLAGS@ \
472@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@@PIXMAN_CFLAGS@ \
473@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@@EINA_CFLAGS@ \
474@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@@evas_engine_software_xcb_cflags@
475
476@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@AM_CPPFLAGS = \
477@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@-I. \
478@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@-I$(top_srcdir)/src/lib \
479@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@-I$(top_srcdir)/src/lib/include \
480@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@-I$(top_srcdir)/src/modules/engines \
481@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@@FREETYPE_CFLAGS@ \
482@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@@PIXMAN_CFLAGS@ \
483@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@@EINA_CFLAGS@ \
484@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@@evas_engine_software_xlib_cflags@
485
486@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XCB_TRUE@SOFTWARE_X11_LIBADD = @FREETYPE_LIBS@ @PIXMAN_LIBS@ @EINA_LIBS@ @evas_engine_software_xcb_libs@
487@BUILD_ENGINE_SOFTWARE_X11_TRUE@@BUILD_ENGINE_SOFTWARE_XLIB_TRUE@SOFTWARE_X11_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_software_xlib_libs@
488@BUILD_ENGINE_SOFTWARE_X11_TRUE@includes_HEADERS = Evas_Engine_Software_X11.h
489@BUILD_ENGINE_SOFTWARE_X11_TRUE@includesdir = $(includedir)/evas-@VMAJ@
490@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_x11/$(MODULE_ARCH)
491@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@pkg_LTLIBRARIES = module.la
492@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@module_la_SOURCES = $(SOFTWARE_X11_SOURCES)
493@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@module_la_LIBADD = $(top_builddir)/src/lib/libevas.la $(SOFTWARE_X11_LIBADD)
494@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
495@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
496@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@noinst_LTLIBRARIES = libevas_engine_software_x11.la
497@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@libevas_engine_software_x11_la_SOURCES = $(SOFTWARE_X11_SOURCES)
498@BUILD_ENGINE_SOFTWARE_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_X11_TRUE@libevas_engine_software_x11_la_LIBADD = $(SOFTWARE_X11_LIBADD)
499EXTRA_DIST = \
500evas_engine.h \
501evas_xlib_outbuf.h \
502evas_xlib_buffer.h \
503evas_xlib_color.h \
504evas_xcb_outbuf.h \
505evas_xcb_buffer.h \
506evas_xcb_color.h \
507evas_xcb_xdefaults.h
508
509all: all-am
510
511.SUFFIXES:
512.SUFFIXES: .c .lo .o .obj
513$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
514 @for dep in $?; do \
515 case '$(am__configure_deps)' in \
516 *$$dep*) \
517 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
518 && { if test -f $@; then exit 0; else break; fi; }; \
519 exit 1;; \
520 esac; \
521 done; \
522 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_x11/Makefile'; \
523 $(am__cd) $(top_srcdir) && \
524 $(AUTOMAKE) --gnu src/modules/engines/software_x11/Makefile
525.PRECIOUS: Makefile
526Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
527 @case '$?' in \
528 *config.status*) \
529 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
530 *) \
531 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
532 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
533 esac;
534
535$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
536 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
537
538$(top_srcdir)/configure: $(am__configure_deps)
539 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
540$(ACLOCAL_M4): $(am__aclocal_m4_deps)
541 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
542$(am__aclocal_m4_deps):
543
544clean-noinstLTLIBRARIES:
545 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
546 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
547 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
548 test "$$dir" != "$$p" || dir=.; \
549 echo "rm -f \"$${dir}/so_locations\""; \
550 rm -f "$${dir}/so_locations"; \
551 done
552install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
553 @$(NORMAL_INSTALL)
554 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
555 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
556 list2=; for p in $$list; do \
557 if test -f $$p; then \
558 list2="$$list2 $$p"; \
559 else :; fi; \
560 done; \
561 test -z "$$list2" || { \
562 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
563 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
564 }
565
566uninstall-pkgLTLIBRARIES:
567 @$(NORMAL_UNINSTALL)
568 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
569 for p in $$list; do \
570 $(am__strip_dir) \
571 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
572 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
573 done
574
575clean-pkgLTLIBRARIES:
576 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
577 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
578 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
579 test "$$dir" != "$$p" || dir=.; \
580 echo "rm -f \"$${dir}/so_locations\""; \
581 rm -f "$${dir}/so_locations"; \
582 done
583libevas_engine_software_x11.la: $(libevas_engine_software_x11_la_OBJECTS) $(libevas_engine_software_x11_la_DEPENDENCIES)
584 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_x11_la_rpath) $(libevas_engine_software_x11_la_OBJECTS) $(libevas_engine_software_x11_la_LIBADD) $(LIBS)
585module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
586 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
587
588mostlyclean-compile:
589 -rm -f *.$(OBJEXT)
590
591distclean-compile:
592 -rm -f *.tab.c
593
594@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
595@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xcb_buffer.Plo@am__quote@
596@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xcb_color.Plo@am__quote@
597@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xcb_main.Plo@am__quote@
598@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xcb_outbuf.Plo@am__quote@
599@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xcb_xdefaults.Plo@am__quote@
600@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xlib_buffer.Plo@am__quote@
601@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xlib_color.Plo@am__quote@
602@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xlib_main.Plo@am__quote@
603@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_xlib_outbuf.Plo@am__quote@
604@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
605@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xcb_buffer.Plo@am__quote@
606@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xcb_color.Plo@am__quote@
607@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xcb_main.Plo@am__quote@
608@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xcb_outbuf.Plo@am__quote@
609@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xcb_xdefaults.Plo@am__quote@
610@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xlib_buffer.Plo@am__quote@
611@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xlib_color.Plo@am__quote@
612@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xlib_main.Plo@am__quote@
613@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_xlib_outbuf.Plo@am__quote@
614
615.c.o:
616@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
617@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
618@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
619@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
620@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
621@am__fastdepCC_FALSE@ $(COMPILE) -c $<
622
623.c.obj:
624@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
625@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
626@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
627@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
628@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
629@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
630
631.c.lo:
632@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
633@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
634@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
635@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
636@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
637@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
638
639module_la-evas_engine.lo: evas_engine.c
640@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
641@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
642@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
643@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
644@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
645@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
646
647module_la-evas_xlib_outbuf.lo: evas_xlib_outbuf.c
648@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xlib_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xlib_outbuf.Tpo -c -o module_la-evas_xlib_outbuf.lo `test -f 'evas_xlib_outbuf.c' || echo '$(srcdir)/'`evas_xlib_outbuf.c
649@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xlib_outbuf.Tpo $(DEPDIR)/module_la-evas_xlib_outbuf.Plo
650@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
651@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xlib_outbuf.c' object='module_la-evas_xlib_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
652@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
653@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xlib_outbuf.lo `test -f 'evas_xlib_outbuf.c' || echo '$(srcdir)/'`evas_xlib_outbuf.c
654
655module_la-evas_xlib_buffer.lo: evas_xlib_buffer.c
656@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xlib_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xlib_buffer.Tpo -c -o module_la-evas_xlib_buffer.lo `test -f 'evas_xlib_buffer.c' || echo '$(srcdir)/'`evas_xlib_buffer.c
657@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xlib_buffer.Tpo $(DEPDIR)/module_la-evas_xlib_buffer.Plo
658@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
659@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xlib_buffer.c' object='module_la-evas_xlib_buffer.lo' libtool=yes @AMDEPBACKSLASH@
660@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
661@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xlib_buffer.lo `test -f 'evas_xlib_buffer.c' || echo '$(srcdir)/'`evas_xlib_buffer.c
662
663module_la-evas_xlib_color.lo: evas_xlib_color.c
664@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xlib_color.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xlib_color.Tpo -c -o module_la-evas_xlib_color.lo `test -f 'evas_xlib_color.c' || echo '$(srcdir)/'`evas_xlib_color.c
665@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xlib_color.Tpo $(DEPDIR)/module_la-evas_xlib_color.Plo
666@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
667@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xlib_color.c' object='module_la-evas_xlib_color.lo' libtool=yes @AMDEPBACKSLASH@
668@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
669@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xlib_color.lo `test -f 'evas_xlib_color.c' || echo '$(srcdir)/'`evas_xlib_color.c
670
671module_la-evas_xlib_main.lo: evas_xlib_main.c
672@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xlib_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xlib_main.Tpo -c -o module_la-evas_xlib_main.lo `test -f 'evas_xlib_main.c' || echo '$(srcdir)/'`evas_xlib_main.c
673@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xlib_main.Tpo $(DEPDIR)/module_la-evas_xlib_main.Plo
674@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
675@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xlib_main.c' object='module_la-evas_xlib_main.lo' libtool=yes @AMDEPBACKSLASH@
676@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
677@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xlib_main.lo `test -f 'evas_xlib_main.c' || echo '$(srcdir)/'`evas_xlib_main.c
678
679module_la-evas_xcb_xdefaults.lo: evas_xcb_xdefaults.c
680@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xcb_xdefaults.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xcb_xdefaults.Tpo -c -o module_la-evas_xcb_xdefaults.lo `test -f 'evas_xcb_xdefaults.c' || echo '$(srcdir)/'`evas_xcb_xdefaults.c
681@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xcb_xdefaults.Tpo $(DEPDIR)/module_la-evas_xcb_xdefaults.Plo
682@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
683@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xcb_xdefaults.c' object='module_la-evas_xcb_xdefaults.lo' libtool=yes @AMDEPBACKSLASH@
684@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
685@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xcb_xdefaults.lo `test -f 'evas_xcb_xdefaults.c' || echo '$(srcdir)/'`evas_xcb_xdefaults.c
686
687module_la-evas_xcb_outbuf.lo: evas_xcb_outbuf.c
688@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xcb_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xcb_outbuf.Tpo -c -o module_la-evas_xcb_outbuf.lo `test -f 'evas_xcb_outbuf.c' || echo '$(srcdir)/'`evas_xcb_outbuf.c
689@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xcb_outbuf.Tpo $(DEPDIR)/module_la-evas_xcb_outbuf.Plo
690@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
691@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xcb_outbuf.c' object='module_la-evas_xcb_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
692@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
693@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xcb_outbuf.lo `test -f 'evas_xcb_outbuf.c' || echo '$(srcdir)/'`evas_xcb_outbuf.c
694
695module_la-evas_xcb_buffer.lo: evas_xcb_buffer.c
696@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xcb_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xcb_buffer.Tpo -c -o module_la-evas_xcb_buffer.lo `test -f 'evas_xcb_buffer.c' || echo '$(srcdir)/'`evas_xcb_buffer.c
697@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xcb_buffer.Tpo $(DEPDIR)/module_la-evas_xcb_buffer.Plo
698@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
699@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xcb_buffer.c' object='module_la-evas_xcb_buffer.lo' libtool=yes @AMDEPBACKSLASH@
700@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
701@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xcb_buffer.lo `test -f 'evas_xcb_buffer.c' || echo '$(srcdir)/'`evas_xcb_buffer.c
702
703module_la-evas_xcb_color.lo: evas_xcb_color.c
704@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xcb_color.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xcb_color.Tpo -c -o module_la-evas_xcb_color.lo `test -f 'evas_xcb_color.c' || echo '$(srcdir)/'`evas_xcb_color.c
705@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xcb_color.Tpo $(DEPDIR)/module_la-evas_xcb_color.Plo
706@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
707@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xcb_color.c' object='module_la-evas_xcb_color.lo' libtool=yes @AMDEPBACKSLASH@
708@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
709@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xcb_color.lo `test -f 'evas_xcb_color.c' || echo '$(srcdir)/'`evas_xcb_color.c
710
711module_la-evas_xcb_main.lo: evas_xcb_main.c
712@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_xcb_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_xcb_main.Tpo -c -o module_la-evas_xcb_main.lo `test -f 'evas_xcb_main.c' || echo '$(srcdir)/'`evas_xcb_main.c
713@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_xcb_main.Tpo $(DEPDIR)/module_la-evas_xcb_main.Plo
714@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
715@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_xcb_main.c' object='module_la-evas_xcb_main.lo' libtool=yes @AMDEPBACKSLASH@
716@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
717@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_xcb_main.lo `test -f 'evas_xcb_main.c' || echo '$(srcdir)/'`evas_xcb_main.c
718
719mostlyclean-libtool:
720 -rm -f *.lo
721
722clean-libtool:
723 -rm -rf .libs _libs
724install-includesHEADERS: $(includes_HEADERS)
725 @$(NORMAL_INSTALL)
726 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
727 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
728 for p in $$list; do \
729 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
730 echo "$$d$$p"; \
731 done | $(am__base_list) | \
732 while read files; do \
733 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
734 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
735 done
736
737uninstall-includesHEADERS:
738 @$(NORMAL_UNINSTALL)
739 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
740 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
741 test -n "$$files" || exit 0; \
742 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
743 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
744
745ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
746 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
747 unique=`for i in $$list; do \
748 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
749 done | \
750 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
751 END { if (nonempty) { for (i in files) print i; }; }'`; \
752 mkid -fID $$unique
753tags: TAGS
754
755TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
756 $(TAGS_FILES) $(LISP)
757 set x; \
758 here=`pwd`; \
759 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
760 unique=`for i in $$list; do \
761 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
762 done | \
763 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
764 END { if (nonempty) { for (i in files) print i; }; }'`; \
765 shift; \
766 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
767 test -n "$$unique" || unique=$$empty_fix; \
768 if test $$# -gt 0; then \
769 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
770 "$$@" $$unique; \
771 else \
772 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
773 $$unique; \
774 fi; \
775 fi
776ctags: CTAGS
777CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
778 $(TAGS_FILES) $(LISP)
779 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
780 unique=`for i in $$list; do \
781 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
782 done | \
783 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
784 END { if (nonempty) { for (i in files) print i; }; }'`; \
785 test -z "$(CTAGS_ARGS)$$unique" \
786 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
787 $$unique
788
789GTAGS:
790 here=`$(am__cd) $(top_builddir) && pwd` \
791 && $(am__cd) $(top_srcdir) \
792 && gtags -i $(GTAGS_ARGS) "$$here"
793
794distclean-tags:
795 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
796
797distdir: $(DISTFILES)
798 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
799 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
800 list='$(DISTFILES)'; \
801 dist_files=`for file in $$list; do echo $$file; done | \
802 sed -e "s|^$$srcdirstrip/||;t" \
803 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
804 case $$dist_files in \
805 */*) $(MKDIR_P) `echo "$$dist_files" | \
806 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
807 sort -u` ;; \
808 esac; \
809 for file in $$dist_files; do \
810 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
811 if test -d $$d/$$file; then \
812 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
813 if test -d "$(distdir)/$$file"; then \
814 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
815 fi; \
816 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
817 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
818 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
819 fi; \
820 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
821 else \
822 test -f "$(distdir)/$$file" \
823 || cp -p $$d/$$file "$(distdir)/$$file" \
824 || exit 1; \
825 fi; \
826 done
827check-am: all-am
828check: check-am
829all-am: Makefile $(LTLIBRARIES) $(HEADERS)
830installdirs:
831 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
832 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
833 done
834install: install-am
835install-exec: install-exec-am
836install-data: install-data-am
837uninstall: uninstall-am
838
839install-am: all-am
840 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
841
842installcheck: installcheck-am
843install-strip:
844 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
845 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
846 `test -z '$(STRIP)' || \
847 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
848mostlyclean-generic:
849
850clean-generic:
851
852distclean-generic:
853 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
854 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
855
856maintainer-clean-generic:
857 @echo "This command is intended for maintainers to use"
858 @echo "it deletes files that may require special tools to rebuild."
859 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
860clean: clean-am
861
862clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
863 clean-pkgLTLIBRARIES mostlyclean-am
864
865distclean: distclean-am
866 -rm -rf ./$(DEPDIR)
867 -rm -f Makefile
868distclean-am: clean-am distclean-compile distclean-generic \
869 distclean-tags
870
871dvi: dvi-am
872
873dvi-am:
874
875html: html-am
876
877html-am:
878
879info: info-am
880
881info-am:
882
883install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
884
885install-dvi: install-dvi-am
886
887install-dvi-am:
888
889install-exec-am:
890
891install-html: install-html-am
892
893install-html-am:
894
895install-info: install-info-am
896
897install-info-am:
898
899install-man:
900
901install-pdf: install-pdf-am
902
903install-pdf-am:
904
905install-ps: install-ps-am
906
907install-ps-am:
908
909installcheck-am:
910
911maintainer-clean: maintainer-clean-am
912 -rm -rf ./$(DEPDIR)
913 -rm -f Makefile
914maintainer-clean-am: distclean-am maintainer-clean-generic
915
916mostlyclean: mostlyclean-am
917
918mostlyclean-am: mostlyclean-compile mostlyclean-generic \
919 mostlyclean-libtool
920
921pdf: pdf-am
922
923pdf-am:
924
925ps: ps-am
926
927ps-am:
928
929uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
930
931.MAKE: install-am install-strip
932
933.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
934 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
935 ctags distclean distclean-compile distclean-generic \
936 distclean-libtool distclean-tags distdir dvi dvi-am html \
937 html-am info info-am install install-am install-data \
938 install-data-am install-dvi install-dvi-am install-exec \
939 install-exec-am install-html install-html-am \
940 install-includesHEADERS install-info install-info-am \
941 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
942 install-ps install-ps-am install-strip installcheck \
943 installcheck-am installdirs maintainer-clean \
944 maintainer-clean-generic mostlyclean mostlyclean-compile \
945 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
946 tags uninstall uninstall-am uninstall-includesHEADERS \
947 uninstall-pkgLTLIBRARIES
948
949
950# Tell versions [3.59,3.63) of GNU make to not export all variables.
951# Otherwise a system limit (for SysV at least) may be exceeded.
952.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_engine.c b/libraries/evas/src/modules/engines/software_x11/evas_engine.c
deleted file mode 100644
index 0a2d2a3..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_engine.c
+++ /dev/null
@@ -1,929 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3
4#include "Evas_Engine_Software_X11.h"
5#include "evas_engine.h"
6
7#ifdef BUILD_ENGINE_SOFTWARE_XLIB
8# include "evas_xlib_outbuf.h"
9# include "evas_xlib_color.h"
10#endif
11
12#ifdef BUILD_ENGINE_SOFTWARE_XCB
13# include "evas_xcb_outbuf.h"
14# include "evas_xcb_color.h"
15# include "evas_xcb_xdefaults.h"
16#endif
17
18int _evas_engine_soft_x11_log_dom = -1;
19
20/* function tables - filled in later (func and parent func) */
21static Evas_Func func, pfunc;
22
23#ifdef BUILD_ENGINE_SOFTWARE_XLIB
24/*
25struct xrdb_user
26{
27 time_t last_stat;
28 time_t last_mtime;
29 XrmDatabase db;
30};
31static struct xrdb_user xrdb_user = {0, 0, NULL};
32
33static Eina_Bool
34xrdb_user_query(const char *name, const char *cls, char **type, XrmValue *val)
35{
36 time_t last, now;
37
38 last = xrdb_user.last_stat;
39 now = time(NULL);
40
41 xrdb_user.last_stat = now;
42 if (last != now) // don't stat() more than once every second
43 {
44 struct stat st;
45 const char *home;
46 char tmp[PATH_MAX];
47
48 if (!(home = getenv("HOME")))
49 goto failed;
50
51 snprintf(tmp, sizeof(tmp), "%s/.Xdefaults", home);
52 if (stat(tmp, &st) != 0) goto failed;
53 if (xrdb_user.last_mtime != st.st_mtime)
54 {
55 if (xrdb_user.db) XrmDestroyDatabase(xrdb_user.db);
56 xrdb_user.db = XrmGetFileDatabase(tmp);
57 if (!xrdb_user.db) goto failed;
58 xrdb_user.last_mtime = st.st_mtime;
59 }
60 }
61
62 if (!xrdb_user.db) return EINA_FALSE;
63 return XrmGetResource(xrdb_user.db, name, cls, type, val);
64
65 failed:
66 if (xrdb_user.db)
67 {
68 XrmDestroyDatabase(xrdb_user.db);
69 xrdb_user.db = NULL;
70 }
71 xrdb_user.last_mtime = 0;
72 return EINA_FALSE;
73}
74*/
75#endif
76
77/* engine struct data */
78typedef struct _Render_Engine Render_Engine;
79
80struct _Render_Engine
81{
82 Tilebuf *tb;
83 Outbuf *ob;
84 Tilebuf_Rect *rects;
85 Eina_Inlist *cur_rect;
86 unsigned char end : 1;
87/*
88#ifdef BUILD_ENGINE_SOFTWARE_XLIB
89 XrmDatabase xrdb;
90#endif
91 struct
92 {
93 int dpi;
94 } xr;
95 */
96#ifdef EVAS_FRAME_QUEUING
97 Evas_Engine_Render_Mode render_mode;
98#endif
99
100 void (*outbuf_free)(Outbuf *ob);
101 void (*outbuf_reconfigure)(Outbuf *ob, int w, int h, int rot, Outbuf_Depth depth);
102 int (*outbuf_get_rot)(Outbuf *ob);
103 RGBA_Image *(*outbuf_new_region_for_update)(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
104 void (*outbuf_push_updated_region)(Outbuf *ob, RGBA_Image *update, int x, int y, int w, int h);
105 void (*outbuf_free_region_for_update)(Outbuf *ob, RGBA_Image *update);
106 void (*outbuf_flush)(Outbuf *ob);
107 void (*outbuf_idle_flush)(Outbuf *ob);
108 Eina_Bool (*outbuf_alpha_get)(Outbuf *ob);
109#ifdef EVAS_FRAME_QUEUING
110 void (*outbuf_set_priv)(Outbuf *ob, void *cur, void *prev);
111#endif
112};
113
114/* prototypes we will use here */
115static void *_best_visual_get(int backend, void *connection, int screen);
116static unsigned int _best_colormap_get(int backend, void *connection, int screen);
117static int _best_depth_get(int backend, void *connection, int screen);
118
119static void *eng_info(Evas *e);
120static void eng_info_free(Evas *e, void *info);
121static int eng_setup(Evas *e, void *info);
122static void eng_output_free(void *data);
123static void eng_output_resize(void *data, int w, int h);
124static void eng_output_tile_size_set(void *data, int w, int h);
125static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
126static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
127static void eng_output_redraws_clear(void *data);
128static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
129static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
130static void eng_output_flush(void *data);
131static void eng_output_idle_flush(void *data);
132
133/* internal engine routines */
134
135#ifdef BUILD_ENGINE_SOFTWARE_XLIB
136static void *
137_output_xlib_setup(int w, int h, int rot, Display *disp, Drawable draw,
138 Visual *vis, Colormap cmap, int depth, int debug,
139 int grayscale, int max_colors, Pixmap mask,
140 int shape_dither, int destination_alpha)
141{
142 Render_Engine *re;
143// int status;
144// char *type = NULL;
145// XrmValue val;
146
147 if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL;
148
149 evas_software_xlib_x_init();
150 evas_software_xlib_x_color_init();
151 evas_software_xlib_outbuf_init();
152/*
153 re->xr.dpi = 75000; // dpy * 1000
154
155 status = xrdb_user_query("Xft.dpi", "Xft.Dpi", &type, &val);
156 if ((!status) || (!type))
157 {
158 if (!re->xrdb) re->xrdb = XrmGetDatabase(disp);
159 if (re->xrdb)
160 status = XrmGetResource(re->xrdb,
161 "Xft.dpi", "Xft.Dpi", &type, &val);
162 }
163
164 if ((status) && (type))
165 {
166 if (!strcmp(type, "String"))
167 {
168 const char *str, *dp;
169
170 str = val.addr;
171 dp = strchr(str, '.');
172 if (!dp) dp = strchr(str, ',');
173
174 if (dp)
175 {
176 int subdpi, len, i;
177 char *buf;
178
179 buf = alloca(dp - str + 1);
180 strncpy(buf, str, dp - str);
181 buf[dp - str] = 0;
182 len = strlen(dp + 1);
183 subdpi = atoi(dp + 1);
184
185 if (len < 3)
186 {
187 for (i = len; i < 3; i++)
188 subdpi *= 10;
189 }
190 else if (len > 3)
191 {
192 for (i = len; i > 3; i--)
193 subdpi /= 10;
194 }
195 re->xr.dpi = atoi(buf) * 1000;
196 }
197 else
198 re->xr.dpi = atoi(str) * 1000;
199 evas_common_font_dpi_set(re->xr.dpi / 1000);
200 }
201 }
202 */
203 re->ob =
204 evas_software_xlib_outbuf_setup_x(w, h, rot, OUTBUF_DEPTH_INHERIT, disp,
205 draw, vis, cmap, depth, grayscale,
206 max_colors, mask, shape_dither,
207 destination_alpha);
208 if (!re->ob)
209 {
210 free(re);
211 return NULL;
212 }
213
214 /* for updates return 1 big buffer, but only use portions of it, also cache
215 * it and keepit around until an idle_flush */
216
217 /* disable for now - i am hunting down why some expedite tests are slower,
218 * as well as shaped stuff is broken and probable non-32bpp is broken as
219 * convert funcs dont do the right thing
220 *
221 */
222// re->ob->onebuf = 1;
223
224 evas_software_xlib_outbuf_debug_set(re->ob, debug);
225 re->tb = evas_common_tilebuf_new(w, h);
226 if (!re->tb)
227 {
228 evas_software_xlib_outbuf_free(re->ob);
229 free(re);
230 return NULL;
231 }
232
233 /* in preliminary tests 16x16 gave highest framerates */
234 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
235 return re;
236}
237#endif
238
239#ifdef BUILD_ENGINE_SOFTWARE_XCB
240static void *
241_output_xcb_setup(int w, int h, int rot, xcb_connection_t *conn,
242 xcb_screen_t *screen, xcb_drawable_t draw,
243 xcb_visualtype_t *vis, xcb_colormap_t cmap, int depth,
244 int debug, int grayscale, int max_colors, xcb_drawable_t mask,
245 int shape_dither, int destination_alpha)
246{
247 Render_Engine *re;
248// int v = 0;
249
250 if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL;
251
252 evas_software_xcb_init();
253 evas_software_xcb_color_init();
254 evas_software_xcb_outbuf_init();
255/*
256 // FIXME: re->xrdb
257 _evas_xcb_xdefaults_init();
258 v = _evas_xcb_xdefaults_int_get("Xft", "dpi");
259 _evas_xcb_xdefaults_shutdown();
260 if (v) re->xr.dpi = (v * 1000);
261 else re->xr.dpi = 75000; // dpy * 1000
262
263 evas_common_font_dpi_set(re->xr.dpi / 1000);
264 */
265 re->ob =
266 evas_software_xcb_outbuf_setup(w, h, rot, OUTBUF_DEPTH_INHERIT, conn,
267 screen, draw, vis, cmap, depth,
268 grayscale, max_colors, mask,
269 shape_dither, destination_alpha);
270 if (!re->ob)
271 {
272 free(re);
273 return NULL;
274 }
275
276 /* for updates return 1 big buffer, but only use portions of it, also cache
277 * it and keepit around until an idle_flush */
278
279 /* disable for now - i am hunting down why some expedite tests are slower,
280 * as well as shaped stuff is broken and probable non-32bpp is broken as
281 * convert funcs dont do the right thing
282 *
283 */
284// re->ob->onebuf = 1;
285
286 evas_software_xcb_outbuf_debug_set(re->ob, debug);
287
288 re->tb = evas_common_tilebuf_new(w, h);
289 if (!re->tb)
290 {
291 evas_software_xcb_outbuf_free(re->ob);
292 free(re);
293 return NULL;
294 }
295
296 /* in preliminary tests 16x16 gave highest framerates */
297 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
298 return re;
299}
300#endif
301
302static void *
303_best_visual_get(int backend, void *connection, int screen)
304{
305 if (!connection) return NULL;
306
307#ifdef BUILD_ENGINE_SOFTWARE_XLIB
308 if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
309 return DefaultVisual((Display *)connection, screen);
310#endif
311
312#ifdef BUILD_ENGINE_SOFTWARE_XCB
313 if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
314 {
315 xcb_screen_iterator_t iter_screen;
316 xcb_depth_iterator_t iter_depth;
317 xcb_screen_t *s = NULL;
318
319 iter_screen =
320 xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)connection));
321 for (; iter_screen.rem; --screen, xcb_screen_next(&iter_screen))
322 if (screen == 0)
323 {
324 s = iter_screen.data;
325 break;
326 }
327
328 iter_depth = xcb_screen_allowed_depths_iterator(s);
329 for (; iter_depth.rem; xcb_depth_next(&iter_depth))
330 {
331 xcb_visualtype_iterator_t iter_vis;
332
333 iter_vis = xcb_depth_visuals_iterator(iter_depth.data);
334 for (; iter_vis.rem; xcb_visualtype_next(&iter_vis))
335 {
336 if (s->root_visual == iter_vis.data->visual_id)
337 return iter_vis.data;
338 }
339 }
340 }
341#endif
342
343 return NULL;
344}
345
346static unsigned int
347_best_colormap_get(int backend, void *connection, int screen)
348{
349 if (!connection) return 0;
350
351#ifdef BUILD_ENGINE_SOFTWARE_XLIB
352 if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
353 return DefaultColormap((Display *)connection, screen);
354#endif
355
356#ifdef BUILD_ENGINE_SOFTWARE_XCB
357 if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
358 {
359 xcb_screen_iterator_t iter_screen;
360 xcb_screen_t *s = NULL;
361
362 iter_screen =
363 xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)connection));
364 for (; iter_screen.rem; --screen, xcb_screen_next(&iter_screen))
365 if (screen == 0)
366 {
367 s = iter_screen.data;
368 break;
369 }
370
371 return s->default_colormap;
372 }
373#endif
374
375 return 0;
376}
377
378static int
379_best_depth_get(int backend, void *connection, int screen)
380{
381 if (!connection) return 0;
382
383#ifdef BUILD_ENGINE_SOFTWARE_XLIB
384 if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
385 return DefaultDepth((Display *)connection, screen);
386#endif
387
388#ifdef BUILD_ENGINE_SOFTWARE_XCB
389 if (backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
390 {
391 xcb_screen_iterator_t iter_screen;
392 xcb_screen_t *s = NULL;
393
394 iter_screen =
395 xcb_setup_roots_iterator(xcb_get_setup((xcb_connection_t *)connection));
396 for (; iter_screen.rem; --screen, xcb_screen_next(&iter_screen))
397 if (screen == 0)
398 {
399 s = iter_screen.data;
400 break;
401 }
402
403 return s->root_depth;
404 }
405#endif
406
407 return 0;
408}
409
410/* engine api this module provides */
411static void *
412eng_info(Evas *e __UNUSED__)
413{
414 Evas_Engine_Info_Software_X11 *info;
415
416 if (!(info = calloc(1, sizeof(Evas_Engine_Info_Software_X11))))
417 return NULL;
418
419 info->magic.magic = rand();
420 info->info.debug = 0;
421 info->info.alloc_grayscale = 0;
422 info->info.alloc_colors_max = 216;
423 info->func.best_visual_get = _best_visual_get;
424 info->func.best_colormap_get = _best_colormap_get;
425 info->func.best_depth_get = _best_depth_get;
426 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
427 return info;
428}
429
430static void
431eng_info_free(Evas *e __UNUSED__, void *info)
432{
433 Evas_Engine_Info_Software_X11 *in;
434
435 in = (Evas_Engine_Info_Software_X11 *)info;
436 free(in);
437}
438
439static int
440eng_setup(Evas *e, void *in)
441{
442 Evas_Engine_Info_Software_X11 *info;
443 Render_Engine *re = NULL;
444
445 info = (Evas_Engine_Info_Software_X11 *)in;
446 if (!e->engine.data.output)
447 {
448 /* if we haven't initialized - init (automatic abort if already done) */
449 evas_common_cpu_init();
450 evas_common_blend_init();
451 evas_common_image_init();
452 evas_common_convert_init();
453 evas_common_scale_init();
454 evas_common_rectangle_init();
455 evas_common_polygon_init();
456 evas_common_line_init();
457 evas_common_font_init();
458 evas_common_draw_init();
459 evas_common_tilebuf_init();
460
461#ifdef BUILD_ENGINE_SOFTWARE_XLIB
462 if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
463 {
464 re = _output_xlib_setup(e->output.w, e->output.h,
465 info->info.rotation, info->info.connection,
466 info->info.drawable, info->info.visual,
467 info->info.colormap,
468 info->info.depth, info->info.debug,
469 info->info.alloc_grayscale,
470 info->info.alloc_colors_max,
471 info->info.mask, info->info.shape_dither,
472 info->info.destination_alpha);
473
474 re->outbuf_free = evas_software_xlib_outbuf_free;
475 re->outbuf_reconfigure = evas_software_xlib_outbuf_reconfigure;
476 re->outbuf_get_rot = evas_software_xlib_outbuf_get_rot;
477 re->outbuf_new_region_for_update =
478 evas_software_xlib_outbuf_new_region_for_update;
479 re->outbuf_push_updated_region =
480 evas_software_xlib_outbuf_push_updated_region;
481 re->outbuf_free_region_for_update =
482 evas_software_xlib_outbuf_free_region_for_update;
483 re->outbuf_flush = evas_software_xlib_outbuf_flush;
484 re->outbuf_idle_flush = evas_software_xlib_outbuf_idle_flush;
485 re->outbuf_alpha_get = evas_software_xlib_outbuf_alpha_get;
486# ifdef EVAS_FRAME_QUEUING
487 re->outbuf_set_priv = evas_software_xlib_outbuf_set_priv;
488 re->render_mode = info->render_mode;
489# endif
490 }
491#endif
492
493#ifdef BUILD_ENGINE_SOFTWARE_XCB
494 if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
495 {
496 re = _output_xcb_setup(e->output.w, e->output.h,
497 info->info.rotation, info->info.connection,
498 info->info.screen, info->info.drawable,
499 info->info.visual, info->info.colormap,
500 info->info.depth, info->info.debug,
501 info->info.alloc_grayscale,
502 info->info.alloc_colors_max,
503 info->info.mask, info->info.shape_dither,
504 info->info.destination_alpha);
505
506 re->outbuf_free = evas_software_xcb_outbuf_free;
507 re->outbuf_reconfigure = evas_software_xcb_outbuf_reconfigure;
508 re->outbuf_get_rot = evas_software_xcb_outbuf_rotation_get;
509 re->outbuf_new_region_for_update =
510 evas_software_xcb_outbuf_new_region_for_update;
511 re->outbuf_push_updated_region =
512 evas_software_xcb_outbuf_push_updated_region;
513 re->outbuf_free_region_for_update =
514 evas_software_xcb_outbuf_free_region_for_update;
515 re->outbuf_flush = evas_software_xcb_outbuf_flush;
516 re->outbuf_idle_flush = evas_software_xcb_outbuf_idle_flush;
517 re->outbuf_alpha_get = evas_software_xcb_outbuf_alpha_get;
518# ifdef EVAS_FRAME_QUEUING
519 re->outbuf_set_priv = evas_software_xcb_outbuf_priv_set;
520 re->render_mode = info->render_mode;
521# endif
522 }
523#endif
524
525 e->engine.data.output = re;
526 }
527 else
528 {
529 int ponebuf = 0;
530
531#ifdef EVAS_FRAME_QUEUING
532 evas_common_frameq_flush();
533#endif
534 re = e->engine.data.output;
535 ponebuf = re->ob->onebuf;
536
537#ifdef BUILD_ENGINE_SOFTWARE_XLIB
538 if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
539 {
540 evas_software_xlib_outbuf_free(re->ob);
541 re->ob =
542 evas_software_xlib_outbuf_setup_x(e->output.w, e->output.h,
543 info->info.rotation,
544 OUTBUF_DEPTH_INHERIT,
545 info->info.connection,
546 info->info.drawable,
547 info->info.visual,
548 info->info.colormap,
549 info->info.depth,
550 info->info.alloc_grayscale,
551 info->info.alloc_colors_max,
552 info->info.mask,
553 info->info.shape_dither,
554 info->info.destination_alpha);
555
556 evas_software_xlib_outbuf_debug_set(re->ob, info->info.debug);
557# ifdef EVAS_FRAME_QUEUING
558 re->render_mode = info->render_mode;
559# endif
560 }
561#endif
562
563#ifdef BUILD_ENGINE_SOFTWARE_XCB
564 if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XCB)
565 {
566 evas_software_xcb_outbuf_free(re->ob);
567 re->ob =
568 evas_software_xcb_outbuf_setup(e->output.w, e->output.h,
569 info->info.rotation,
570 OUTBUF_DEPTH_INHERIT,
571 info->info.connection,
572 info->info.screen,
573 info->info.drawable,
574 info->info.visual,
575 info->info.colormap,
576 info->info.depth,
577 info->info.alloc_grayscale,
578 info->info.alloc_colors_max,
579 info->info.mask,
580 info->info.shape_dither,
581 info->info.destination_alpha);
582
583 evas_software_xcb_outbuf_debug_set(re->ob, info->info.debug);
584#ifdef EVAS_FRAME_QUEUING
585 re->render_mode = info->render_mode;
586#endif
587 }
588#endif
589 re->ob->onebuf = ponebuf;
590 }
591 if (!e->engine.data.output) return 0;
592 if (!e->engine.data.context)
593 {
594 e->engine.data.context =
595 e->engine.func->context_new(e->engine.data.output);
596 }
597
598 re = e->engine.data.output;
599
600 return 1;
601}
602
603static void
604eng_output_free(void *data)
605{
606 Render_Engine *re;
607
608#ifdef BUILD_ENGINE_SOFTWARE_XLIB
609// NOTE: XrmGetDatabase() result is shared per connection, do not free it.
610// if (re->xrdb) XrmDestroyDatabase(re->xrdb);
611#endif
612
613 if ((re = (Render_Engine *)data))
614 {
615 re->outbuf_free(re->ob);
616 evas_common_tilebuf_free(re->tb);
617 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
618 free(re);
619 }
620
621 evas_common_font_shutdown();
622 evas_common_image_shutdown();
623}
624
625static void
626eng_output_resize(void *data, int w, int h)
627{
628 Render_Engine *re;
629
630 re = (Render_Engine *)data;
631 re->outbuf_reconfigure(re->ob, w, h, re->outbuf_get_rot(re->ob),
632 OUTBUF_DEPTH_INHERIT);
633 evas_common_tilebuf_free(re->tb);
634 re->tb = evas_common_tilebuf_new(w, h);
635 if (re->tb)
636 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
637}
638
639static void
640eng_output_tile_size_set(void *data, int w, int h)
641{
642 Render_Engine *re;
643
644 re = (Render_Engine *)data;
645 evas_common_tilebuf_set_tile_size(re->tb, w, h);
646}
647
648static void
649eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
650{
651 Render_Engine *re;
652
653 re = (Render_Engine *)data;
654 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
655}
656
657static void
658eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
659{
660 Render_Engine *re;
661
662 re = (Render_Engine *)data;
663 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
664}
665
666static void
667eng_output_redraws_clear(void *data)
668{
669 Render_Engine *re;
670
671 re = (Render_Engine *)data;
672 evas_common_tilebuf_clear(re->tb);
673}
674
675static void *
676eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
677{
678 Render_Engine *re;
679 RGBA_Image *surface;
680 Tilebuf_Rect *rect;
681 int ux, uy, uw, uh;
682
683 re = (Render_Engine *)data;
684 if (re->end)
685 {
686 re->end = 0;
687 return NULL;
688 }
689 if (!re->rects)
690 {
691 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
692 re->cur_rect = EINA_INLIST_GET(re->rects);
693 }
694 if (!re->cur_rect) return NULL;
695 rect = (Tilebuf_Rect *)re->cur_rect;
696 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
697 re->cur_rect = re->cur_rect->next;
698 if (!re->cur_rect)
699 {
700 evas_common_tilebuf_free_render_rects(re->rects);
701 re->rects = NULL;
702 re->end = 1;
703 }
704
705 surface =
706 re->outbuf_new_region_for_update(re->ob, ux, uy, uw, uh, cx, cy, cw, ch);
707
708 *x = ux; *y = uy; *w = uw; *h = uh;
709 return surface;
710}
711
712static void
713eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
714{
715 Render_Engine *re;
716#ifdef EVAS_FRAME_QUEUING
717 Evas_Surface *e_surface;
718#endif
719
720 re = (Render_Engine *)data;
721#if defined(BUILD_PIPE_RENDER) && !defined(EVAS_FRAME_QUEUING)
722 evas_common_pipe_map_begin(surface);
723#endif /* BUILD_PIPE_RENDER && !EVAS_FRAME_QUEUING*/
724
725#ifdef EVAS_FRAME_QUEUING
726 if (re->render_mode == EVAS_RENDER_MODE_NONBLOCKING)
727 {
728 /* create a new frame if this is the first surface of this frame */
729 evas_common_frameq_prepare_frame();
730 /* add surface into the frame */
731 e_surface = evas_common_frameq_new_surface(surface, x, y, w, h);
732 evas_common_frameq_add_surface(e_surface);
733 return;
734 }
735#endif
736
737 re->outbuf_push_updated_region(re->ob, surface, x, y, w, h);
738 re->outbuf_free_region_for_update(re->ob, surface);
739 evas_common_cpu_end_opt();
740}
741
742#ifdef EVAS_FRAME_QUEUING
743static void *
744eng_image_map_surface_new(void *data , int w, int h, int alpha)
745{
746 void *surface;
747 DATA32 *pixels;
748 Render_Engine *re;
749 Evas_Surface *e_surface;
750
751 re = (Render_Engine *)data;
752
753 surface =
754 evas_cache_image_copied_data(evas_common_image_cache_get(), w, h, NULL,
755 alpha, EVAS_COLORSPACE_ARGB8888);
756 pixels = evas_cache_image_pixels(surface);
757
758 if (re->render_mode == EVAS_RENDER_MODE_NONBLOCKING)
759 {
760 /* create a new frame if this is the first surface of this frame */
761 evas_common_frameq_prepare_frame();
762
763 /* add surface into the frame */
764 e_surface = evas_common_frameq_new_surface(surface, 0, 0, w, h);
765
766 /* this surface is not going to be pushed to screen */
767 e_surface->dontpush = 1;
768 evas_common_frameq_add_surface(e_surface);
769 }
770 return surface;
771}
772
773static void
774eng_output_frameq_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
775{
776 Render_Engine *re;
777
778 re = (Render_Engine *)data;
779 re->outbuf_push_updated_region(re->ob, surface, x, y, w, h);
780 re->outbuf_free_region_for_update(re->ob, surface);
781 evas_common_cpu_end_opt();
782}
783
784static void
785eng_output_frameq_flush(void *data)
786{
787 Render_Engine *re;
788
789 re = (Render_Engine *)data;
790 re->outbuf_flush(re->ob);
791}
792
793static void
794eng_output_frameq_set_priv(void *data, void *cur, void *prev)
795{
796 Render_Engine *re;
797
798 re = (Render_Engine *)data;
799 re->outbuf_set_priv(re->ob, cur, prev);
800}
801#endif
802
803static void
804eng_output_flush(void *data)
805{
806 Render_Engine *re;
807
808 re = (Render_Engine *)data;
809#ifdef EVAS_FRAME_QUEUING
810 if (re->render_mode == EVAS_RENDER_MODE_NONBLOCKING)
811 {
812 evas_common_frameq_set_frame_data(data,
813 eng_output_frameq_redraws_next_update_push,
814 eng_output_frameq_flush,
815 eng_output_frameq_set_priv);
816 evas_common_frameq_ready_frame();
817 evas_common_frameq_begin();
818 }
819 else
820#endif
821 re->outbuf_flush(re->ob);
822}
823
824static void
825eng_output_idle_flush(void *data)
826{
827 Render_Engine *re;
828
829 re = (Render_Engine *)data;
830 re->outbuf_idle_flush(re->ob);
831}
832
833static Eina_Bool
834eng_canvas_alpha_get(void *data, void *context __UNUSED__)
835{
836 Render_Engine *re;
837
838 re = (Render_Engine *)data;
839 return (re->ob->priv.destination_alpha) || (re->outbuf_alpha_get(re->ob));
840}
841
842
843/* module advertising code */
844static int
845module_open(Evas_Module *em)
846{
847#ifdef BUILD_ENGINE_SOFTWARE_XLIB
848 static Eina_Bool xrm_inited = EINA_FALSE;
849
850 if (!xrm_inited)
851 {
852 xrm_inited = EINA_TRUE;
853 XrmInitialize();
854 }
855#endif
856
857 if (!em) return 0;
858
859 /* get whatever engine module we inherit from */
860 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
861
862 _evas_engine_soft_x11_log_dom =
863 eina_log_domain_register("evas-software_x11", EVAS_DEFAULT_LOG_COLOR);
864
865 if (_evas_engine_soft_x11_log_dom < 0)
866 {
867 EINA_LOG_ERR("Can not create a module log domain.");
868 return 0;
869 }
870
871 /* store it for later use */
872 func = pfunc;
873
874 /* now to override methods */
875#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
876 ORD(info);
877 ORD(info_free);
878 ORD(setup);
879 ORD(canvas_alpha_get);
880 ORD(output_free);
881 ORD(output_resize);
882 ORD(output_tile_size_set);
883 ORD(output_redraws_rect_add);
884 ORD(output_redraws_rect_del);
885 ORD(output_redraws_clear);
886 ORD(output_redraws_next_update_get);
887 ORD(output_redraws_next_update_push);
888 ORD(output_flush);
889 ORD(output_idle_flush);
890#ifdef EVAS_FRAME_QUEUING
891 ORD(image_map_surface_new);
892#endif
893
894 /* now advertise out own api */
895 em->functions = (void *)(&func);
896 return 1;
897}
898
899static void
900module_close(Evas_Module *em __UNUSED__)
901{
902 eina_log_domain_unregister(_evas_engine_soft_x11_log_dom);
903#ifdef BUILD_ENGINE_SOFTWARE_XLIB
904/*
905 if (xrdb_user.db)
906 {
907 XrmDestroyDatabase(xrdb_user.db);
908 xrdb_user.last_stat = 0;
909 xrdb_user.last_mtime = 0;
910 xrdb_user.db = NULL;
911 }
912 */
913#endif
914}
915
916static Evas_Module_Api evas_modapi =
917{
918 EVAS_MODULE_API_VERSION, "software_x11", "none",
919 {
920 module_open,
921 module_close
922 }
923};
924
925EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_x11);
926
927#ifndef EVAS_STATIC_BUILD_SOFTWARE_X11
928EVAS_EINA_MODULE_DEFINE(engine, software_x11);
929#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_engine.h b/libraries/evas/src/modules/engines/software_x11/evas_engine.h
deleted file mode 100644
index 80b71b7..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_engine.h
+++ /dev/null
@@ -1,137 +0,0 @@
1#ifndef EVAS_ENGINE_H
2# define EVAS_ENGINE_H
3
4# include <sys/ipc.h>
5# include <sys/shm.h>
6
7# ifdef BUILD_ENGINE_SOFTWARE_XLIB
8# include <X11/Xlib.h>
9# include <X11/Xutil.h>
10# include <X11/Xatom.h>
11# include <X11/extensions/XShm.h>
12# include <X11/Xresource.h> // xres - dpi
13# endif
14
15# ifdef BUILD_ENGINE_SOFTWARE_XCB
16# include <xcb/xcb.h>
17# include <xcb/shm.h>
18# include <xcb/xcb_image.h>
19# endif
20
21extern int _evas_engine_soft_x11_log_dom;
22
23# ifdef ERR
24# undef ERR
25# endif
26# define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft_x11_log_dom, __VA_ARGS__)
27
28# ifdef DBG
29# undef DBG
30# endif
31# define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft_x11_log_dom, __VA_ARGS__)
32
33# ifdef INF
34# undef INF
35# endif
36# define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft_x11_log_dom, __VA_ARGS__)
37
38# ifdef WRN
39# undef WRN
40# endif
41# define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft_x11_log_dom, __VA_ARGS__)
42
43# ifdef CRIT
44# undef CRIT
45# endif
46# define CRIT(...) \
47 EINA_LOG_DOM_CRIT(_evas_engine_soft_x11_log_dom, __VA_ARGS__)
48
49typedef enum _Outbuf_Depth Outbuf_Depth;
50
51enum _Outbuf_Depth
52{
53 OUTBUF_DEPTH_NONE,
54 OUTBUF_DEPTH_INHERIT,
55 OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,
56 OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED,
57 OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED,
58 OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED,
59 OUTBUF_DEPTH_RGB_32BPP_888_8888,
60 OUTBUF_DEPTH_LAST
61};
62
63typedef struct _Outbuf Outbuf;
64
65struct _Outbuf
66{
67 Outbuf_Depth depth;
68 int w, h;
69 int rot;
70 int onebuf;
71
72 struct
73 {
74 Convert_Pal *pal;
75 union
76 {
77# ifdef BUILD_ENGINE_SOFTWARE_XLIB
78 struct
79 {
80 Display *disp;
81 Window win;
82 Pixmap mask;
83 Visual *vis;
84 Colormap cmap;
85 int depth, shm;
86 GC gc, gcm;
87 unsigned char swap : 1;
88 unsigned char bit_swap : 1;
89 } xlib;
90# endif
91# ifdef BUILD_ENGINE_SOFTWARE_XCB
92 struct
93 {
94 xcb_connection_t *conn;
95 xcb_screen_t *screen;
96 xcb_window_t win;
97 xcb_pixmap_t mask;
98 xcb_visualtype_t *visual;
99 xcb_colormap_t cmap;
100 int depth, shm;
101 xcb_gcontext_t gc, gcm;
102 unsigned char swap : 1;
103 unsigned char bit_swap : 1;
104 } xcb;
105# endif
106 } x11;
107 struct
108 {
109 DATA32 r, g, b;
110 } mask;
111
112 /* 1 big buffer for updates - flush on idle_flush */
113 RGBA_Image *onebuf;
114 Eina_List *onebuf_regions;
115
116 /* a list of pending regions to write to the target */
117 Eina_List *pending_writes;
118
119 /* a list of previous frame pending regions to write to the target */
120 Eina_List *prev_pending_writes;
121
122# ifdef EVAS_FRAME_QUEUING
123 /* protecting prev_pending_writes */
124 LK(lock);
125# endif
126
127 unsigned char mask_dither : 1;
128 unsigned char destination_alpha : 1;
129 unsigned char debug : 1;
130 unsigned char synced : 1;
131 } priv;
132};
133
134void evas_software_xlib_x_init(void);
135void evas_software_xcb_init(void);
136
137#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.c b/libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.c
deleted file mode 100644
index 49ce721..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.c
+++ /dev/null
@@ -1,498 +0,0 @@
1#include "evas_common.h"
2#include "evas_xcb_buffer.h"
3
4/* local function prototypes */
5static void _xcbob_sync(xcb_connection_t *conn);
6static xcb_image_t *_xcbob_create_native(xcb_connection_t *conn, int w, int h, xcb_image_format_t format, uint8_t depth, void *base, uint32_t bytes, uint8_t *data);
7static xcb_format_t *_xcbob_find_format(const xcb_setup_t *setup, uint8_t depth);
8static xcb_visualtype_t *_xcbob_find_visual_by_id(xcb_screen_t *screen, xcb_visualid_t id);
9
10void
11evas_software_xcb_write_mask_line(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y)
12{
13 int x, bpl = 0;
14 DATA32 *src_ptr;
15 DATA8 *dst_ptr;
16
17 src_ptr = src;
18 dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
19 dst_ptr = dst_ptr + (bpl * y);
20 w -= 7;
21 if (buf->priv.x11.xcb.bit_swap)
22 {
23 for (x = 0; x < w; x += 8)
24 {
25 *dst_ptr =
26 ((A_VAL(&(src_ptr[0])) >> 7) << 7) |
27 ((A_VAL(&(src_ptr[1])) >> 7) << 6) |
28 ((A_VAL(&(src_ptr[2])) >> 7) << 5) |
29 ((A_VAL(&(src_ptr[3])) >> 7) << 4) |
30 ((A_VAL(&(src_ptr[4])) >> 7) << 3) |
31 ((A_VAL(&(src_ptr[5])) >> 7) << 2) |
32 ((A_VAL(&(src_ptr[6])) >> 7) << 1) |
33 ((A_VAL(&(src_ptr[7])) >> 7) << 0);
34 src_ptr += 8;
35 dst_ptr++;
36 }
37 }
38 else
39 {
40 for (x = 0; x < w; x += 8)
41 {
42 *dst_ptr =
43 ((A_VAL(&(src_ptr[0])) >> 7) << 0) |
44 ((A_VAL(&(src_ptr[1])) >> 7) << 1) |
45 ((A_VAL(&(src_ptr[2])) >> 7) << 2) |
46 ((A_VAL(&(src_ptr[3])) >> 7) << 3) |
47 ((A_VAL(&(src_ptr[4])) >> 7) << 4) |
48 ((A_VAL(&(src_ptr[5])) >> 7) << 5) |
49 ((A_VAL(&(src_ptr[6])) >> 7) << 6) |
50 ((A_VAL(&(src_ptr[7])) >> 7) << 7);
51 src_ptr += 8;
52 dst_ptr++;
53 }
54 }
55 w += 7;
56 for (; x < w; x ++)
57 {
58 xcb_image_put_pixel(xcbob->xim, x, y, A_VAL(src_ptr) >> 7);
59 src_ptr++;
60 }
61}
62
63void
64evas_software_xcb_write_mask_line_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y)
65{
66 int x, bpl = 0;
67 DATA32 *src_ptr;
68 DATA8 *dst_ptr;
69
70 src_ptr = src + w - 1;
71 dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
72 dst_ptr = dst_ptr + (bpl * y);
73 w -= 7;
74 if (buf->priv.x11.xcb.bit_swap)
75 {
76 for (x = 0; x < w; x += 8)
77 {
78 *dst_ptr =
79 ((A_VAL(&(src_ptr[ 0])) >> 7) << 7) |
80 ((A_VAL(&(src_ptr[-1])) >> 7) << 6) |
81 ((A_VAL(&(src_ptr[-2])) >> 7) << 5) |
82 ((A_VAL(&(src_ptr[-3])) >> 7) << 4) |
83 ((A_VAL(&(src_ptr[-4])) >> 7) << 3) |
84 ((A_VAL(&(src_ptr[-5])) >> 7) << 2) |
85 ((A_VAL(&(src_ptr[-6])) >> 7) << 1) |
86 ((A_VAL(&(src_ptr[-7])) >> 7) << 0);
87 src_ptr -= 8;
88 dst_ptr++;
89 }
90 }
91 else
92 {
93 for (x = 0; x < w; x += 8)
94 {
95 *dst_ptr =
96 ((A_VAL(&(src_ptr[ 0])) >> 7) << 0) |
97 ((A_VAL(&(src_ptr[-1])) >> 7) << 1) |
98 ((A_VAL(&(src_ptr[-2])) >> 7) << 2) |
99 ((A_VAL(&(src_ptr[-3])) >> 7) << 3) |
100 ((A_VAL(&(src_ptr[-4])) >> 7) << 4) |
101 ((A_VAL(&(src_ptr[-5])) >> 7) << 5) |
102 ((A_VAL(&(src_ptr[-6])) >> 7) << 6) |
103 ((A_VAL(&(src_ptr[-7])) >> 7) << 7);
104 src_ptr -= 8;
105 dst_ptr++;
106 }
107 }
108 w += 7;
109 for (; x < w; x ++)
110 {
111 xcb_image_put_pixel(xcbob->xim, x, y, A_VAL(src_ptr) >> 7);
112 src_ptr--;
113 }
114}
115
116void
117evas_software_xcb_write_mask_line_vert(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w)
118{
119 int yy, bpl = 0;
120 DATA32 *src_ptr;
121 DATA8 *dst_ptr;
122
123 src_ptr = src;
124 dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
125 dst_ptr = dst_ptr + (bpl * y);
126 h -= 7;
127 if (buf->priv.x11.xcb.bit_swap)
128 {
129 for (yy = 0; yy < h; yy += 8)
130 {
131 *dst_ptr =
132 ((A_VAL(&(src_ptr[0 * w])) >> 7) << 7) |
133 ((A_VAL(&(src_ptr[1 * w])) >> 7) << 6) |
134 ((A_VAL(&(src_ptr[2 * w])) >> 7) << 5) |
135 ((A_VAL(&(src_ptr[3 * w])) >> 7) << 4) |
136 ((A_VAL(&(src_ptr[4 * w])) >> 7) << 3) |
137 ((A_VAL(&(src_ptr[5 * w])) >> 7) << 2) |
138 ((A_VAL(&(src_ptr[6 * w])) >> 7) << 1) |
139 ((A_VAL(&(src_ptr[7 * w])) >> 7) << 0);
140 src_ptr += 8 * w;
141 dst_ptr++;
142 }
143 }
144 else
145 {
146 for (yy = 0; yy < h; yy += 8)
147 {
148 *dst_ptr =
149 ((A_VAL(&(src_ptr[0 * w])) >> 7) << 0) |
150 ((A_VAL(&(src_ptr[1 * w])) >> 7) << 1) |
151 ((A_VAL(&(src_ptr[2 * w])) >> 7) << 2) |
152 ((A_VAL(&(src_ptr[3 * w])) >> 7) << 3) |
153 ((A_VAL(&(src_ptr[4 * w])) >> 7) << 4) |
154 ((A_VAL(&(src_ptr[5 * w])) >> 7) << 5) |
155 ((A_VAL(&(src_ptr[6 * w])) >> 7) << 6) |
156 ((A_VAL(&(src_ptr[7 * w])) >> 7) << 7);
157 src_ptr += 8 * w;
158 dst_ptr++;
159 }
160 }
161 h += 7;
162 for (; yy < h; yy ++)
163 {
164 xcb_image_put_pixel(xcbob->xim, yy, y, A_VAL(src_ptr) >> 7);
165 src_ptr += w;
166 }
167}
168
169void
170evas_software_xcb_write_mask_line_vert_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w)
171{
172 int yy, bpl = 0;
173 DATA32 *src_ptr;
174 DATA8 *dst_ptr;
175
176 src_ptr = src + ((h - 1) * w);
177 dst_ptr = evas_software_xcb_output_buffer_data(xcbob, &bpl);
178 dst_ptr = dst_ptr + (bpl * y);
179 h -= 7;
180 if (buf->priv.x11.xcb.bit_swap)
181 {
182 for (yy = 0; yy < h; yy += 8)
183 {
184 *dst_ptr =
185 ((A_VAL(&(src_ptr[ 0 * w])) >> 7) << 7) |
186 ((A_VAL(&(src_ptr[-1 * w])) >> 7) << 6) |
187 ((A_VAL(&(src_ptr[-2 * w])) >> 7) << 5) |
188 ((A_VAL(&(src_ptr[-3 * w])) >> 7) << 4) |
189 ((A_VAL(&(src_ptr[-4 * w])) >> 7) << 3) |
190 ((A_VAL(&(src_ptr[-5 * w])) >> 7) << 2) |
191 ((A_VAL(&(src_ptr[-6 * w])) >> 7) << 1) |
192 ((A_VAL(&(src_ptr[-7 * w])) >> 7) << 0);
193 src_ptr -= 8 * w;
194 dst_ptr++;
195 }
196 }
197 else
198 {
199 for (yy = 0; yy < h; yy += 8)
200 {
201 *dst_ptr =
202 ((A_VAL(&(src_ptr[ 0 * w])) >> 7) << 0) |
203 ((A_VAL(&(src_ptr[-1 * w])) >> 7) << 1) |
204 ((A_VAL(&(src_ptr[-2 * w])) >> 7) << 2) |
205 ((A_VAL(&(src_ptr[-3 * w])) >> 7) << 3) |
206 ((A_VAL(&(src_ptr[-4 * w])) >> 7) << 4) |
207 ((A_VAL(&(src_ptr[-5 * w])) >> 7) << 5) |
208 ((A_VAL(&(src_ptr[-6 * w])) >> 7) << 6) |
209 ((A_VAL(&(src_ptr[-7 * w])) >> 7) << 7);
210 src_ptr -= 8 * w;
211 dst_ptr++;
212 }
213 }
214 h += 7;
215 for (; yy < h; yy ++)
216 {
217 xcb_image_put_pixel(xcbob->xim, yy, y, A_VAL(src_ptr) >> 7);
218 src_ptr -= w;
219 }
220}
221
222Eina_Bool
223evas_software_xcb_can_do_shm(xcb_connection_t *conn, xcb_screen_t *screen)
224{
225 const xcb_query_extension_reply_t *reply;
226 static xcb_connection_t *cached_conn = NULL;
227 static int cached_result = 0;
228
229 if (conn == cached_conn) return cached_result;
230 cached_conn = conn;
231
232 reply = xcb_get_extension_data(conn, &xcb_shm_id);
233 if ((reply) && (reply->present))
234 {
235 xcb_visualtype_t *visual;
236 Xcb_Output_Buffer *xcbob = NULL;
237
238 visual = _xcbob_find_visual_by_id(screen, screen->root_visual);
239 xcbob =
240 evas_software_xcb_output_buffer_new(conn, visual, screen->root_depth,
241 16, 16, 2, NULL);
242 if (!xcbob)
243 cached_result = 0;
244 else
245 {
246 evas_software_xcb_output_buffer_free(xcbob, EINA_TRUE);
247 cached_result = 1;
248 }
249 }
250 else
251 cached_result = 0;
252
253 return cached_result;
254}
255
256Xcb_Output_Buffer *
257evas_software_xcb_output_buffer_new(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, int try_shm, unsigned char *data)
258{
259 Xcb_Output_Buffer *xcbob = NULL;
260
261 if (!(xcbob = calloc(1, sizeof(Xcb_Output_Buffer))))
262 return NULL;
263
264 xcbob->connection = conn;
265 xcbob->visual = vis;
266 xcbob->xim = NULL;
267 xcbob->shm_info = NULL;
268 xcbob->w = w;
269 xcbob->h = h;
270
271 if (try_shm > 0)
272 {
273 xcbob->shm_info = malloc(sizeof(xcb_shm_segment_info_t));
274 if (xcbob->shm_info)
275 {
276 xcbob->shm_info->shmseg = xcb_generate_id(conn);
277 xcbob->xim =
278 _xcbob_create_native(conn, w, h, XCB_IMAGE_FORMAT_Z_PIXMAP,
279 depth, NULL, ~0, NULL);
280 if (xcbob->xim)
281 {
282 xcbob->shm_info->shmid =
283 shmget(IPC_PRIVATE,
284 xcbob->xim->stride * xcbob->xim->height,
285 (IPC_CREAT | 0777));
286 if (xcbob->shm_info->shmid == (uint32_t)-1)
287 {
288 xcb_image_destroy(xcbob->xim);
289 free(xcbob->shm_info);
290 free(xcbob);
291 return NULL;
292 }
293 xcbob->shm_info->shmaddr = xcbob->xim->data =
294 shmat(xcbob->shm_info->shmid, 0, 0);
295 if (xcbob->shm_info->shmaddr != ((void *)-1))
296 {
297 /* Sync only needed for testing */
298 if (try_shm == 2) _xcbob_sync(conn);
299
300#if defined(EVAS_FRAME_QUEUING) && defined(LIBXEXT_VERSION_LOW)
301 if (evas_common_frameq_enabled())
302 xcb_grab_server(conn);
303#endif
304 xcb_shm_attach(conn, xcbob->shm_info->shmseg,
305 xcbob->shm_info->shmid, 0);
306#if defined(EVAS_FRAME_QUEUING) && defined(LIBXEXT_VERSION_LOW)
307 if (evas_common_frameq_enabled())
308 xcb_ungrab_server(conn);
309#endif
310 if (try_shm == 2) _xcbob_sync(conn);
311
312 xcbob->bpl = xcbob->xim->stride;
313 xcbob->psize = (xcbob->bpl * xcbob->h);
314 return xcbob;
315 }
316 shmdt(xcbob->shm_info->shmaddr);
317 shmctl(xcbob->shm_info->shmid, IPC_RMID, 0);
318 }
319 if (xcbob->xim) xcb_image_destroy(xcbob->xim);
320 xcbob->xim = NULL;
321 }
322 if (xcbob->shm_info) free(xcbob->shm_info);
323 xcbob->shm_info = NULL;
324 }
325
326 if (try_shm > 1) return NULL;
327
328 /* no shm */
329 xcbob->xim =
330 _xcbob_create_native(conn, w, h, XCB_IMAGE_FORMAT_Z_PIXMAP,
331 depth, NULL, ~0, NULL);
332 if (!xcbob->xim)
333 {
334 free(xcbob);
335 return NULL;
336 }
337
338 xcbob->data = data;
339
340 if (!xcbob->xim->data)
341 {
342 xcbob->xim->data = malloc(xcbob->xim->stride * xcbob->xim->height);
343 if (!xcbob->xim->data)
344 {
345 xcb_image_destroy(xcbob->xim);
346 free(xcbob);
347 return NULL;
348 }
349 }
350 xcbob->bpl = xcbob->xim->stride;
351 xcbob->psize = (xcbob->bpl * xcbob->h);
352 return xcbob;
353}
354
355void
356evas_software_xcb_output_buffer_free(Xcb_Output_Buffer *xcbob, Eina_Bool sync)
357{
358 if (xcbob->shm_info)
359 {
360 if (sync) _xcbob_sync(xcbob->connection);
361 xcb_shm_detach(xcbob->connection, xcbob->shm_info->shmseg);
362 xcb_image_destroy(xcbob->xim);
363 shmdt(xcbob->shm_info->shmaddr);
364 shmctl(xcbob->shm_info->shmid, IPC_RMID, 0);
365 free(xcbob->shm_info);
366 }
367 else
368 {
369 if (xcbob->data) xcbob->xim->data = NULL;
370// free(xcbob->xim->data);
371 xcb_image_destroy(xcbob->xim);
372 }
373 free(xcbob);
374}
375
376void
377evas_software_xcb_output_buffer_paste(Xcb_Output_Buffer *xcbob, xcb_drawable_t drawable, xcb_gcontext_t gc, int x, int y, Eina_Bool sync)
378{
379 if (xcbob->shm_info)
380 {
381 xcb_image_shm_put(xcbob->connection, drawable, gc, xcbob->xim,
382 *xcbob->shm_info, 0, 0, x, y, xcbob->w, xcbob->h, 0);
383 if (sync) _xcbob_sync(xcbob->connection);
384 }
385 else
386 xcb_image_put(xcbob->connection, drawable, gc, xcbob->xim, x, y, 0);
387}
388
389DATA8 *
390evas_software_xcb_output_buffer_data(Xcb_Output_Buffer *xcbob, int *bpl_ret)
391{
392 if (bpl_ret) *bpl_ret = xcbob->xim->stride;
393 return (DATA8 *)xcbob->xim->data;
394}
395
396int
397evas_software_xcb_output_buffer_depth(Xcb_Output_Buffer *xcbob)
398{
399 return xcbob->xim->bpp;
400}
401
402int
403evas_software_xcb_output_buffer_byte_order(Xcb_Output_Buffer *xcbob)
404{
405 return xcbob->xim->byte_order;
406}
407
408int
409evas_software_xcb_output_buffer_bit_order(Xcb_Output_Buffer *xcbob)
410{
411 return xcbob->xim->bit_order;
412}
413
414/* local functions */
415static void
416_xcbob_sync(xcb_connection_t *conn)
417{
418 free(xcb_get_input_focus_reply(conn,
419 xcb_get_input_focus_unchecked(conn), NULL));
420}
421
422static xcb_image_t *
423_xcbob_create_native(xcb_connection_t *conn, int w, int h, xcb_image_format_t format, uint8_t depth, void *base, uint32_t bytes, uint8_t *data)
424{
425 static uint8_t dpth = 0;
426 static xcb_format_t *fmt = NULL;
427 const xcb_setup_t *setup;
428 xcb_image_format_t xif;
429
430 /* NB: We cannot use xcb_image_create_native as it only creates images
431 * using MSB_FIRST, so this routine recreates that function and uses
432 * the endian-ness of the server setup */
433 setup = xcb_get_setup(conn);
434 xif = format;
435
436 if ((xif == XCB_IMAGE_FORMAT_Z_PIXMAP) && (depth == 1))
437 xif = XCB_IMAGE_FORMAT_XY_PIXMAP;
438
439 if (dpth != depth)
440 {
441 dpth = depth;
442 fmt = _xcbob_find_format(setup, depth);
443 if (!fmt) return 0;
444 }
445
446 switch (xif)
447 {
448 case XCB_IMAGE_FORMAT_XY_BITMAP:
449 if (depth != 1) return 0;
450 case XCB_IMAGE_FORMAT_XY_PIXMAP:
451 case XCB_IMAGE_FORMAT_Z_PIXMAP:
452 return xcb_image_create(w, h, xif,
453 fmt->scanline_pad,
454 fmt->depth, fmt->bits_per_pixel,
455 setup->bitmap_format_scanline_unit,
456 setup->image_byte_order,
457 setup->bitmap_format_bit_order,
458 base, bytes, data);
459 default:
460 break;
461 }
462
463 return 0;
464}
465
466static xcb_format_t *
467_xcbob_find_format(const xcb_setup_t *setup, uint8_t depth)
468{
469 xcb_format_t *fmt, *fmtend;
470
471 fmt = xcb_setup_pixmap_formats(setup);
472 fmtend = fmt + xcb_setup_pixmap_formats_length(setup);
473 for (; fmt != fmtend; ++fmt)
474 if (fmt->depth == depth)
475 return fmt;
476
477 return 0;
478}
479
480static xcb_visualtype_t *
481_xcbob_find_visual_by_id(xcb_screen_t *screen, xcb_visualid_t id)
482{
483 xcb_depth_iterator_t diter;
484 xcb_visualtype_iterator_t viter;
485
486 diter = xcb_screen_allowed_depths_iterator(screen);
487 for (; diter.rem; xcb_depth_next(&diter))
488 {
489 viter = xcb_depth_visuals_iterator(diter.data);
490 for (; viter.rem; xcb_visualtype_next(&viter))
491 {
492 if (viter.data->visual_id == id)
493 return viter.data;
494 }
495 }
496
497 return 0;
498}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.h b/libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.h
deleted file mode 100644
index dc1f0b4..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_buffer.h
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifndef EVAS_XCB_BUFFER_H
2# define EVAS_XCB_BUFFER_H
3
4# include "evas_engine.h"
5
6typedef struct _Xcb_Output_Buffer Xcb_Output_Buffer;
7struct _Xcb_Output_Buffer
8{
9 xcb_connection_t *connection;
10 xcb_visualtype_t *visual;
11 xcb_image_t *xim;
12 xcb_shm_segment_info_t *shm_info;
13 unsigned char *data;
14 int w, h, bpl, psize;
15};
16
17void evas_software_xcb_write_mask_line(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y);
18void evas_software_xcb_write_mask_line_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int w, int y);
19void evas_software_xcb_write_mask_line_vert(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w);
20void evas_software_xcb_write_mask_line_vert_rev(Outbuf *buf, Xcb_Output_Buffer *xcbob, DATA32 *src, int h, int y, int w);
21Eina_Bool evas_software_xcb_can_do_shm(xcb_connection_t *conn, xcb_screen_t *screen);
22Xcb_Output_Buffer *evas_software_xcb_output_buffer_new(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, int try_shm, unsigned char *data);
23void evas_software_xcb_output_buffer_free(Xcb_Output_Buffer *xcbob, Eina_Bool sync);
24void evas_software_xcb_output_buffer_paste(Xcb_Output_Buffer *xcbob, xcb_drawable_t drawable, xcb_gcontext_t gc, int x, int y, Eina_Bool sync);
25DATA8 *evas_software_xcb_output_buffer_data(Xcb_Output_Buffer *xcbob, int *bpl_ret);
26int evas_software_xcb_output_buffer_depth(Xcb_Output_Buffer *xcbob);
27int evas_software_xcb_output_buffer_byte_order(Xcb_Output_Buffer *xcbob);
28int evas_software_xcb_output_buffer_bit_order(Xcb_Output_Buffer *xcbob);
29
30#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_color.c b/libraries/evas/src/modules/engines/software_x11/evas_xcb_color.c
deleted file mode 100644
index 3ed6037..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_color.c
+++ /dev/null
@@ -1,424 +0,0 @@
1#include "evas_common.h"
2
3#include "evas_engine.h"
4
5typedef struct _Convert_Pal_Priv Convert_Pal_Priv;
6
7struct _Convert_Pal_Priv
8{
9 xcb_connection_t *conn;
10 xcb_colormap_t cmap;
11 xcb_visualtype_t *vis;
12};
13
14typedef DATA8 * (*Xcb_Func_Alloc_Colors) (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
15
16static Xcb_Func_Alloc_Colors x_color_alloc[PAL_MODE_LAST + 1];
17static int x_color_count[PAL_MODE_LAST + 1];
18static Eina_List *palettes = NULL;
19
20static DATA8 * x_color_alloc_rgb(int nr, int ng, int nb, xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
21static DATA8 * x_color_alloc_gray(int ng, xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
22
23static DATA8 * x_color_alloc_rgb_332 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
24static DATA8 * x_color_alloc_rgb_666 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
25static DATA8 * x_color_alloc_rgb_232 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
26static DATA8 * x_color_alloc_rgb_222 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
27static DATA8 * x_color_alloc_rgb_221 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
28static DATA8 * x_color_alloc_rgb_121 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
29static DATA8 * x_color_alloc_rgb_111 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
30static DATA8 * x_color_alloc_gray_256 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
31static DATA8 * x_color_alloc_gray_64 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
32static DATA8 * x_color_alloc_gray_16 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
33static DATA8 * x_color_alloc_gray_4 (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
34static DATA8 * x_color_alloc_mono (xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *v);
35
36static DATA8 *
37x_color_alloc_rgb(int nr,
38 int ng,
39 int nb,
40 xcb_connection_t *conn,
41 xcb_colormap_t cmap,
42 xcb_visualtype_t *v)
43{
44 int r, g, b, i;
45 DATA8 *color_lut;
46 int sig_mask = 0;
47 int delt = 0;
48
49 for (i = 0; i < v->bits_per_rgb_value; i++) sig_mask |= (0x1 << i);
50 sig_mask <<= (16 - v->bits_per_rgb_value);
51 i = 0;
52 color_lut = malloc((nr) * (ng) * (nb));
53 if (!color_lut) return NULL;
54 delt = 0x0101 * 3;
55 /* FIXME: remove the round-trip ? */
56 for (r = 0; r < (nr); r++)
57 {
58 for (g = 0; g < (ng); g++)
59 {
60 for (b = 0; b < (nb); b++)
61 {
62 xcb_coloritem_t xcl;
63 xcb_coloritem_t xcl_in;
64 xcb_alloc_color_reply_t *rep;
65 int val;
66 int dr, dg, db;
67
68 val = (int)((((double)r) / ((nr) - 1)) * 255);
69 val = (val << 8) | val;
70 xcl.red = (uint16_t)(val);
71 val = (int)((((double)g) / ((ng) - 1)) * 255);
72 val = (val << 8) | val;
73 xcl.green = (uint16_t)(val);
74 val = (int)((((double)b) / ((nb) - 1)) * 255);
75 val = (val << 8) | val;
76 xcl.blue = (uint16_t)(val);
77 xcl_in = xcl;
78 rep = xcb_alloc_color_reply(conn,
79 xcb_alloc_color_unchecked(conn,
80 cmap,
81 xcl.red,
82 xcl.green,
83 xcl.blue),
84 0);
85 dr = (int)xcl_in.red - (int)xcl.red;
86 if (dr < 0) dr = -dr;
87 dg = (int)xcl_in.green - (int)xcl.green;
88 if (dg < 0) dg = -dg;
89 db = (int)xcl_in.blue - (int)xcl.blue;
90 if (db < 0) db = -db;
91/*
92 printf("ASK [%i]: %04x %04x %04x = %04x %04x %04x | dif = %04x / %04x\n",
93 ret,
94 xcl_in.red, xcl_in.green, xcl_in.blue,
95 xcl.red, xcl.green, xcl.blue,
96 (dr + dg +db), delt);
97 */
98
99 /* TODO: XAllocColor tries to approach the color */
100 /* in case the allocation fails */
101 /* XCB does not that (i think). It should be done */
102 /* So if rep == NULL, the other following tests */
103 /* should be always satisfied */
104 if ((!rep) ||
105 ((dr + dg + db) > delt)
106 /*
107 ((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
108 ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
109 ((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask))
110 */
111 )
112 {
113 uint32_t pixels[256];
114 int j;
115
116 if (i > 0)
117 {
118 for (j = 0; j < i; j++)
119 pixels[j] = (uint32_t)color_lut[j];
120 xcb_free_colors(conn, cmap, 0, i, pixels);
121 }
122 free(color_lut);
123 return NULL;
124 }
125 color_lut[i] = rep->pixel;
126 i++;
127 free(rep);
128 }
129 }
130 }
131 return color_lut;
132}
133
134static DATA8 *
135x_color_alloc_gray(int ng,
136 xcb_connection_t *conn,
137 xcb_colormap_t cmap,
138 xcb_visualtype_t *v)
139{
140 int g, i;
141 DATA8 *color_lut;
142 int sig_mask = 0;
143
144 for (i = 0; i < v->bits_per_rgb_value; i++) sig_mask |= (0x1 << i);
145 sig_mask <<= (16 - v->bits_per_rgb_value);
146 i = 0;
147 color_lut = malloc(ng);
148 if (!color_lut) return NULL;
149 /* FIXME: remove the round-trip ? */
150 for (g = 0; g < (ng); g++)
151 {
152 xcb_coloritem_t xcl;
153 xcb_coloritem_t xcl_in;
154 int val;
155 xcb_alloc_color_reply_t *rep;
156
157 val = (int)((((double)g) / ((ng) - 1)) * 255);
158 val = (val << 8) | val;
159 xcl.red = (uint16_t)(val);
160 xcl.green = (uint16_t)(val);
161 xcl.blue = (uint16_t)(val);
162 xcl_in = xcl;
163 rep = xcb_alloc_color_reply(conn,
164 xcb_alloc_color_unchecked(conn,
165 cmap,
166 xcl.red,
167 xcl.green,
168 xcl.blue),
169 0);
170 /* FIXME: XAllocColor tries to approach the color */
171 /* in case the allocation fails */
172 /* XCB does not that (i think). It should be done */
173 /* So if rep == NULL, the other following tests */
174 /* should be always satisfied */
175 if ((!rep) ||
176 ((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
177 ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
178 ((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
179 {
180 uint32_t pixels[256];
181 int j;
182
183 if (i > 0)
184 {
185 for (j = 0; j < i; j++)
186 pixels[j] = (uint32_t) color_lut[j];
187 xcb_free_colors(conn, cmap, 0, i, pixels);
188 }
189 free(color_lut);
190 return NULL;
191 }
192 color_lut[i] = rep->pixel;
193 i++;
194 free(rep);
195 }
196 return color_lut;
197}
198
199static DATA8 *
200x_color_alloc_rgb_332(xcb_connection_t *conn,
201 xcb_colormap_t cmap,
202 xcb_visualtype_t *v)
203{
204 return x_color_alloc_rgb(8, 8, 4, conn, cmap, v);
205}
206
207static DATA8 *
208x_color_alloc_rgb_666(xcb_connection_t *conn,
209 xcb_colormap_t cmap,
210 xcb_visualtype_t *v)
211{
212 return x_color_alloc_rgb(6, 6, 6, conn, cmap, v);
213}
214
215static DATA8 *
216x_color_alloc_rgb_232(xcb_connection_t *conn,
217 xcb_colormap_t cmap,
218 xcb_visualtype_t *v)
219{
220 return x_color_alloc_rgb(4, 8, 4, conn, cmap, v);
221}
222
223static DATA8 *
224x_color_alloc_rgb_222(xcb_connection_t *conn,
225 xcb_colormap_t cmap,
226 xcb_visualtype_t *v)
227{
228 return x_color_alloc_rgb(4, 4, 4, conn, cmap, v);
229}
230
231static DATA8 *
232x_color_alloc_rgb_221(xcb_connection_t *conn,
233 xcb_colormap_t cmap,
234 xcb_visualtype_t *v)
235{
236 return x_color_alloc_rgb(4, 4, 2, conn, cmap, v);
237}
238
239static DATA8 *
240x_color_alloc_rgb_121(xcb_connection_t *conn,
241 xcb_colormap_t cmap,
242 xcb_visualtype_t *v)
243{
244 return x_color_alloc_rgb(2, 4, 2, conn, cmap, v);
245}
246
247static DATA8 *
248x_color_alloc_rgb_111(xcb_connection_t *conn,
249 xcb_colormap_t cmap,
250 xcb_visualtype_t *v)
251{
252 return x_color_alloc_rgb(2, 2, 2, conn, cmap, v);
253}
254
255static DATA8 *
256x_color_alloc_gray_256(xcb_connection_t *conn,
257 xcb_colormap_t cmap,
258 xcb_visualtype_t *v)
259{
260 return x_color_alloc_gray(256, conn, cmap, v);
261}
262
263static DATA8 *
264x_color_alloc_gray_64(xcb_connection_t *conn,
265 xcb_colormap_t cmap,
266 xcb_visualtype_t *v)
267{
268 return x_color_alloc_gray(64, conn, cmap, v);
269}
270
271static DATA8 *
272x_color_alloc_gray_16(xcb_connection_t *conn,
273 xcb_colormap_t cmap,
274 xcb_visualtype_t *v)
275{
276 return x_color_alloc_gray(32, conn, cmap, v);
277}
278
279static DATA8 *
280x_color_alloc_gray_4(xcb_connection_t *conn,
281 xcb_colormap_t cmap,
282 xcb_visualtype_t *v)
283{
284 return x_color_alloc_gray(16, conn, cmap, v);
285}
286
287static DATA8 *
288x_color_alloc_mono(xcb_connection_t *conn,
289 xcb_colormap_t cmap,
290 xcb_visualtype_t *v)
291{
292 return x_color_alloc_gray(2, conn, cmap, v);
293}
294
295void
296evas_software_xcb_color_init(void)
297{
298 static int initialised = 0;
299
300 if (initialised) return;
301 x_color_alloc[PAL_MODE_NONE] = NULL;
302 x_color_count[PAL_MODE_NONE] = 0;
303
304 x_color_alloc[PAL_MODE_MONO] = x_color_alloc_mono;
305 x_color_count[PAL_MODE_MONO] = 2;
306
307 x_color_alloc[PAL_MODE_GRAY4] = x_color_alloc_gray_4;
308 x_color_count[PAL_MODE_GRAY4] = 4;
309
310 x_color_alloc[PAL_MODE_GRAY16] = x_color_alloc_gray_16;
311 x_color_count[PAL_MODE_GRAY16] = 16;
312
313 x_color_alloc[PAL_MODE_GRAY64] = x_color_alloc_gray_64;
314 x_color_count[PAL_MODE_GRAY64] = 64;
315
316 x_color_alloc[PAL_MODE_GRAY256] = x_color_alloc_gray_256;
317 x_color_count[PAL_MODE_GRAY256] = 256;
318
319 x_color_alloc[PAL_MODE_RGB111] = x_color_alloc_rgb_111;
320 x_color_count[PAL_MODE_RGB111] = 2 * 2 * 2;
321
322 x_color_alloc[PAL_MODE_RGB121] = x_color_alloc_rgb_121;
323 x_color_count[PAL_MODE_RGB121] = 2 * 4 * 2;
324
325 x_color_alloc[PAL_MODE_RGB221] = x_color_alloc_rgb_221;
326 x_color_count[PAL_MODE_RGB221] = 4 * 4 * 2;
327
328 x_color_alloc[PAL_MODE_RGB222] = x_color_alloc_rgb_222;
329 x_color_count[PAL_MODE_RGB222] = 4 * 4 * 4;
330
331 x_color_alloc[PAL_MODE_RGB232] = x_color_alloc_rgb_232;
332 x_color_count[PAL_MODE_RGB232] = 4 * 8 * 4;
333
334 x_color_alloc[PAL_MODE_RGB666] = x_color_alloc_rgb_666;
335 x_color_count[PAL_MODE_RGB666] = 6 * 6 * 6;
336
337 x_color_alloc[PAL_MODE_RGB332] = x_color_alloc_rgb_332;
338 x_color_count[PAL_MODE_RGB332] = 8 * 8 * 4;
339
340 x_color_alloc[PAL_MODE_LAST] = NULL;
341 x_color_count[PAL_MODE_LAST] = 0;
342 initialised = 1;
343}
344
345Convert_Pal *
346evas_software_xcb_color_allocate(xcb_connection_t *conn,
347 xcb_colormap_t cmap,
348 xcb_visualtype_t *vis,
349 Convert_Pal_Mode colors)
350{
351 Convert_Pal_Priv *palpriv;
352 Convert_Pal *pal;
353 Convert_Pal_Mode c;
354 Eina_List *l;
355
356/* printf("ALLOC cmap=%i vis=%p\n", cmap, vis);*/
357 EINA_LIST_FOREACH(palettes, l, pal)
358 {
359 palpriv = pal->data;
360 if ((conn == palpriv->conn) &&
361 (vis == palpriv->vis) &&
362 (cmap == palpriv->cmap))
363 {
364 pal->references++;
365 return pal;
366 }
367 }
368 pal = calloc(1, sizeof(struct _Convert_Pal));
369 if (!pal) return NULL;
370 for (c = colors; c > PAL_MODE_NONE; c--)
371 {
372 if (x_color_alloc[c])
373 {
374/* printf("TRY PAL %i\n", c);*/
375 pal->lookup = (x_color_alloc[c])(conn, cmap, vis);
376 if (pal->lookup) break;
377 }
378 }
379 pal->references = 1;
380 pal->colors = c;
381 pal->count = x_color_count[c];
382 palpriv = calloc(1, sizeof(Convert_Pal_Priv));
383 pal->data = palpriv;
384 if (!palpriv)
385 {
386 if (pal->lookup) free(pal->lookup);
387 free(pal);
388 return NULL;
389 }
390 palpriv->conn = conn;
391 palpriv->vis = vis;
392 palpriv->cmap = cmap;
393 if (pal->colors == PAL_MODE_NONE)
394 {
395 if (pal->lookup) free(pal->lookup);
396 free(pal);
397 return NULL;
398 }
399 palettes = eina_list_append(palettes, pal);
400 return pal;
401}
402
403void
404evas_software_xcb_color_deallocate(xcb_connection_t *conn,
405 xcb_colormap_t cmap,
406 xcb_visualtype_t *vis __UNUSED__,
407 Convert_Pal *pal)
408{
409 uint32_t pixels[256];
410 int j;
411
412 pal->references--;
413 if (pal->references > 0) return;
414 if (pal->lookup)
415 {
416 for(j = 0; j < pal->count; j++)
417 pixels[j] = (uint32_t) pal->lookup[j];
418 xcb_free_colors(conn, cmap, 0, pal->count, pixels);
419 free(pal->lookup);
420 }
421 free(pal->data);
422 palettes = eina_list_remove(palettes, pal);
423 free(pal);
424}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_color.h b/libraries/evas/src/modules/engines/software_x11/evas_xcb_color.h
deleted file mode 100644
index 7dcaeaf..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_color.h
+++ /dev/null
@@ -1,10 +0,0 @@
1#ifndef EVAS_XCB_COLOR_H
2# define EVAS_XCB_COLOR_H
3
4# include "evas_engine.h"
5
6void evas_software_xcb_color_init(void);
7Convert_Pal *evas_software_xcb_color_allocate(xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *vis, Convert_Pal_Mode colors);
8void evas_software_xcb_color_deallocate(xcb_connection_t *conn, xcb_colormap_t cmap, xcb_visualtype_t *vis, Convert_Pal *pal);
9
10#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_main.c b/libraries/evas/src/modules/engines/software_x11/evas_xcb_main.c
deleted file mode 100644
index d187016..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_main.c
+++ /dev/null
@@ -1,8 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4void
5evas_software_xcb_init(void)
6{
7
8}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.c b/libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.c
deleted file mode 100644
index 71759be..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.c
+++ /dev/null
@@ -1,1092 +0,0 @@
1#include "evas_common.h"
2#include "evas_macros.h"
3#include "evas_xcb_outbuf.h"
4#include "evas_xcb_buffer.h"
5#include "evas_xcb_color.h"
6#include <pixman.h>
7
8/* local structures */
9typedef struct _Outbuf_Region Outbuf_Region;
10struct _Outbuf_Region
11{
12 Xcb_Output_Buffer *xcbob, *mask;
13 int x, y, w, h;
14};
15
16/* local function prototypes */
17static Xcb_Output_Buffer *_find_xcbob(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, Eina_Bool shm, void *data);
18static void _unfind_xcbob(Xcb_Output_Buffer *xcbob, Eina_Bool sync);
19static void _clear_xcbob(Eina_Bool sync);
20static void _xcbob_sync(xcb_connection_t *conn);
21
22/* local variables */
23static Eina_List *_shmpool = NULL;
24static int _shmsize = 0;
25static int _shmlimit = (10 * 1024 * 1024);
26static const unsigned int _shmcountlimit = 32;
27
28#ifdef EVAS_FRAME_QUEUING
29static LK(lock_shmpool);
30# define SHMPOOL_LOCK() LKL(lock_shmpool);
31# define SHMPOOL_UNLOCK() LKU(lock_shmpool);
32#else
33# define SHMPOOL_LOCK()
34# define SHMPOOL_UNLOCK()
35#endif
36
37void
38evas_software_xcb_outbuf_init(void)
39{
40#ifdef EVAS_FRAME_QUEUING
41 LKI(lock_shmpool);
42#endif
43}
44
45void
46evas_software_xcb_outbuf_free(Outbuf *buf)
47{
48#ifdef EVAS_FRAME_QUEUING
49 LKL(buf->priv.lock);
50#endif
51 while (buf->priv.pending_writes)
52 {
53 RGBA_Image *im = NULL;
54 Outbuf_Region *obr = NULL;
55
56 im = buf->priv.pending_writes->data;
57 buf->priv.pending_writes =
58 eina_list_remove_list(buf->priv.pending_writes,
59 buf->priv.pending_writes);
60 obr = im->extended_info;
61 evas_cache_image_drop(&im->cache_entry);
62 if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
63 if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
64 free(obr);
65 }
66#ifdef EVAS_FRAME_QUEUING
67 LKU(buf->priv.lock);
68#endif
69 evas_software_xcb_outbuf_idle_flush(buf);
70 evas_software_xcb_outbuf_flush(buf);
71 if (buf->priv.x11.xcb.gc)
72 xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc);
73 if (buf->priv.x11.xcb.gcm)
74 xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gcm);
75 if (buf->priv.pal)
76 evas_software_xcb_color_deallocate(buf->priv.x11.xcb.conn,
77 buf->priv.x11.xcb.cmap,
78 buf->priv.x11.xcb.visual,
79 buf->priv.pal);
80#ifdef EVAS_FRAME_QUEUING
81 LKD(buf->priv.lock);
82#endif
83 free(buf);
84 _clear_xcbob(EINA_FALSE);
85}
86
87Outbuf *
88evas_software_xcb_outbuf_setup(int w, int h, int rot, Outbuf_Depth depth, xcb_connection_t *conn, xcb_screen_t *screen, xcb_drawable_t draw, xcb_visualtype_t *vis, xcb_colormap_t cmap, int xdepth, Eina_Bool grayscale, int max_colors, xcb_drawable_t mask, Eina_Bool shape_dither, Eina_Bool alpha)
89{
90 Outbuf *buf = NULL;
91 Gfx_Func_Convert func_conv= NULL;
92 const xcb_setup_t *setup;
93
94 if (!(buf = calloc(1, sizeof(Outbuf))))
95 return NULL;
96
97 setup = xcb_get_setup(conn);
98
99 buf->w = w;
100 buf->h = h;
101 buf->depth = depth;
102 buf->rot = rot;
103 buf->priv.x11.xcb.conn = conn;
104 buf->priv.x11.xcb.screen = screen;
105 buf->priv.x11.xcb.visual = vis;
106 buf->priv.x11.xcb.cmap = cmap;
107 buf->priv.x11.xcb.depth = xdepth;
108 buf->priv.mask_dither = shape_dither;
109 buf->priv.destination_alpha = alpha;
110 buf->priv.x11.xcb.shm = evas_software_xcb_can_do_shm(conn, screen);
111
112#ifdef WORDS_BIGENDIAN
113 if (setup->image_byte_order == XCB_IMAGE_ORDER_LSB_FIRST)
114 buf->priv.x11.xcb.swap = EINA_TRUE;
115#else
116 if (setup->image_byte_order == XCB_IMAGE_ORDER_MSB_FIRST)
117 buf->priv.x11.xcb.swap = EINA_TRUE;
118#endif
119 if (setup->bitmap_format_bit_order == XCB_IMAGE_ORDER_MSB_FIRST)
120 buf->priv.x11.xcb.bit_swap = EINA_TRUE;
121
122 if (((vis->_class == XCB_VISUAL_CLASS_TRUE_COLOR) ||
123 (vis->_class == XCB_VISUAL_CLASS_DIRECT_COLOR)) && (xdepth > 8))
124 {
125 buf->priv.mask.r = (DATA32)vis->red_mask;
126 buf->priv.mask.g = (DATA32)vis->green_mask;
127 buf->priv.mask.b = (DATA32)vis->blue_mask;
128 if (buf->priv.x11.xcb.swap)
129 {
130 SWAP32(buf->priv.mask.r);
131 SWAP32(buf->priv.mask.g);
132 SWAP32(buf->priv.mask.b);
133 }
134 }
135 else if ((vis->_class == XCB_VISUAL_CLASS_PSEUDO_COLOR) ||
136 (vis->_class == XCB_VISUAL_CLASS_STATIC_COLOR) ||
137 (vis->_class == XCB_VISUAL_CLASS_GRAY_SCALE) ||
138 (vis->_class == XCB_VISUAL_CLASS_STATIC_GRAY) ||
139 (xdepth <= 8))
140 {
141 Convert_Pal_Mode pm = PAL_MODE_RGB332;
142
143 if ((vis->_class == XCB_VISUAL_CLASS_GRAY_SCALE) ||
144 (vis->_class == XCB_VISUAL_CLASS_STATIC_GRAY))
145 grayscale = EINA_TRUE;
146 if (grayscale)
147 {
148 if (max_colors >= 256)
149 pm = PAL_MODE_GRAY256;
150 else if (max_colors >= 64)
151 pm = PAL_MODE_GRAY64;
152 else if (max_colors >= 16)
153 pm = PAL_MODE_GRAY16;
154 else if (max_colors >= 4)
155 pm = PAL_MODE_GRAY4;
156 else
157 pm = PAL_MODE_MONO;
158 }
159 else
160 {
161 if (max_colors >= 256)
162 pm = PAL_MODE_RGB332;
163 else if (max_colors >= 216)
164 pm = PAL_MODE_RGB666;
165 else if (max_colors >= 128)
166 pm = PAL_MODE_RGB232;
167 else if (max_colors >= 64)
168 pm = PAL_MODE_RGB222;
169 else if (max_colors >= 32)
170 pm = PAL_MODE_RGB221;
171 else if (max_colors >= 16)
172 pm = PAL_MODE_RGB121;
173 else if (max_colors >= 8)
174 pm = PAL_MODE_RGB111;
175 else if (max_colors >= 4)
176 pm = PAL_MODE_GRAY4;
177 else
178 pm = PAL_MODE_MONO;
179 }
180 /* FIXME: Only allocate once per display & colormap */
181 buf->priv.pal =
182 evas_software_xcb_color_allocate(conn, cmap, vis, pm);
183 if (!buf->priv.pal)
184 {
185 free(buf);
186 return NULL;
187 }
188 }
189 if ((buf->rot == 0) || (buf->rot == 180))
190 {
191 w = buf->w;
192 h = buf->h;
193 }
194 else if ((buf->rot == 90) || (buf->rot == 270))
195 {
196 w = buf->h;
197 h = buf->w;
198 }
199
200 if (buf->priv.pal)
201 {
202 func_conv =
203 evas_common_convert_func_get(0, w, h, xdepth,
204 buf->priv.mask.r,
205 buf->priv.mask.g,
206 buf->priv.mask.b,
207 buf->priv.pal->colors, buf->rot);
208 }
209 else
210 {
211 func_conv =
212 evas_common_convert_func_get(0, w, h, xdepth,
213 buf->priv.mask.r,
214 buf->priv.mask.g,
215 buf->priv.mask.b,
216 PAL_MODE_NONE, buf->rot);
217 }
218 if (!func_conv)
219 {
220 ERR("XCB Engine"
221 " {"
222 " At depth %i:"
223 " RGB format mask: %08x, %08x, %08x"
224 " Palette mode: %i"
225 " Not supported by any compiled in converters!"
226 " }", buf->priv.x11.xcb.depth, buf->priv.mask.r,
227 buf->priv.mask.g, buf->priv.mask.b,
228 buf->priv.pal ? (int)buf->priv.pal->colors : -1);
229 }
230
231 evas_software_xcb_outbuf_drawable_set(buf, draw);
232 evas_software_xcb_outbuf_mask_set(buf, mask);
233
234#ifdef EVAS_FRAME_QUEUING
235 LKI(buf->priv.lock);
236#endif
237
238 return buf;
239}
240
241RGBA_Image *
242evas_software_xcb_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
243{
244 RGBA_Image *im = NULL;
245 Outbuf_Region *obr = NULL;
246 Eina_Bool use_shm = EINA_TRUE;
247 Eina_Bool alpha = EINA_FALSE;
248 int bpl = 0;
249
250 if ((buf->onebuf) && (buf->priv.x11.xcb.shm))
251 {
252 Eina_Rectangle *rect;
253
254 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, buf->w, buf->h);
255
256 if (!(obr = calloc(1, sizeof(Outbuf_Region))))
257 return NULL;
258
259 if (!(rect = eina_rectangle_new(x, y, w, h)))
260 {
261 free(obr);
262 return NULL;
263 }
264
265 buf->priv.onebuf_regions =
266 eina_list_append(buf->priv.onebuf_regions, rect);
267 if (buf->priv.onebuf)
268 {
269 if (cx) *cx = x;
270 if (cy) *cy = y;
271 if (cw) *cw = w;
272 if (ch) *ch = h;
273 if (!buf->priv.synced)
274 {
275 _xcbob_sync(buf->priv.x11.xcb.conn);
276 buf->priv.synced = EINA_TRUE;
277 }
278 return buf->priv.onebuf;
279 }
280 obr->x = 0;
281 obr->y = 0;
282 obr->w = buf->w;
283 obr->h = buf->h;
284 if (cx) *cx = x;
285 if (cy) *cy = y;
286 if (cw) *cw = w;
287 if (ch) *ch = h;
288
289 alpha = ((buf->priv.x11.xcb.mask) || (buf->priv.destination_alpha));
290 use_shm = buf->priv.x11.xcb.shm;
291
292 if ((buf->rot == 0) && (buf->priv.mask.r == 0xff0000) &&
293 (buf->priv.mask.g == 0x00ff00) && (buf->priv.mask.b == 0x0000ff))
294 {
295 obr->xcbob =
296 evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn,
297 buf->priv.x11.xcb.visual,
298 buf->priv.x11.xcb.depth,
299 buf->w, buf->h, use_shm,
300 NULL);
301 if (!obr->xcbob)
302 {
303 free(obr);
304 return NULL;
305 }
306 im =
307 (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
308 buf->w, buf->h,
309 (DATA32 *)evas_software_xcb_output_buffer_data(obr->xcbob, &bpl),
310 alpha, EVAS_COLORSPACE_ARGB8888);
311 if (!im)
312 {
313 evas_software_xcb_output_buffer_free(obr->xcbob, EINA_FALSE);
314 free(obr);
315 return NULL;
316 }
317 im->extended_info = obr;
318 if (buf->priv.x11.xcb.mask)
319 {
320 obr->mask =
321 evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn,
322 buf->priv.x11.xcb.visual,
323 1, buf->w, buf->h,
324 use_shm, NULL);
325 }
326 }
327 else
328 {
329 int bw = 0, bh = 0;
330
331 im =
332 (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
333 if (!im)
334 {
335 free(obr);
336 return NULL;
337 }
338 im->cache_entry.flags.alpha |= (alpha ? 1 : 0);
339 evas_cache_image_surface_alloc(&im->cache_entry, buf->w, buf->h);
340 im->extended_info = obr;
341 if ((buf->rot == 0) || (buf->rot == 180))
342 {
343 bw = buf->w;
344 bh = buf->h;
345 }
346 else if ((buf->rot == 90) || (buf->rot == 270))
347 {
348 bw = buf->h;
349 bh = buf->w;
350 }
351 obr->xcbob =
352 evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn,
353 buf->priv.x11.xcb.visual,
354 buf->priv.x11.xcb.depth,
355 bw, bh, use_shm, NULL);
356 if (!obr->xcbob)
357 {
358 evas_cache_image_drop(&im->cache_entry);
359 free(obr);
360 return NULL;
361 }
362 if (buf->priv.x11.xcb.mask)
363 {
364 obr->mask =
365 evas_software_xcb_output_buffer_new(buf->priv.x11.xcb.conn,
366 buf->priv.x11.xcb.visual,
367 1, bw, bh, use_shm,
368 NULL);
369 }
370 }
371 /* FIXME: We should be able to remove this memset. */
372 if ((alpha) && (im->image.data))
373 {
374 /* FIXME: Faster memset */
375// memset(im->image.data, 0, (w * h * sizeof(DATA32)));
376 }
377 buf->priv.onebuf = im;
378 return im;
379 }
380
381 if (!(obr = calloc(1, sizeof(Outbuf_Region))))
382 return NULL;
383
384 obr->x = x;
385 obr->y = y;
386 obr->w = w;
387 obr->h = h;
388 if (cx) *cx = 0;
389 if (cy) *cy = 0;
390 if (cw) *cw = w;
391 if (ch) *ch = h;
392
393 use_shm = buf->priv.x11.xcb.shm;
394 alpha = ((buf->priv.x11.xcb.mask) || (buf->priv.destination_alpha));
395 if ((buf->rot == 0) && (buf->priv.mask.r == 0xff0000) &&
396 (buf->priv.mask.g == 0x00ff00) && (buf->priv.mask.b == 0x0000ff))
397 {
398 obr->xcbob =
399 _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual,
400 buf->priv.x11.xcb.depth, w, h, use_shm, NULL);
401 if (!obr->xcbob)
402 {
403 free(obr);
404 return NULL;
405 }
406 im =
407 (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
408 w, h,
409 (DATA32 *)evas_software_xcb_output_buffer_data(obr->xcbob, &bpl),
410 alpha, EVAS_COLORSPACE_ARGB8888);
411 if (!im)
412 {
413 _unfind_xcbob(obr->xcbob, EINA_FALSE);
414 free(obr);
415 return NULL;
416 }
417 im->extended_info = obr;
418 if (buf->priv.x11.xcb.mask)
419 {
420 obr->mask =
421 _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual,
422 1, w, h, use_shm, NULL);
423 }
424 }
425 else
426 {
427 int bw = 0, bh = 0;
428
429 im =
430 (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
431 if (!im)
432 {
433 free(obr);
434 return NULL;
435 }
436 im->cache_entry.flags.alpha |= (alpha ? 1 : 0);
437 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
438 im->extended_info = obr;
439 if ((buf->rot == 0) || (buf->rot == 180))
440 {
441 bw = w;
442 bh = h;
443 }
444 else if ((buf->rot == 90) || (buf->rot == 270))
445 {
446 bw = h;
447 bh = w;
448 }
449 obr->xcbob =
450 _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual,
451 buf->priv.x11.xcb.depth, bw, bh, use_shm, NULL);
452 if (!obr->xcbob)
453 {
454 evas_cache_image_drop(&im->cache_entry);
455 free(obr);
456 return NULL;
457 }
458 if (buf->priv.x11.xcb.mask)
459 {
460 obr->mask =
461 _find_xcbob(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.visual, 1,
462 bw, bh, use_shm, NULL);
463 }
464 }
465 /* FIXME: We should be able to remove this memset. */
466 if (((buf->priv.x11.xcb.mask) || (buf->priv.destination_alpha)) &&
467 (im->image.data))
468 {
469 /* FIXME: Faster memset */
470// memset(im->image.data, 0, (w * h * sizeof(DATA32)));
471 }
472
473#ifdef EVAS_FRAME_QUEUING
474 if (!evas_common_frameq_enabled())
475#endif
476 buf->priv.pending_writes = eina_list_append(buf->priv.pending_writes, im);
477
478 return im;
479}
480
481void
482evas_software_xcb_outbuf_free_region_for_update(Outbuf *buf __UNUSED__, RGBA_Image *update __UNUSED__)
483{
484 /* NOOP: Cleaned up on flush */
485}
486
487void
488evas_software_xcb_outbuf_flush(Outbuf *buf)
489{
490 Eina_List *l = NULL;
491 RGBA_Image *im = NULL;
492 Outbuf_Region *obr = NULL;
493
494 if ((buf->priv.onebuf) && (buf->priv.onebuf_regions))
495 {
496 pixman_region16_t tmpr;
497
498 im = buf->priv.onebuf;
499 obr = im->extended_info;
500 pixman_region_init(&tmpr);
501 while (buf->priv.onebuf_regions)
502 {
503 Eina_Rectangle *rect, xr = { 0, 0, 0, 0 };
504
505 rect = buf->priv.onebuf_regions->data;
506 buf->priv.onebuf_regions =
507 eina_list_remove_list(buf->priv.onebuf_regions,
508 buf->priv.onebuf_regions);
509 if (buf->rot == 0)
510 {
511 xr.x = rect->x;
512 xr.y = rect->y;
513 xr.w = rect->w;
514 xr.h = rect->h;
515 }
516 else if (buf->rot == 90)
517 {
518 xr.x = rect->y;
519 xr.y = buf->w - rect->x - rect->w;
520 xr.w = rect->h;
521 xr.h = rect->w;
522 }
523 else if (buf->rot == 180)
524 {
525 xr.x = buf->w - rect->x - rect->w;
526 xr.y = buf->h - rect->y - rect->h;
527 xr.w = rect->w;
528 xr.h = rect->h;
529 }
530 else if (buf->rot == 270)
531 {
532 xr.x = buf->h - rect->y - rect->h;
533 xr.y = rect->x;
534 xr.w = rect->h;
535 xr.h = rect->w;
536 }
537 pixman_region_union_rect(&tmpr, &tmpr, xr.x, xr.y, xr.w, xr.h);
538 if (buf->priv.debug)
539 evas_software_xcb_outbuf_debug_show(buf, buf->priv.x11.xcb.win,
540 xr.x, xr.y, xr.w, xr.h);
541 eina_rectangle_free(rect);
542 }
543 xcb_set_clip_rectangles(buf->priv.x11.xcb.conn,
544 XCB_CLIP_ORDERING_YX_BANDED,
545 buf->priv.x11.xcb.gc, 0, 0,
546 pixman_region_n_rects(&tmpr),
547 (const xcb_rectangle_t *)pixman_region_rectangles(&tmpr, NULL));
548 if (obr->xcbob)
549 evas_software_xcb_output_buffer_paste(obr->xcbob,
550 buf->priv.x11.xcb.win,
551 buf->priv.x11.xcb.gc, 0, 0, 0);
552 if (obr->mask)
553 {
554 xcb_set_clip_rectangles(buf->priv.x11.xcb.conn,
555 XCB_CLIP_ORDERING_YX_BANDED,
556 buf->priv.x11.xcb.gcm, 0, 0,
557 pixman_region_n_rects(&tmpr),
558 (const xcb_rectangle_t *)pixman_region_rectangles(&tmpr, NULL));
559 evas_software_xcb_output_buffer_paste(obr->mask,
560 buf->priv.x11.xcb.mask,
561 buf->priv.x11.xcb.gcm,
562 0, 0, 0);
563 }
564 pixman_region_fini(&tmpr);
565 buf->priv.synced = EINA_FALSE;
566 }
567 else
568 {
569#if 1
570 _xcbob_sync(buf->priv.x11.xcb.conn);
571 EINA_LIST_FOREACH(buf->priv.pending_writes, l, im)
572 {
573 obr = im->extended_info;
574 if (buf->priv.debug)
575 evas_software_xcb_outbuf_debug_show(buf, buf->priv.x11.xcb.win,
576 obr->x, obr->y, obr->w, obr->h);
577 if (obr->xcbob)
578 evas_software_xcb_output_buffer_paste(obr->xcbob,
579 buf->priv.x11.xcb.win,
580 buf->priv.x11.xcb.gc,
581 obr->x, obr->y, 0);
582 if (obr->mask)
583 evas_software_xcb_output_buffer_paste(obr->mask,
584 buf->priv.x11.xcb.mask,
585 buf->priv.x11.xcb.gcm,
586 obr->x, obr->y, 0);
587 }
588# ifdef EVAS_FRAME_QUEUING
589 LKL(buf->priv.lock);
590# endif
591 while (buf->priv.prev_pending_writes)
592 {
593 im = buf->priv.prev_pending_writes->data;
594 buf->priv.prev_pending_writes =
595 eina_list_remove_list(buf->priv.prev_pending_writes,
596 buf->priv.prev_pending_writes);
597 obr = im->extended_info;
598 evas_cache_image_drop(&im->cache_entry);
599 if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
600 if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
601 free(obr);
602 }
603 buf->priv.prev_pending_writes = buf->priv.pending_writes;
604# ifdef EVAS_FRAME_QUEUING
605 LKU(buf->priv.lock);
606# endif
607 buf->priv.pending_writes = NULL;
608 xcb_flush(buf->priv.x11.xcb.conn);
609#else
610 /* FIXME: Async Push Disabled */
611
612 _xcbob_sync(buf->priv.x11.xcb.conn);
613 while (buf->priv.pending_writes)
614 {
615 im = eina_list_data_get(buf->priv.pending_writes);
616 buf->priv.pending_writes =
617 eina_list_remove_list(buf->priv.pending_writes,
618 buf->priv.pending_writes);
619 obr = im->extended_info;
620 evas_cache_image_drop(&im->cache_entry);
621 if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
622 if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
623 free(obr);
624 evas_cache_image_drop(&im->cache_entry);
625 }
626#endif
627 }
628 evas_common_cpu_end_opt();
629}
630
631void
632evas_software_xcb_outbuf_idle_flush(Outbuf *buf)
633{
634 if (buf->priv.onebuf)
635 {
636 RGBA_Image *im;
637 Outbuf_Region *obr;
638
639 im = buf->priv.onebuf;
640 buf->priv.onebuf = NULL;
641 obr = im->extended_info;
642 if (obr->xcbob)
643 evas_software_xcb_output_buffer_free(obr->xcbob, EINA_FALSE);
644 if (obr->mask)
645 evas_software_xcb_output_buffer_free(obr->mask, EINA_FALSE);
646 free(obr);
647 evas_cache_image_drop(&im->cache_entry);
648 }
649 else
650 {
651#ifdef EVAS_FRAME_QUEUING
652 LKL(buf->priv.lock);
653#endif
654 if (buf->priv.prev_pending_writes)
655 _xcbob_sync(buf->priv.x11.xcb.conn);
656 while (buf->priv.prev_pending_writes)
657 {
658 RGBA_Image *im;
659 Outbuf_Region *obr;
660
661 im = buf->priv.prev_pending_writes->data;
662 buf->priv.prev_pending_writes =
663 eina_list_remove_list(buf->priv.prev_pending_writes,
664 buf->priv.prev_pending_writes);
665 obr = im->extended_info;
666 evas_cache_image_drop(&im->cache_entry);
667 if (obr->xcbob) _unfind_xcbob(obr->xcbob, EINA_FALSE);
668 if (obr->mask) _unfind_xcbob(obr->mask, EINA_FALSE);
669 free(obr);
670 }
671#ifdef EVAS_FRAME_QUEUING
672 LKU(buf->priv.lock);
673#endif
674 _clear_xcbob(EINA_FALSE);
675 }
676}
677
678void
679evas_software_xcb_outbuf_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h)
680{
681 Gfx_Func_Convert func_conv = NULL;
682 Outbuf_Region *obr = NULL;
683 DATA32 *src_data = NULL;
684 unsigned char *data = NULL;
685 int bpl = 0, yy = 0;
686 int bw = 0, bh = 0;
687
688 obr = update->extended_info;
689 if (!obr->xcbob) return;
690
691 if ((buf->rot == 0) || (buf->rot == 180))
692 {
693 bw = w;
694 bh = h;
695 }
696 else if ((buf->rot == 90) || (buf->rot == 270))
697 {
698 bw = h;
699 bh = w;
700 }
701 if (buf->priv.pal)
702 {
703 func_conv =
704 evas_common_convert_func_get(0, bw, bh, buf->depth, buf->priv.mask.r,
705 buf->priv.mask.g, buf->priv.mask.b,
706 buf->priv.pal->colors, buf->rot);
707 }
708 else
709 {
710 func_conv =
711 evas_common_convert_func_get(0, bw, bh, buf->depth, buf->priv.mask.r,
712 buf->priv.mask.g, buf->priv.mask.b,
713 PAL_MODE_NONE, buf->rot);
714 }
715 if (!func_conv) return;
716
717 if (!(data = evas_software_xcb_output_buffer_data(obr->xcbob, &bpl)))
718 return;
719 if (!(src_data = update->image.data)) return;
720 if (buf->rot == 0)
721 {
722 obr->x = x;
723 obr->y = y;
724 obr->w = w;
725 obr->h = h;
726 }
727 else if (buf->rot == 90)
728 {
729 obr->x = y;
730 obr->y = (buf->w - x - w);
731 obr->w = h;
732 obr->h = w;
733 }
734 else if (buf->rot == 180)
735 {
736 obr->x = (buf->w - x - w);
737 obr->y = (buf->h - y - h);
738 obr->w = w;
739 obr->h = h;
740 }
741 else if (buf->rot == 270)
742 {
743 obr->x = (buf->h - y - h);
744 obr->y = x;
745 obr->w = h;
746 obr->h = w;
747 }
748 if (buf->onebuf)
749 {
750 src_data += x + (y * update->cache_entry.w);
751 data += (bpl * obr->y) + (obr->x * (buf->depth / 8));
752 }
753 if (data != (unsigned char *)src_data)
754 {
755 if (buf->priv.pal)
756 func_conv(src_data, data, update->cache_entry.w - w,
757 (bpl / (buf->depth / 8)) - obr->w,
758 obr->w, obr->h, x, y, buf->priv.pal->lookup);
759 else
760 func_conv(src_data, data, update->cache_entry.w - w,
761 (bpl / (buf->depth / 8)) - obr->w,
762 obr->w, obr->h, x, y, NULL);
763 }
764#if 1
765#else
766 /* Async Push */
767 if (!((buf->priv.onebuf) && (buf->priv.onebuf_regions)))
768 {
769 if (buf->priv.debug)
770 evas_software_xcb_outbuf_debug_show(buf, buf->priv.x11.xcb.win,
771 obr->x, obr->y, obr->w, obr->h);
772 if (obr->xcbob)
773 evas_software_xcb_output_buffer_paste(obr->xcbob,
774 buf->priv.x11.xcb.win,
775 buf->priv.x11.xcb.gc,
776 obr->x, obr->y, 0);
777 }
778#endif
779 if (obr->mask)
780 {
781 if (buf->rot == 0)
782 {
783 for (yy = 0; yy < obr->h; yy++)
784 evas_software_xcb_write_mask_line(buf, obr->mask,
785 src_data + (yy * obr->w),
786 obr->w, yy);
787 }
788 else if (buf->rot == 90)
789 {
790 for (yy = 0; yy < obr->h; yy++)
791 evas_software_xcb_write_mask_line_vert(buf, obr->mask,
792 src_data + yy,
793 h, (obr->h - yy - 1), w);
794 }
795 else if (buf->rot == 180)
796 {
797 for (yy = 0; yy < obr->h; yy++)
798 evas_software_xcb_write_mask_line_rev(buf, obr->mask,
799 src_data + (yy * obr->w),
800 obr->w, (obr->h - yy - 1));
801 }
802 else if (buf->rot == 270)
803 {
804 for (yy = 0; yy < obr->h; yy++)
805 evas_software_xcb_write_mask_line_vert_rev(buf, obr->mask,
806 src_data + yy,
807 h, yy, w);
808 }
809#if 1
810#else
811 /* Async Push */
812 if (!((buf->priv.onebuf) && (buf->priv.onebuf_regions)))
813 evas_software_xcb_output_buffer_paste(obr->mask,
814 buf->priv.x11.xcb.mask,
815 buf->priv.x11.xcb.gcm,
816 obr->x, obr->y, 0);
817#endif
818 }
819#if 1
820#else
821 xcb_flush(buf->priv.x11.xcb.conn);
822#endif
823}
824
825void
826evas_software_xcb_outbuf_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth)
827{
828 if ((w == buf->w) && (h == buf->h) && (rot == buf->rot) &&
829 (depth == buf->depth)) return;
830 buf->w = w;
831 buf->h = h;
832 buf->rot = rot;
833 evas_software_xcb_outbuf_idle_flush(buf);
834}
835
836int
837evas_software_xcb_outbuf_width_get(Outbuf *buf)
838{
839 return buf->w;
840}
841
842int
843evas_software_xcb_outbuf_height_get(Outbuf *buf)
844{
845 return buf->h;
846}
847
848Outbuf_Depth
849evas_software_xcb_outbuf_depth_get(Outbuf *buf)
850{
851 return buf->depth;
852}
853
854void
855evas_software_xcb_outbuf_drawable_set(Outbuf *buf, xcb_drawable_t drawable)
856{
857 if (buf->priv.x11.xcb.win == drawable) return;
858 if (buf->priv.x11.xcb.gc)
859 {
860 xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc);
861 buf->priv.x11.xcb.gc = 0;
862 }
863 buf->priv.x11.xcb.win = drawable;
864 buf->priv.x11.xcb.gc = xcb_generate_id(buf->priv.x11.xcb.conn);
865 xcb_create_gc(buf->priv.x11.xcb.conn,
866 buf->priv.x11.xcb.gc, buf->priv.x11.xcb.win, 0, NULL);
867}
868
869void
870evas_software_xcb_outbuf_mask_set(Outbuf *buf, xcb_drawable_t mask)
871{
872 if (buf->priv.x11.xcb.mask == mask) return;
873 if (buf->priv.x11.xcb.gcm)
874 {
875 xcb_free_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gcm);
876 buf->priv.x11.xcb.gcm = 0;
877 }
878 buf->priv.x11.xcb.mask = mask;
879 if (buf->priv.x11.xcb.mask)
880 {
881 buf->priv.x11.xcb.gcm = xcb_generate_id(buf->priv.x11.xcb.conn);
882 xcb_create_gc(buf->priv.x11.xcb.conn,
883 buf->priv.x11.xcb.gcm, buf->priv.x11.xcb.mask, 0, NULL);
884 }
885}
886
887int
888evas_software_xcb_outbuf_rotation_get(Outbuf *buf)
889{
890 return buf->rot;
891}
892
893void
894evas_software_xcb_outbuf_rotation_set(Outbuf *buf, int rotation)
895{
896 buf->rot = rotation;
897}
898
899Eina_Bool
900evas_software_xcb_outbuf_alpha_get(Outbuf *buf)
901{
902 return buf->priv.x11.xcb.mask;
903}
904
905void
906evas_software_xcb_outbuf_debug_set(Outbuf *buf, Eina_Bool debug)
907{
908 buf->priv.debug = debug;
909}
910
911void
912evas_software_xcb_outbuf_debug_show(Outbuf *buf, xcb_drawable_t drawable, int x, int y, int w, int h)
913{
914 int i;
915 xcb_screen_t *screen = NULL;
916 xcb_get_geometry_reply_t *geom;
917 xcb_drawable_t root;
918 xcb_screen_iterator_t si;
919
920 geom =
921 xcb_get_geometry_reply(buf->priv.x11.xcb.conn,
922 xcb_get_geometry_unchecked(buf->priv.x11.xcb.conn,
923 drawable), 0);
924 root = geom->root;
925 free(geom);
926 geom =
927 xcb_get_geometry_reply(buf->priv.x11.xcb.conn,
928 xcb_get_geometry_unchecked(buf->priv.x11.xcb.conn,
929 root), 0);
930
931 si = xcb_setup_roots_iterator((xcb_setup_t *)xcb_get_setup(buf->priv.x11.xcb.conn));
932 for (; si.rem; xcb_screen_next(&si))
933 {
934 if (si.data->root == geom->root)
935 {
936 screen = si.data;
937 break;
938 }
939 }
940 free(geom);
941
942 for (i = 0; i < 20; i++)
943 {
944 xcb_rectangle_t rect = { x, y, w, h};
945 uint32_t mask;
946 uint32_t value[2];
947
948 mask = XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES;
949 value[0] = screen->black_pixel;
950 value[1] = XCB_EXPOSURES_NOT_ALLOWED;
951 xcb_change_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc,
952 mask, value);
953 xcb_poly_fill_rectangle(buf->priv.x11.xcb.conn, drawable,
954 buf->priv.x11.xcb.gc, 1, &rect);
955 _xcbob_sync(buf->priv.x11.xcb.conn);
956 _xcbob_sync(buf->priv.x11.xcb.conn);
957
958 mask = XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES;
959 value[0] = screen->white_pixel;
960 value[1] = XCB_EXPOSURES_NOT_ALLOWED;
961 xcb_change_gc(buf->priv.x11.xcb.conn, buf->priv.x11.xcb.gc,
962 mask, value);
963 xcb_poly_fill_rectangle(buf->priv.x11.xcb.conn, drawable,
964 buf->priv.x11.xcb.gc, 1, &rect);
965 _xcbob_sync(buf->priv.x11.xcb.conn);
966 _xcbob_sync(buf->priv.x11.xcb.conn);
967 }
968}
969
970#ifdef EVAS_FRAME_QUEUING
971void
972evas_software_xcb_outbuf_priv_set(Outbuf *buf, void *cur, void *prev __UNUSED__)
973{
974 buf->priv.pending_writes = (Eina_List *)cur;
975}
976#endif
977
978/* local functions */
979static Xcb_Output_Buffer *
980_find_xcbob(xcb_connection_t *conn, xcb_visualtype_t *vis, int depth, int w, int h, Eina_Bool shm, void *data)
981{
982 Eina_List *l = NULL, *xl = NULL;
983 Xcb_Output_Buffer *xcbob = NULL, *xcbob2 = NULL;
984 int lbytes = 0, bpp = 0, sz = 0;
985 int fitness = 0x7fffffff;
986
987 if (!shm)
988 return evas_software_xcb_output_buffer_new(conn, vis, depth, w, h,
989 shm, data);
990
991 lbytes = (((w + 31) / 32) * 4);
992 if (depth > 1)
993 {
994 bpp = (depth / 8);
995 if (bpp == 3) bpp = 4;
996 lbytes = ((((w * bpp) + 3) / 4) * 4);
997 }
998
999 sz = (lbytes * h);
1000 SHMPOOL_LOCK();
1001 EINA_LIST_FOREACH(_shmpool, l, xcbob2)
1002 {
1003 int szdif = 0;
1004
1005 if ((xcbob2->xim->depth != depth) || (xcbob2->visual != vis) ||
1006 (xcbob2->connection != conn)) continue;
1007 szdif = (xcbob2->psize - sz);
1008 if (szdif < 0) continue;
1009 if (szdif == 0)
1010 {
1011 xcbob = xcbob2;
1012 xl = l;
1013 goto have_xcbob;
1014 }
1015 if (szdif < fitness)
1016 {
1017 xcbob = xcbob2;
1018 xl = l;
1019 fitness = szdif;
1020 }
1021 }
1022 if ((fitness > (100 * 100)) || (!xcbob))
1023 {
1024 SHMPOOL_UNLOCK();
1025 return evas_software_xcb_output_buffer_new(conn, vis, depth,
1026 w, h, shm, data);
1027 }
1028
1029have_xcbob:
1030 _shmpool = eina_list_remove_list(_shmpool, xl);
1031 xcbob->w = w;
1032 xcbob->h = h;
1033 xcbob->bpl = lbytes;
1034 xcbob->xim->width = xcbob->w;
1035 xcbob->xim->height = xcbob->h;
1036 xcbob->xim->stride = xcbob->bpl;
1037 _shmsize -= (xcbob->psize * (xcbob->xim->depth / 8));
1038 SHMPOOL_UNLOCK();
1039 return xcbob;
1040}
1041
1042static void
1043_unfind_xcbob(Xcb_Output_Buffer *xcbob, Eina_Bool sync)
1044{
1045 if (xcbob->shm_info)
1046 {
1047 SHMPOOL_LOCK();
1048 _shmpool = eina_list_prepend(_shmpool, xcbob);
1049 _shmsize += xcbob->psize * xcbob->xim->depth / 8;
1050 while ((_shmsize > _shmlimit) ||
1051 (eina_list_count(_shmpool) > _shmcountlimit))
1052 {
1053 Eina_List *xl = NULL;
1054
1055 if (!(xl = eina_list_last(_shmpool)))
1056 {
1057 _shmsize = 0;
1058 break;
1059 }
1060 xcbob = xl->data;
1061 _shmpool = eina_list_remove_list(_shmpool, xl);
1062 _shmsize -= xcbob->psize * xcbob->xim->depth / 8;
1063 evas_software_xcb_output_buffer_free(xcbob, sync);
1064 }
1065 SHMPOOL_UNLOCK();
1066 }
1067 else
1068 evas_software_xcb_output_buffer_free(xcbob, sync);
1069}
1070
1071static void
1072_clear_xcbob(Eina_Bool sync)
1073{
1074 SHMPOOL_LOCK();
1075 while (_shmpool)
1076 {
1077 Xcb_Output_Buffer *xcbob;
1078
1079 xcbob = _shmpool->data;
1080 _shmpool = eina_list_remove_list(_shmpool, _shmpool);
1081 evas_software_xcb_output_buffer_free(xcbob, sync);
1082 }
1083 _shmsize = 0;
1084 SHMPOOL_UNLOCK();
1085}
1086
1087static void
1088_xcbob_sync(xcb_connection_t *conn)
1089{
1090 free(xcb_get_input_focus_reply(conn,
1091 xcb_get_input_focus_unchecked(conn), NULL));
1092}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.h b/libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.h
deleted file mode 100644
index b711848..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_outbuf.h
+++ /dev/null
@@ -1,30 +0,0 @@
1#ifndef EVAS_XCB_OUTBUF_H
2# define EVAS_XCB_OUTBUF_H
3
4# include "evas_engine.h"
5
6void evas_software_xcb_outbuf_init(void);
7void evas_software_xcb_outbuf_free(Outbuf *buf);
8Outbuf *evas_software_xcb_outbuf_setup(int w, int h, int rot, Outbuf_Depth depth, xcb_connection_t *conn, xcb_screen_t *screen, xcb_drawable_t draw, xcb_visualtype_t *vis, xcb_colormap_t cmap, int xdepth, Eina_Bool grayscale, int max_colors, xcb_drawable_t mask, Eina_Bool shape_dither, Eina_Bool alpha);
9RGBA_Image *evas_software_xcb_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
10void evas_software_xcb_outbuf_free_region_for_update(Outbuf *buf, RGBA_Image *update);
11void evas_software_xcb_outbuf_flush(Outbuf *buf);
12void evas_software_xcb_outbuf_idle_flush(Outbuf *buf);
13void evas_software_xcb_outbuf_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h);
14void evas_software_xcb_outbuf_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth);
15int evas_software_xcb_outbuf_width_get(Outbuf *buf);
16int evas_software_xcb_outbuf_height_get(Outbuf *buf);
17Outbuf_Depth evas_software_xcb_outbuf_depth_get(Outbuf *buf);
18void evas_software_xcb_outbuf_drawable_set(Outbuf *buf, xcb_drawable_t drawable);
19void evas_software_xcb_outbuf_mask_set(Outbuf *buf, xcb_drawable_t mask);
20int evas_software_xcb_outbuf_rotation_get(Outbuf *buf);
21void evas_software_xcb_outbuf_rotation_set(Outbuf *buf, int rotation);
22Eina_Bool evas_software_xcb_outbuf_alpha_get(Outbuf *buf);
23void evas_software_xcb_outbuf_debug_set(Outbuf *buf, Eina_Bool debug);
24void evas_software_xcb_outbuf_debug_show(Outbuf *buf, xcb_drawable_t drawable, int x, int y, int w, int h);
25
26# ifdef EVAS_FRAME_QUEUING
27void evas_software_xcb_outbuf_priv_set(Outbuf *buf, void *cur, void *prev);
28# endif
29
30#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.c b/libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.c
deleted file mode 100644
index 3a0bda5..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.c
+++ /dev/null
@@ -1,108 +0,0 @@
1#include "evas_common.h"
2#include "evas_xcb_xdefaults.h"
3#include <fnmatch.h>
4
5/* local function prototypes */
6static Eina_Bool _evas_xcb_xdefaults_glob_match(const char *str, const char *glob);
7
8/* local variables */
9static Eina_File *_evas_xcb_xdefaults_file = NULL;
10static char *_evas_xcb_xdefaults_data = NULL;
11
12void
13_evas_xcb_xdefaults_init(void)
14{
15 char buff[PATH_MAX];
16
17 snprintf(buff, sizeof(buff), "%s/.Xdefaults", getenv("HOME"));
18 if ((_evas_xcb_xdefaults_file = eina_file_open(buff, EINA_FALSE)))
19 {
20 eina_mmap_safety_enabled_set(EINA_TRUE);
21
22 _evas_xcb_xdefaults_data =
23 eina_file_map_all(_evas_xcb_xdefaults_file, EINA_FILE_SEQUENTIAL);
24 }
25}
26
27void
28_evas_xcb_xdefaults_shutdown(void)
29{
30 if (!_evas_xcb_xdefaults_file) return;
31 if (_evas_xcb_xdefaults_data)
32 eina_file_map_free(_evas_xcb_xdefaults_file, _evas_xcb_xdefaults_data);
33 if (_evas_xcb_xdefaults_file) eina_file_close(_evas_xcb_xdefaults_file);
34}
35
36char *
37_evas_xcb_xdefaults_string_get(const char *prog, const char *param)
38{
39 char buff[1024], ret[1024];
40 char *str = NULL;
41 char **ea = NULL;
42 unsigned int count = 0, i = 0;
43
44 if ((!_evas_xcb_xdefaults_data) || (!_evas_xcb_xdefaults_file))
45 return NULL;
46
47 snprintf(buff, sizeof(buff), "*%s*.*%s*", prog, param);
48
49 str = _evas_xcb_xdefaults_data;
50 ea = eina_str_split_full(str, "\n", -1, &count);
51 for (i = 0; i < count; i++)
52 {
53 if (_evas_xcb_xdefaults_glob_match(ea[i], buff))
54 sscanf(ea[i], "%*[^:]:%*[ ]%s", ret);
55 }
56 if ((ea) && (ea[0]))
57 {
58 free(ea[0]);
59 free(ea);
60 }
61
62 return strdup(ret);
63}
64
65int
66_evas_xcb_xdefaults_int_get(const char *prog, const char *param)
67{
68 char buff[1024];
69 char *str = NULL;
70 char **ea = NULL;
71 unsigned int count = 0, i = 0;
72 int ret = -1;
73
74 if ((!_evas_xcb_xdefaults_data) || (!_evas_xcb_xdefaults_file))
75 return 0;
76
77 snprintf(buff, sizeof(buff), "*%s*.*%s*", prog, param);
78
79 str = _evas_xcb_xdefaults_data;
80 ea = eina_str_split_full(str, "\n", -1, &count);
81 for (i = 0; i < count; i++)
82 {
83 if (_evas_xcb_xdefaults_glob_match(ea[i], buff))
84 sscanf(ea[i], "%*[^:]:%*[ ]%d", &ret);
85 }
86 if ((ea) && (ea[0]))
87 {
88 free(ea[0]);
89 free(ea);
90 }
91
92 return ret;
93}
94
95/* local functions */
96static Eina_Bool
97_evas_xcb_xdefaults_glob_match(const char *str, const char *glob)
98{
99 if ((!str) || (!glob)) return EINA_FALSE;
100 if (glob[0] == 0)
101 {
102 if (str[0] == 0) return EINA_TRUE;
103 return EINA_FALSE;
104 }
105 if (!strcmp(glob, "*")) return EINA_TRUE;
106 if (!fnmatch(glob, str, 0)) return EINA_TRUE;
107 return EINA_FALSE;
108}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.h b/libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.h
deleted file mode 100644
index c5f4ab8..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xcb_xdefaults.h
+++ /dev/null
@@ -1,11 +0,0 @@
1#ifndef EVAS_XCB_XDEFAULTS_H
2# define EVAS_XCB_XDEFAULTS_H
3
4# include "evas_engine.h"
5
6void _evas_xcb_xdefaults_init(void);
7void _evas_xcb_xdefaults_shutdown(void);
8char *_evas_xcb_xdefaults_string_get(const char *prog, const char *param);
9int _evas_xcb_xdefaults_int_get(const char *prog, const char *param);
10
11#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.c b/libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.c
deleted file mode 100644
index 594041c..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.c
+++ /dev/null
@@ -1,428 +0,0 @@
1#include "evas_common.h"
2
3#include "evas_xlib_buffer.h"
4
5static int _x_err = 0;
6
7void
8evas_software_xlib_x_write_mask_line(Outbuf *buf, X_Output_Buffer *xob, DATA32 *src, int w, int y)
9{
10 int x;
11 DATA32 *src_ptr;
12 DATA8 *dst_ptr;
13 int bpl = 0;
14
15 src_ptr = src;
16 dst_ptr = evas_software_xlib_x_output_buffer_data(xob, &bpl);
17 dst_ptr = dst_ptr + (bpl * y);
18 w -= 7;
19 if (buf->priv.x11.xlib.bit_swap)
20 {
21 for (x = 0; x < w; x += 8)
22 {
23 *dst_ptr =
24 ((A_VAL(&(src_ptr[0])) >> 7) << 7) |
25 ((A_VAL(&(src_ptr[1])) >> 7) << 6) |
26 ((A_VAL(&(src_ptr[2])) >> 7) << 5) |
27 ((A_VAL(&(src_ptr[3])) >> 7) << 4) |
28 ((A_VAL(&(src_ptr[4])) >> 7) << 3) |
29 ((A_VAL(&(src_ptr[5])) >> 7) << 2) |
30 ((A_VAL(&(src_ptr[6])) >> 7) << 1) |
31 ((A_VAL(&(src_ptr[7])) >> 7) << 0);
32 src_ptr += 8;
33 dst_ptr++;
34 }
35 }
36 else
37 {
38 for (x = 0; x < w; x += 8)
39 {
40 *dst_ptr =
41 ((A_VAL(&(src_ptr[0])) >> 7) << 0) |
42 ((A_VAL(&(src_ptr[1])) >> 7) << 1) |
43 ((A_VAL(&(src_ptr[2])) >> 7) << 2) |
44 ((A_VAL(&(src_ptr[3])) >> 7) << 3) |
45 ((A_VAL(&(src_ptr[4])) >> 7) << 4) |
46 ((A_VAL(&(src_ptr[5])) >> 7) << 5) |
47 ((A_VAL(&(src_ptr[6])) >> 7) << 6) |
48 ((A_VAL(&(src_ptr[7])) >> 7) << 7);
49 src_ptr += 8;
50 dst_ptr++;
51 }
52 }
53 w += 7;
54 for (; x < w; x ++)
55 {
56 XPutPixel(xob->xim, x, y, A_VAL(src_ptr) >> 7);
57 src_ptr++;
58 }
59}
60
61void
62evas_software_xlib_x_write_mask_line_rev(Outbuf *buf, X_Output_Buffer *xob, DATA32 *src, int w, int y)
63{
64 int x;
65 DATA32 *src_ptr;
66 DATA8 *dst_ptr;
67 int bpl = 0;
68
69 src_ptr = src + w - 1;
70 dst_ptr = evas_software_xlib_x_output_buffer_data(xob, &bpl);
71 dst_ptr = dst_ptr + (bpl * y);
72 w -= 7;
73 if (buf->priv.x11.xlib.bit_swap)
74 {
75 for (x = 0; x < w; x += 8)
76 {
77 *dst_ptr =
78 ((A_VAL(&(src_ptr[ 0])) >> 7) << 7) |
79 ((A_VAL(&(src_ptr[-1])) >> 7) << 6) |
80 ((A_VAL(&(src_ptr[-2])) >> 7) << 5) |
81 ((A_VAL(&(src_ptr[-3])) >> 7) << 4) |
82 ((A_VAL(&(src_ptr[-4])) >> 7) << 3) |
83 ((A_VAL(&(src_ptr[-5])) >> 7) << 2) |
84 ((A_VAL(&(src_ptr[-6])) >> 7) << 1) |
85 ((A_VAL(&(src_ptr[-7])) >> 7) << 0);
86 src_ptr -= 8;
87 dst_ptr++;
88 }
89 }
90 else
91 {
92 for (x = 0; x < w; x += 8)
93 {
94 *dst_ptr =
95 ((A_VAL(&(src_ptr[ 0])) >> 7) << 0) |
96 ((A_VAL(&(src_ptr[-1])) >> 7) << 1) |
97 ((A_VAL(&(src_ptr[-2])) >> 7) << 2) |
98 ((A_VAL(&(src_ptr[-3])) >> 7) << 3) |
99 ((A_VAL(&(src_ptr[-4])) >> 7) << 4) |
100 ((A_VAL(&(src_ptr[-5])) >> 7) << 5) |
101 ((A_VAL(&(src_ptr[-6])) >> 7) << 6) |
102 ((A_VAL(&(src_ptr[-7])) >> 7) << 7);
103 src_ptr -= 8;
104 dst_ptr++;
105 }
106 }
107 w += 7;
108 for (; x < w; x ++)
109 {
110 XPutPixel(xob->xim, x, y, A_VAL(src_ptr) >> 7);
111 src_ptr--;
112 }
113}
114
115void
116evas_software_xlib_x_write_mask_line_vert(Outbuf *buf, X_Output_Buffer *xob,
117 DATA32 *src,
118 int h, int ym, int w)
119{
120 int y;
121 DATA32 *src_ptr;
122 DATA8 *dst_ptr;
123 int bpl = 0;
124
125 src_ptr = src;
126 dst_ptr = evas_software_xlib_x_output_buffer_data(xob, &bpl);
127 dst_ptr = dst_ptr + (bpl * ym);
128 h -= 7;
129 if (buf->priv.x11.xlib.bit_swap)
130 {
131 for (y = 0; y < h; y += 8)
132 {
133 *dst_ptr =
134 ((A_VAL(&(src_ptr[0 * w])) >> 7) << 7) |
135 ((A_VAL(&(src_ptr[1 * w])) >> 7) << 6) |
136 ((A_VAL(&(src_ptr[2 * w])) >> 7) << 5) |
137 ((A_VAL(&(src_ptr[3 * w])) >> 7) << 4) |
138 ((A_VAL(&(src_ptr[4 * w])) >> 7) << 3) |
139 ((A_VAL(&(src_ptr[5 * w])) >> 7) << 2) |
140 ((A_VAL(&(src_ptr[6 * w])) >> 7) << 1) |
141 ((A_VAL(&(src_ptr[7 * w])) >> 7) << 0);
142 src_ptr += 8 * w;
143 dst_ptr++;
144 }
145 }
146 else
147 {
148 for (y = 0; y < h; y += 8)
149 {
150 *dst_ptr =
151 ((A_VAL(&(src_ptr[0 * w])) >> 7) << 0) |
152 ((A_VAL(&(src_ptr[1 * w])) >> 7) << 1) |
153 ((A_VAL(&(src_ptr[2 * w])) >> 7) << 2) |
154 ((A_VAL(&(src_ptr[3 * w])) >> 7) << 3) |
155 ((A_VAL(&(src_ptr[4 * w])) >> 7) << 4) |
156 ((A_VAL(&(src_ptr[5 * w])) >> 7) << 5) |
157 ((A_VAL(&(src_ptr[6 * w])) >> 7) << 6) |
158 ((A_VAL(&(src_ptr[7 * w])) >> 7) << 7);
159 src_ptr += 8 * w;
160 dst_ptr++;
161 }
162 }
163 h += 7;
164 for (; y < h; y ++)
165 {
166 XPutPixel(xob->xim, y, ym, A_VAL(src_ptr) >> 7);
167 src_ptr += w;
168 }
169}
170
171void
172evas_software_xlib_x_write_mask_line_vert_rev(Outbuf *buf, X_Output_Buffer *xob,
173 DATA32 *src,
174 int h, int ym, int w)
175{
176 int y;
177 DATA32 *src_ptr;
178 DATA8 *dst_ptr;
179 int bpl = 0;
180
181 src_ptr = src + ((h - 1) * w);
182 dst_ptr = evas_software_xlib_x_output_buffer_data(xob, &bpl);
183 dst_ptr = dst_ptr + (bpl * ym);
184 h -= 7;
185 if (buf->priv.x11.xlib.bit_swap)
186 {
187 for (y = 0; y < h; y += 8)
188 {
189 *dst_ptr =
190 ((A_VAL(&(src_ptr[ 0 * w])) >> 7) << 7) |
191 ((A_VAL(&(src_ptr[-1 * w])) >> 7) << 6) |
192 ((A_VAL(&(src_ptr[-2 * w])) >> 7) << 5) |
193 ((A_VAL(&(src_ptr[-3 * w])) >> 7) << 4) |
194 ((A_VAL(&(src_ptr[-4 * w])) >> 7) << 3) |
195 ((A_VAL(&(src_ptr[-5 * w])) >> 7) << 2) |
196 ((A_VAL(&(src_ptr[-6 * w])) >> 7) << 1) |
197 ((A_VAL(&(src_ptr[-7 * w])) >> 7) << 0);
198 src_ptr -= 8 * w;
199 dst_ptr++;
200 }
201 }
202 else
203 {
204 for (y = 0; y < h; y += 8)
205 {
206 *dst_ptr =
207 ((A_VAL(&(src_ptr[ 0 * w])) >> 7) << 0) |
208 ((A_VAL(&(src_ptr[-1 * w])) >> 7) << 1) |
209 ((A_VAL(&(src_ptr[-2 * w])) >> 7) << 2) |
210 ((A_VAL(&(src_ptr[-3 * w])) >> 7) << 3) |
211 ((A_VAL(&(src_ptr[-4 * w])) >> 7) << 4) |
212 ((A_VAL(&(src_ptr[-5 * w])) >> 7) << 5) |
213 ((A_VAL(&(src_ptr[-6 * w])) >> 7) << 6) |
214 ((A_VAL(&(src_ptr[-7 * w])) >> 7) << 7);
215 src_ptr -= 8 * w;
216 dst_ptr++;
217 }
218 }
219 h += 7;
220 for (; y < h; y ++)
221 {
222 XPutPixel(xob->xim, y, ym, A_VAL(src_ptr) >> 7);
223 src_ptr -= w;
224 }
225}
226
227int
228evas_software_xlib_x_can_do_shm(Display *d)
229{
230 static Display *cached_d = NULL;
231 static int cached_result = 0;
232
233 if (d == cached_d) return cached_result;
234 cached_d = d;
235 if (XShmQueryExtension(d))
236 {
237 X_Output_Buffer *xob;
238
239 xob = evas_software_xlib_x_output_buffer_new
240 (d, DefaultVisual(d, DefaultScreen(d)),
241 DefaultDepth(d, DefaultScreen(d)), 16, 16, 2, NULL);
242 if (!xob)
243 {
244 cached_result = 0;
245 return 0;
246 }
247 evas_software_xlib_x_output_buffer_free(xob, 1);
248 cached_result = 1;
249 return 1;
250 }
251 cached_result = 0;
252 return 0;
253}
254
255static void
256x_output_tmp_x_err(Display *d __UNUSED__, XErrorEvent *ev __UNUSED__)
257{
258 _x_err = 1;
259 return;
260}
261
262//static int creates = 0;
263
264X_Output_Buffer *
265evas_software_xlib_x_output_buffer_new(Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data)
266{
267 X_Output_Buffer *xob;
268
269 xob = calloc(1, sizeof(X_Output_Buffer));
270 if (!xob) return NULL;
271
272 xob->display = d;
273 xob->visual = v;
274 xob->xim = NULL;
275 xob->shm_info = NULL;
276 xob->w = w;
277 xob->h = h;
278
279 if (try_shm > 0)
280 {
281 xob->shm_info = malloc(sizeof(XShmSegmentInfo));
282 if (xob->shm_info)
283 {
284 xob->xim = XShmCreateImage(d, v, depth, ZPixmap, NULL,
285 xob->shm_info, w, h);
286 if (xob->xim)
287 {
288 xob->shm_info->shmid = shmget(IPC_PRIVATE,
289 xob->xim->bytes_per_line *
290 xob->xim->height,
291 IPC_CREAT | 0777);
292 if (xob->shm_info->shmid >= 0)
293 {
294 xob->shm_info->readOnly = False;
295 xob->shm_info->shmaddr = xob->xim->data =
296 shmat(xob->shm_info->shmid, 0, 0);
297 if (xob->shm_info->shmaddr != ((void *)-1))
298 {
299 XErrorHandler ph;
300
301 if (try_shm == 2) // only needed during testing
302 {
303 XSync(d, False);
304 _x_err = 0;
305 ph = XSetErrorHandler((XErrorHandler)
306 x_output_tmp_x_err);
307 }
308#if defined(EVAS_FRAME_QUEUING) && defined(LIBXEXT_VERSION_LOW)
309 /* workaround for libXext of lower then 1.1.1 */
310 if (evas_common_frameq_enabled())
311 XLockDisplay(d);
312#endif
313 XShmAttach(d, xob->shm_info);
314#if defined(EVAS_FRAME_QUEUING) && defined(LIBXEXT_VERSION_LOW)
315 /* workaround for libXext of lower then 1.1.1 */
316 if (evas_common_frameq_enabled())
317 XUnlockDisplay(d);
318#endif
319
320 if (try_shm == 2) // only needed during testing
321 {
322 XSync(d, False);
323 XSetErrorHandler((XErrorHandler)ph);
324 }
325 if (!_x_err)
326 {
327 xob->bpl = xob->xim->bytes_per_line;
328 xob->psize = xob->bpl * xob->h;
329 return xob;
330 }
331 }
332 shmdt(xob->shm_info->shmaddr);
333 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
334 }
335 if (xob->xim) XDestroyImage(xob->xim);
336 xob->xim = NULL;
337 }
338 if (xob->shm_info) free(xob->shm_info);
339 xob->shm_info = NULL;
340 }
341 }
342
343 if (try_shm > 1) return NULL;
344
345 xob->xim = XCreateImage(d, v, depth, ZPixmap, 0, data, w, h, 32, 0);
346 if (!xob->xim)
347 {
348 free(xob);
349 return NULL;
350 }
351
352 xob->data = data;
353
354 if (!xob->xim->data)
355 {
356 xob->xim->data = malloc(xob->xim->bytes_per_line * xob->xim->height);
357 if (!xob->xim->data)
358 {
359 XDestroyImage(xob->xim);
360 free(xob);
361 return NULL;
362 }
363 }
364 xob->bpl = xob->xim->bytes_per_line;
365 xob->psize = xob->bpl * xob->h;
366 return xob;
367}
368
369void
370evas_software_xlib_x_output_buffer_free(X_Output_Buffer *xob, int psync)
371{
372 if (xob->shm_info)
373 {
374 if (psync) XSync(xob->display, False);
375 XShmDetach(xob->display, xob->shm_info);
376 XDestroyImage(xob->xim);
377 shmdt(xob->shm_info->shmaddr);
378 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
379 free(xob->shm_info);
380 }
381 else
382 {
383 if (xob->data) xob->xim->data = NULL;
384 XDestroyImage(xob->xim);
385 }
386 free(xob);
387}
388
389void
390evas_software_xlib_x_output_buffer_paste(X_Output_Buffer *xob, Drawable d, GC gc, int x, int y, int psync)
391{
392 if (xob->shm_info)
393 {
394 XShmPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y,
395 xob->w, xob->h, False);
396 if (psync) XSync(xob->display, False);
397 }
398 else
399 {
400 XPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y,
401 xob->w, xob->h);
402 }
403}
404
405DATA8 *
406evas_software_xlib_x_output_buffer_data(X_Output_Buffer *xob, int *bytes_per_line_ret)
407{
408 if (bytes_per_line_ret) *bytes_per_line_ret = xob->xim->bytes_per_line;
409 return (DATA8 *)xob->xim->data;
410}
411
412int
413evas_software_xlib_x_output_buffer_depth(X_Output_Buffer *xob)
414{
415 return xob->xim->bits_per_pixel;
416}
417
418int
419evas_software_xlib_x_output_buffer_byte_order(X_Output_Buffer *xob)
420{
421 return xob->xim->byte_order;
422}
423
424int
425evas_software_xlib_x_output_buffer_bit_order(X_Output_Buffer *xob)
426{
427 return xob->xim->bitmap_bit_order;
428}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.h b/libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.h
deleted file mode 100644
index 01c4db0..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_buffer.h
+++ /dev/null
@@ -1,45 +0,0 @@
1#ifndef EVAS_XLIB_BUFFER_H
2#define EVAS_XLIB_BUFFER_H
3
4
5#include "evas_engine.h"
6
7
8typedef struct _X_Output_Buffer X_Output_Buffer;
9
10struct _X_Output_Buffer
11{
12 Display *display;
13 XImage *xim;
14 XShmSegmentInfo *shm_info;
15 Visual *visual;
16 void *data;
17 int w;
18 int h;
19 int bpl;
20 int psize;
21};
22
23void evas_software_xlib_x_write_mask_line (Outbuf *buf, X_Output_Buffer *xob, DATA32 *src, int w, int y);
24void evas_software_xlib_x_write_mask_line_rev (Outbuf *buf, X_Output_Buffer *xob, DATA32 *src, int w, int y);
25void evas_software_xlib_x_write_mask_line_vert (Outbuf *buf, X_Output_Buffer *xob, DATA32 *src, int h, int ym, int w);
26void evas_software_xlib_x_write_mask_line_vert_rev (Outbuf *buf, X_Output_Buffer *xob, DATA32 *src, int h, int ym, int w);
27
28int evas_software_xlib_x_can_do_shm (Display *d);
29
30X_Output_Buffer *evas_software_xlib_x_output_buffer_new (Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data);
31
32void evas_software_xlib_x_output_buffer_free (X_Output_Buffer *xob, int sync);
33
34void evas_software_xlib_x_output_buffer_paste (X_Output_Buffer *xob, Drawable d, GC gc, int x, int y, int sync);
35
36DATA8 *evas_software_xlib_x_output_buffer_data (X_Output_Buffer *xob, int *bytes_per_line_ret);
37
38int evas_software_xlib_x_output_buffer_depth (X_Output_Buffer *xob);
39
40int evas_software_xlib_x_output_buffer_byte_order (X_Output_Buffer *xob);
41
42int evas_software_xlib_x_output_buffer_bit_order (X_Output_Buffer *xob);
43
44
45#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_color.c b/libraries/evas/src/modules/engines/software_x11/evas_xlib_color.c
deleted file mode 100644
index 1df0406..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_color.c
+++ /dev/null
@@ -1,368 +0,0 @@
1#include "evas_common.h"
2
3#include "evas_engine.h"
4
5#include <X11/Xlib.h>
6#include <X11/Xutil.h>
7
8typedef struct _Convert_Pal_Priv Convert_Pal_Priv;
9
10struct _Convert_Pal_Priv
11{
12 Display *disp;
13 Colormap cmap;
14 Visual *vis;
15};
16
17typedef DATA8 * (*X_Func_Alloc_Colors) (Display *d, Colormap cmap, Visual *v);
18
19static X_Func_Alloc_Colors x_color_alloc[PAL_MODE_LAST + 1];
20static int x_color_count[PAL_MODE_LAST + 1];
21static Eina_List *palettes = NULL;
22
23static DATA8 * x_color_alloc_rgb(int nr, int ng, int nb, Display *d, Colormap cmap, Visual *v);
24static DATA8 * x_color_alloc_gray(int ng, Display *d, Colormap cmap, Visual *v);
25
26static DATA8 * x_color_alloc_rgb_332(Display *d, Colormap cmap, Visual *v);
27static DATA8 * x_color_alloc_rgb_666(Display *d, Colormap cmap, Visual *v);
28static DATA8 * x_color_alloc_rgb_232(Display *d, Colormap cmap, Visual *v);
29static DATA8 * x_color_alloc_rgb_222(Display *d, Colormap cmap, Visual *v);
30static DATA8 * x_color_alloc_rgb_221(Display *d, Colormap cmap, Visual *v);
31static DATA8 * x_color_alloc_rgb_121(Display *d, Colormap cmap, Visual *v);
32static DATA8 * x_color_alloc_rgb_111(Display *d, Colormap cmap, Visual *v);
33static DATA8 * x_color_alloc_gray_256(Display *d, Colormap cmap, Visual *v);
34static DATA8 * x_color_alloc_gray_64(Display *d, Colormap cmap, Visual *v);
35static DATA8 * x_color_alloc_gray_16(Display *d, Colormap cmap, Visual *v);
36static DATA8 * x_color_alloc_gray_4(Display *d, Colormap cmap, Visual *v);
37static DATA8 * x_color_alloc_mono(Display *d, Colormap cmap, Visual *v);
38
39static DATA8 *
40x_color_alloc_rgb(int nr, int ng, int nb, Display *d, Colormap cmap, Visual *v)
41{
42 int r, g, b, i;
43 DATA8 *color_lut;
44 int sig_mask = 0, delt = 0;
45
46 for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
47 sig_mask <<= (16 - v->bits_per_rgb);
48 i = 0;
49 color_lut = malloc((nr) * (ng) * (nb));
50 if (!color_lut) return NULL;
51 delt = 0x0101 * 3;
52 for (r = 0; r < (nr); r++)
53 {
54 for (g = 0; g < (ng); g++)
55 {
56 for (b = 0; b < (nb); b++)
57 {
58 XColor xcl;
59 XColor xcl_in;
60 int val;
61 Status ret;
62 int dr, dg, db;
63
64 val = (int)((((double)r) / ((nr) - 1)) * 255);
65 val = (val << 8) | val;
66 xcl.red = (unsigned short)(val);
67 val = (int)((((double)g) / ((ng) - 1)) * 255);
68 val = (val << 8) | val;
69 xcl.green = (unsigned short)(val);
70 val = (int)((((double)b) / ((nb) - 1)) * 255);
71 val = (val << 8) | val;
72 xcl.blue = (unsigned short)(val);
73 xcl_in = xcl;
74 ret = XAllocColor(d, cmap, &xcl);
75 dr = (int)xcl_in.red - (int)xcl.red;
76 if (dr < 0) dr = -dr;
77 dg = (int)xcl_in.green - (int)xcl.green;
78 if (dg < 0) dg = -dg;
79 db = (int)xcl_in.blue - (int)xcl.blue;
80 if (db < 0) db = -db;
81/*
82 printf("ASK [%i]: %04x %04x %04x = %04x %04x %04x | dif = %04x / %04x\n",
83 ret,
84 xcl_in.red, xcl_in.green, xcl_in.blue,
85 xcl.red, xcl.green, xcl.blue,
86 (dr + dg +db), delt);
87 */
88 if ((ret == 0) ||
89 ((dr + dg + db) > delt)
90/*
91 ||
92 ((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
93 ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
94 ((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask))
95 */
96 )
97 {
98 unsigned long pixels[256];
99 int j;
100
101 if (i > 0)
102 {
103 for (j = 0; j < i; j++)
104 pixels[j] = (unsigned long) color_lut[j];
105 XFreeColors(d, cmap, pixels, i, 0);
106 }
107 free(color_lut);
108 return NULL;
109 }
110 color_lut[i] = xcl.pixel;
111 i++;
112 }
113 }
114 }
115 return color_lut;
116}
117
118static DATA8 *
119x_color_alloc_gray(int ng, Display *d, Colormap cmap, Visual *v)
120{
121 int g, i;
122 DATA8 *color_lut;
123 int sig_mask = 0;
124
125 for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
126 sig_mask <<= (16 - v->bits_per_rgb);
127 i = 0;
128 color_lut = malloc(ng);
129 if (!color_lut) return NULL;
130 for (g = 0; g < (ng); g++)
131 {
132 XColor xcl;
133 XColor xcl_in;
134 int val;
135 Status ret;
136
137 val = (int)((((double)g) / ((ng) - 1)) * 255);
138 val = (val << 8) | val;
139 xcl.red = (unsigned short)(val);
140 xcl.green = (unsigned short)(val);
141 xcl.blue = (unsigned short)(val);
142 xcl_in = xcl;
143 ret = XAllocColor(d, cmap, &xcl);
144 if ((ret == 0) ||
145 ((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
146 ((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
147 ((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
148 {
149 unsigned long pixels[256];
150 int j;
151
152 if (i > 0)
153 {
154 for (j = 0; j < i; j++)
155 pixels[j] = (unsigned long) color_lut[j];
156 XFreeColors(d, cmap, pixels, i, 0);
157 }
158 free(color_lut);
159 return NULL;
160 }
161 color_lut[i] = xcl.pixel;
162 i++;
163 }
164 return color_lut;
165}
166
167static DATA8 *
168x_color_alloc_rgb_332(Display *d, Colormap cmap, Visual *v)
169{
170 return x_color_alloc_rgb(8, 8, 4, d, cmap, v);
171}
172
173static DATA8 *
174x_color_alloc_rgb_666(Display *d, Colormap cmap, Visual *v)
175{
176 return x_color_alloc_rgb(6, 6, 6, d, cmap, v);
177}
178
179static DATA8 *
180x_color_alloc_rgb_232(Display *d, Colormap cmap, Visual *v)
181{
182 return x_color_alloc_rgb(4, 8, 4, d, cmap, v);
183}
184
185static DATA8 *
186x_color_alloc_rgb_222(Display *d, Colormap cmap, Visual *v)
187{
188 return x_color_alloc_rgb(4, 4, 4, d, cmap, v);
189}
190
191static DATA8 *
192x_color_alloc_rgb_221(Display *d, Colormap cmap, Visual *v)
193{
194 return x_color_alloc_rgb(4, 4, 2, d, cmap, v);
195}
196
197static DATA8 *
198x_color_alloc_rgb_121(Display *d, Colormap cmap, Visual *v)
199{
200 return x_color_alloc_rgb(2, 4, 2, d, cmap, v);
201}
202
203static DATA8 *
204x_color_alloc_rgb_111(Display *d, Colormap cmap, Visual *v)
205{
206 return x_color_alloc_rgb(2, 2, 2, d, cmap, v);
207}
208
209static DATA8 *
210x_color_alloc_gray_256(Display *d, Colormap cmap, Visual *v)
211{
212 return x_color_alloc_gray(256, d, cmap, v);
213}
214
215static DATA8 *
216x_color_alloc_gray_64(Display *d, Colormap cmap, Visual *v)
217{
218 return x_color_alloc_gray(64, d, cmap, v);
219}
220
221static DATA8 *
222x_color_alloc_gray_16(Display *d, Colormap cmap, Visual *v)
223{
224 return x_color_alloc_gray(32, d, cmap, v);
225}
226
227static DATA8 *
228x_color_alloc_gray_4(Display *d, Colormap cmap, Visual *v)
229{
230 return x_color_alloc_gray(16, d, cmap, v);
231}
232
233static DATA8 *
234x_color_alloc_mono(Display *d, Colormap cmap, Visual *v)
235{
236 return x_color_alloc_gray(2, d, cmap, v);
237}
238
239void
240evas_software_xlib_x_color_init(void)
241{
242 static int initialised = 0;
243
244 if (initialised) return;
245 x_color_alloc[PAL_MODE_NONE] = NULL;
246 x_color_count[PAL_MODE_NONE] = 0;
247
248 x_color_alloc[PAL_MODE_MONO] = x_color_alloc_mono;
249 x_color_count[PAL_MODE_MONO] = 2;
250
251 x_color_alloc[PAL_MODE_GRAY4] = x_color_alloc_gray_4;
252 x_color_count[PAL_MODE_GRAY4] = 4;
253
254 x_color_alloc[PAL_MODE_GRAY16] = x_color_alloc_gray_16;
255 x_color_count[PAL_MODE_GRAY16] = 16;
256
257 x_color_alloc[PAL_MODE_GRAY64] = x_color_alloc_gray_64;
258 x_color_count[PAL_MODE_GRAY64] = 64;
259
260 x_color_alloc[PAL_MODE_GRAY256] = x_color_alloc_gray_256;
261 x_color_count[PAL_MODE_GRAY256] = 256;
262
263 x_color_alloc[PAL_MODE_RGB111] = x_color_alloc_rgb_111;
264 x_color_count[PAL_MODE_RGB111] = 2 * 2 * 2;
265
266 x_color_alloc[PAL_MODE_RGB121] = x_color_alloc_rgb_121;
267 x_color_count[PAL_MODE_RGB121] = 2 * 4 * 2;
268
269 x_color_alloc[PAL_MODE_RGB221] = x_color_alloc_rgb_221;
270 x_color_count[PAL_MODE_RGB221] = 4 * 4 * 2;
271
272 x_color_alloc[PAL_MODE_RGB222] = x_color_alloc_rgb_222;
273 x_color_count[PAL_MODE_RGB222] = 4 * 4 * 4;
274
275 x_color_alloc[PAL_MODE_RGB232] = x_color_alloc_rgb_232;
276 x_color_count[PAL_MODE_RGB232] = 4 * 8 * 4;
277
278 x_color_alloc[PAL_MODE_RGB666] = x_color_alloc_rgb_666;
279 x_color_count[PAL_MODE_RGB666] = 6 * 6 * 6;
280
281 x_color_alloc[PAL_MODE_RGB332] = x_color_alloc_rgb_332;
282 x_color_count[PAL_MODE_RGB332] = 8 * 8 * 4;
283
284 x_color_alloc[PAL_MODE_LAST] = NULL;
285 x_color_count[PAL_MODE_LAST] = 0;
286 initialised = 1;
287}
288
289Convert_Pal *
290evas_software_xlib_x_color_allocate(Display *disp,
291 Colormap cmap,
292 Visual *vis,
293 Convert_Pal_Mode colors)
294{
295 Convert_Pal_Priv *palpriv;
296 Convert_Pal *pal;
297 Convert_Pal_Mode c;
298 Eina_List *l;
299
300/* printf("ALLOC cmap=%i vis=%p\n", cmap, vis);*/
301 EINA_LIST_FOREACH(palettes, l, pal)
302 {
303 palpriv = pal->data;
304 if ((disp == palpriv->disp) &&
305 (vis == palpriv->vis) &&
306 (cmap == palpriv->cmap))
307 {
308 pal->references++;
309 return pal;
310 }
311 }
312 pal = calloc(1, sizeof(struct _Convert_Pal));
313 if (!pal) return NULL;
314 for (c = colors; c > PAL_MODE_NONE; c--)
315 {
316 if (x_color_alloc[c])
317 {
318/* printf("TRY PAL %i\n", c);*/
319 pal->lookup = (x_color_alloc[c])(disp, cmap, vis);
320 if (pal->lookup) break;
321 }
322 }
323 pal->references = 1;
324 pal->colors = c;
325 pal->count = x_color_count[c];
326 palpriv = calloc(1, sizeof(Convert_Pal_Priv));
327 pal->data = palpriv;
328 if (!palpriv)
329 {
330 if (pal->lookup) free(pal->lookup);
331 free(pal);
332 return NULL;
333 }
334 palpriv->disp = disp;
335 palpriv->vis = vis;
336 palpriv->cmap = cmap;
337 if (pal->colors == PAL_MODE_NONE)
338 {
339 if (pal->lookup) free(pal->lookup);
340 free(pal);
341 return NULL;
342 }
343 palettes = eina_list_append(palettes, pal);
344 return pal;
345}
346
347void
348evas_software_xlib_x_color_deallocate(Display *disp,
349 Colormap cmap,
350 Visual *vis __UNUSED__,
351 Convert_Pal *pal)
352{
353 unsigned long pixels[256];
354 int j;
355
356 pal->references--;
357 if (pal->references > 0) return;
358 if (pal->lookup)
359 {
360 for(j = 0; j < pal->count; j++)
361 pixels[j] = (unsigned long) pal->lookup[j];
362 XFreeColors(disp, cmap, pixels, pal->count, 0);
363 free(pal->lookup);
364 }
365 free(pal->data);
366 palettes = eina_list_remove(palettes, pal);
367 free(pal);
368}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_color.h b/libraries/evas/src/modules/engines/software_x11/evas_xlib_color.h
deleted file mode 100644
index e9f8afb..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_color.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#ifndef EVAS_XLIB_COLOR_H
2#define EVAS_XLIB_COLOR_H
3
4void evas_software_xlib_x_color_init (void);
5
6Convert_Pal *evas_software_xlib_x_color_allocate (Display *disp,
7 Colormap cmap,
8 Visual *vis,
9 Convert_Pal_Mode colors);
10
11void evas_software_xlib_x_color_deallocate (Display *disp,
12 Colormap cmap,
13 Visual *vis,
14 Convert_Pal *pal);
15
16#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_main.c b/libraries/evas/src/modules/engines/software_x11/evas_xlib_main.c
deleted file mode 100644
index 3c153e1..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_main.c
+++ /dev/null
@@ -1,7 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4void
5evas_software_xlib_x_init(void)
6{
7}
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c b/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
deleted file mode 100644
index 24c45df..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.c
+++ /dev/null
@@ -1,1137 +0,0 @@
1#ifdef HAVE_CONFIG_H
2# include <config.h>
3#endif
4
5#include <sys/time.h>
6#include <sys/utsname.h>
7
8#include "evas_common.h"
9#include "evas_macros.h"
10#include "evas_xlib_outbuf.h"
11#include "evas_xlib_buffer.h"
12#include "evas_xlib_color.h"
13
14
15typedef struct _Outbuf_Region Outbuf_Region;
16
17struct _Outbuf_Region
18{
19 X_Output_Buffer *xob;
20 X_Output_Buffer *mxob;
21 int x;
22 int y;
23 int w;
24 int h;
25};
26
27static Eina_List *shmpool = NULL;
28static int shmsize = 0;
29static int shmmemlimit = 10 * 1024 * 1024;
30static const unsigned int shmcountlimit = 32;
31
32#ifdef EVAS_FRAME_QUEUING
33static LK(lock_shmpool);
34#define SHMPOOL_LOCK() LKL(lock_shmpool)
35#define SHMPOOL_UNLOCK() LKU(lock_shmpool)
36#else
37#define SHMPOOL_LOCK()
38#define SHMPOOL_UNLOCK()
39#endif
40
41static X_Output_Buffer *
42_find_xob(Display *d, Visual *v, int depth, int w, int h, int shm, void *data)
43{
44 Eina_List *l, *xl = NULL;
45 X_Output_Buffer *xob = NULL;
46 X_Output_Buffer *xob2;
47 int fitness = 0x7fffffff;
48 int sz, lbytes, bpp;
49
50 if (!shm)
51 return evas_software_xlib_x_output_buffer_new(d, v, depth, w, h, shm, data);
52 if (depth > 1)
53 {
54 bpp = depth / 8;
55 if (bpp == 3) bpp = 4;
56 lbytes = (((w * bpp) + 3) / 4) * 4;
57 }
58 else
59 lbytes = ((w + 31) / 32) * 4;
60 sz = lbytes * h;
61 SHMPOOL_LOCK();
62 EINA_LIST_FOREACH(shmpool, l, xob2)
63 {
64 int szdif;
65
66 if ((xob2->xim->depth != depth) || (xob2->visual != v) ||
67 (xob2->display != d))
68 continue;
69 szdif = xob2->psize - sz;
70 if (szdif < 0) continue;
71 if (szdif == 0)
72 {
73 xob = xob2;
74 xl = l;
75 goto have_xob;
76 }
77 if (szdif < fitness)
78 {
79 fitness = szdif;
80 xob = xob2;
81 xl = l;
82 }
83 }
84 if ((fitness > (100 * 100)) || (!xob))
85 {
86 SHMPOOL_UNLOCK();
87 xob = evas_software_xlib_x_output_buffer_new(d, v, depth, w, h, shm, data);
88 return xob;
89 }
90
91 have_xob:
92 shmpool = eina_list_remove_list(shmpool, xl);
93 xob->w = w;
94 xob->h = h;
95 xob->bpl = lbytes;
96 xob->xim->width = xob->w;
97 xob->xim->height = xob->h;
98 xob->xim->bytes_per_line = xob->bpl;
99 shmsize -= xob->psize * (xob->xim->depth / 8);
100 SHMPOOL_UNLOCK();
101 return xob;
102}
103
104static void
105_unfind_xob(X_Output_Buffer *xob, int psync)
106{
107 if (xob->shm_info)
108 {
109 SHMPOOL_LOCK();
110 shmpool = eina_list_prepend(shmpool, xob);
111 shmsize += xob->psize * xob->xim->depth / 8;
112 while ((shmsize > (shmmemlimit)) ||
113 (eina_list_count(shmpool) > shmcountlimit))
114 {
115 Eina_List *xl;
116
117 xl = eina_list_last(shmpool);
118 if (!xl)
119 {
120 shmsize = 0;
121 break;
122 }
123 xob = xl->data;
124 shmpool = eina_list_remove_list(shmpool, xl);
125 shmsize -= xob->psize * xob->xim->depth / 8;
126 evas_software_xlib_x_output_buffer_free(xob, psync);
127 }
128 SHMPOOL_UNLOCK();
129 }
130 else
131 evas_software_xlib_x_output_buffer_free(xob, psync);
132}
133
134static void
135_clear_xob(int psync)
136{
137 SHMPOOL_LOCK();
138 while (shmpool)
139 {
140 X_Output_Buffer *xob;
141
142 xob = shmpool->data;
143 shmpool = eina_list_remove_list(shmpool, shmpool);
144 evas_software_xlib_x_output_buffer_free(xob, psync);
145 }
146 shmsize = 0;
147 SHMPOOL_UNLOCK();
148}
149
150void
151evas_software_xlib_outbuf_init(void)
152{
153#ifdef EVAS_FRAME_QUEUING
154 LKI(lock_shmpool);
155#endif
156}
157
158void
159evas_software_xlib_outbuf_free(Outbuf *buf)
160{
161#ifdef EVAS_FRAME_QUEUING
162 LKL(buf->priv.lock);
163#endif
164 while (buf->priv.pending_writes)
165 {
166 RGBA_Image *im;
167 Outbuf_Region *obr;
168
169 im = buf->priv.pending_writes->data;
170 buf->priv.pending_writes = eina_list_remove_list(buf->priv.pending_writes, buf->priv.pending_writes);
171 obr = im->extended_info;
172 evas_cache_image_drop(&im->cache_entry);
173 if (obr->xob) _unfind_xob(obr->xob, 0);
174 if (obr->mxob) _unfind_xob(obr->mxob, 0);
175 free(obr);
176 }
177#ifdef EVAS_FRAME_QUEUING
178 LKU(buf->priv.lock);
179#endif
180 evas_software_xlib_outbuf_idle_flush(buf);
181 evas_software_xlib_outbuf_flush(buf);
182 if (buf->priv.x11.xlib.gc)
183 XFreeGC(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gc);
184 if (buf->priv.x11.xlib.gcm)
185 XFreeGC(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gcm);
186 if (buf->priv.pal)
187 evas_software_xlib_x_color_deallocate(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.cmap,
188 buf->priv.x11.xlib.vis, buf->priv.pal);
189#ifdef EVAS_FRAME_QUEUING
190 LKD(buf->priv.lock);
191#endif
192 free(buf);
193 _clear_xob(0);
194}
195
196Outbuf *
197evas_software_xlib_outbuf_setup_x(int w, int h, int rot, Outbuf_Depth depth,
198 Display *disp, Drawable draw, Visual *vis,
199 Colormap cmap, int x_depth,
200 int grayscale, int max_colors, Pixmap mask,
201 int shape_dither, int destination_alpha)
202{
203 Outbuf *buf;
204
205 buf = calloc(1, sizeof(Outbuf));
206 if (!buf)
207 return NULL;
208
209 buf->w = w;
210 buf->h = h;
211 buf->depth = depth;
212 buf->rot = rot;
213
214 buf->priv.x11.xlib.disp = disp;
215 buf->priv.x11.xlib.vis = vis;
216 buf->priv.x11.xlib.cmap = cmap;
217 buf->priv.x11.xlib.depth = x_depth;
218
219 buf->priv.mask_dither = shape_dither;
220 buf->priv.destination_alpha = destination_alpha;
221
222 {
223 Gfx_Func_Convert conv_func;
224 X_Output_Buffer *xob;
225
226 buf->priv.x11.xlib.shm = evas_software_xlib_x_can_do_shm(buf->priv.x11.xlib.disp);
227 xob = evas_software_xlib_x_output_buffer_new(buf->priv.x11.xlib.disp,
228 buf->priv.x11.xlib.vis,
229 buf->priv.x11.xlib.depth,
230 1, 1, buf->priv.x11.xlib.shm, NULL);
231
232 conv_func = NULL;
233 if (xob)
234 {
235#ifdef WORDS_BIGENDIAN
236 if (evas_software_xlib_x_output_buffer_byte_order(xob) == LSBFirst)
237 buf->priv.x11.xlib.swap = 1;
238 if (evas_software_xlib_x_output_buffer_bit_order(xob) == MSBFirst)
239 buf->priv.x11.xlib.bit_swap = 1;
240#else
241 if (evas_software_xlib_x_output_buffer_byte_order(xob) == MSBFirst)
242 buf->priv.x11.xlib.swap = 1;
243 if (evas_software_xlib_x_output_buffer_bit_order(xob) == MSBFirst)
244 buf->priv.x11.xlib.bit_swap = 1;
245#endif
246 if (((vis->class == TrueColor) || (vis->class == DirectColor)) &&
247 (x_depth > 8))
248 {
249 buf->priv.mask.r = (DATA32) vis->red_mask;
250 buf->priv.mask.g = (DATA32) vis->green_mask;
251 buf->priv.mask.b = (DATA32) vis->blue_mask;
252 if (buf->priv.x11.xlib.swap)
253 {
254 SWAP32(buf->priv.mask.r);
255 SWAP32(buf->priv.mask.g);
256 SWAP32(buf->priv.mask.b);
257 }
258 }
259 else if ((vis->class == PseudoColor) ||
260 (vis->class == StaticColor) ||
261 (vis->class == GrayScale) ||
262 (vis->class == StaticGray) ||
263 (x_depth <= 8))
264 {
265 Convert_Pal_Mode pm = PAL_MODE_RGB332;
266
267 if ((vis->class == GrayScale) || (vis->class == StaticGray))
268 grayscale = 1;
269 if (grayscale)
270 {
271 if (max_colors >= 256)
272 pm = PAL_MODE_GRAY256;
273 else if (max_colors >= 64)
274 pm = PAL_MODE_GRAY64;
275 else if (max_colors >= 16)
276 pm = PAL_MODE_GRAY16;
277 else if (max_colors >= 4)
278 pm = PAL_MODE_GRAY4;
279 else
280 pm = PAL_MODE_MONO;
281 }
282 else
283 {
284 if (max_colors >= 256)
285 pm = PAL_MODE_RGB332;
286 else if (max_colors >= 216)
287 pm = PAL_MODE_RGB666;
288 else if (max_colors >= 128)
289 pm = PAL_MODE_RGB232;
290 else if (max_colors >= 64)
291 pm = PAL_MODE_RGB222;
292 else if (max_colors >= 32)
293 pm = PAL_MODE_RGB221;
294 else if (max_colors >= 16)
295 pm = PAL_MODE_RGB121;
296 else if (max_colors >= 8)
297 pm = PAL_MODE_RGB111;
298 else if (max_colors >= 4)
299 pm = PAL_MODE_GRAY4;
300 else
301 pm = PAL_MODE_MONO;
302 }
303 /* FIXME: only alloc once per display+cmap */
304 buf->priv.pal = evas_software_xlib_x_color_allocate(disp, cmap, vis,
305 pm);
306 if (!buf->priv.pal)
307 {
308 free(buf);
309 return NULL;
310 }
311 }
312 if (buf->priv.pal)
313 {
314 if (buf->rot == 0 || buf->rot == 180)
315 conv_func = evas_common_convert_func_get(0, buf->w, buf->h,
316 evas_software_xlib_x_output_buffer_depth
317 (xob), buf->priv.mask.r,
318 buf->priv.mask.g,
319 buf->priv.mask.b,
320 buf->priv.pal->colors,
321 buf->rot);
322 else if (buf->rot == 90 || buf->rot == 270)
323 conv_func = evas_common_convert_func_get(0, buf->h, buf->w,
324 evas_software_xlib_x_output_buffer_depth
325 (xob), buf->priv.mask.r,
326 buf->priv.mask.g,
327 buf->priv.mask.b,
328 buf->priv.pal->colors,
329 buf->rot);
330 }
331 else
332 {
333 if (buf->rot == 0 || buf->rot == 180)
334 conv_func = evas_common_convert_func_get(0, buf->w, buf->h,
335 evas_software_xlib_x_output_buffer_depth
336 (xob), buf->priv.mask.r,
337 buf->priv.mask.g,
338 buf->priv.mask.b, PAL_MODE_NONE,
339 buf->rot);
340 else if (buf->rot == 90 || buf->rot == 270)
341 conv_func = evas_common_convert_func_get(0, buf->h, buf->w,
342 evas_software_xlib_x_output_buffer_depth
343 (xob), buf->priv.mask.r,
344 buf->priv.mask.g,
345 buf->priv.mask.b, PAL_MODE_NONE,
346 buf->rot);
347 }
348 evas_software_xlib_x_output_buffer_free(xob, 1);
349 if (!conv_func)
350 {
351 ERR("At depth: %i, RGB format mask: %08x %08x %08x, "
352 "Palette mode: %i. "
353 "Not supported by compiled in converters!",
354 buf->priv.x11.xlib.depth,
355 buf->priv.mask.r,
356 buf->priv.mask.g,
357 buf->priv.mask.b,
358 buf->priv.pal ? (int)buf->priv.pal->colors : -1);
359 }
360 }
361 evas_software_xlib_outbuf_drawable_set(buf, draw);
362 evas_software_xlib_outbuf_mask_set(buf, mask);
363 }
364#ifdef EVAS_FRAME_QUEUING
365 LKI(buf->priv.lock);
366#endif
367 return buf;
368}
369
370RGBA_Image *
371evas_software_xlib_outbuf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
372{
373 RGBA_Image *im;
374 Outbuf_Region *obr;
375 int bpl = 0;
376 int use_shm = 1;
377 int alpha;
378
379 if ((buf->onebuf) && (buf->priv.x11.xlib.shm))
380 {
381 Eina_Rectangle *rect;
382
383 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, buf->w, buf->h);
384 obr = calloc(1, sizeof(Outbuf_Region));
385 if (!obr) return NULL;
386 rect = eina_rectangle_new(x, y, w, h);
387 if (!rect)
388 {
389 free(obr);
390 return NULL;
391 }
392
393 buf->priv.onebuf_regions = eina_list_append(buf->priv.onebuf_regions, rect);
394 if (buf->priv.onebuf)
395 {
396 *cx = x;
397 *cy = y;
398 *cw = w;
399 *ch = h;
400 if (!buf->priv.synced)
401 {
402 XSync(buf->priv.x11.xlib.disp, False);
403 buf->priv.synced = 1;
404 }
405 return buf->priv.onebuf;
406 }
407 obr->x = 0;
408 obr->y = 0;
409 obr->w = buf->w;
410 obr->h = buf->h;
411 *cx = x;
412 *cy = y;
413 *cw = w;
414 *ch = h;
415
416 alpha = ((buf->priv.x11.xlib.mask) || (buf->priv.destination_alpha));
417
418 use_shm = buf->priv.x11.xlib.shm;
419 if ((buf->rot == 0) &&
420 (buf->priv.mask.r == 0xff0000) &&
421 (buf->priv.mask.g == 0x00ff00) &&
422 (buf->priv.mask.b == 0x0000ff))
423 {
424 obr->xob = evas_software_xlib_x_output_buffer_new(buf->priv.x11.xlib.disp,
425 buf->priv.x11.xlib.vis,
426 buf->priv.x11.xlib.depth,
427 buf->w, buf->h,
428 use_shm,
429 NULL);
430 if (!obr->xob)
431 {
432 free(obr);
433 return NULL;
434 }
435 im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
436 buf->w, buf->h,
437 (DATA32 *) evas_software_xlib_x_output_buffer_data(obr->xob, &bpl),
438 alpha, EVAS_COLORSPACE_ARGB8888);
439 if (!im)
440 {
441 evas_software_xlib_x_output_buffer_free(obr->xob, 0);
442 free(obr);
443 return NULL;
444 }
445 im->extended_info = obr;
446 if (buf->priv.x11.xlib.mask)
447 obr->mxob = evas_software_xlib_x_output_buffer_new(buf->priv.x11.xlib.disp,
448 buf->priv.x11.xlib.vis,
449 1,
450 buf->w, buf->h,
451 use_shm,
452 NULL);
453 }
454 else
455 {
456 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
457 if (!im)
458 {
459 free(obr);
460 return NULL;
461 }
462 im->cache_entry.flags.alpha |= alpha ? 1 : 0;
463 evas_cache_image_surface_alloc(&im->cache_entry, buf->w, buf->h);
464 im->extended_info = obr;
465 if ((buf->rot == 0) || (buf->rot == 180))
466 {
467 obr->xob = evas_software_xlib_x_output_buffer_new(buf->priv.x11.xlib.disp,
468 buf->priv.x11.xlib.vis,
469 buf->priv.x11.xlib.depth,
470 buf->w, buf->h,
471 use_shm,
472 NULL);
473 if (!obr->xob)
474 {
475 evas_cache_image_drop(&im->cache_entry);
476 free(obr);
477 return NULL;
478 }
479 if (buf->priv.x11.xlib.mask)
480 obr->mxob = evas_software_xlib_x_output_buffer_new(buf->priv.x11.xlib.disp,
481 buf->priv.x11.xlib.vis,
482 1, buf->w, buf->h,
483 use_shm,
484 NULL);
485 }
486 else if ((buf->rot == 90) || (buf->rot == 270))
487 {
488 obr->xob = evas_software_xlib_x_output_buffer_new(buf->priv.x11.xlib.disp,
489 buf->priv.x11.xlib.vis,
490 buf->priv.x11.xlib.depth,
491 buf->h, buf->w,
492 use_shm,
493 NULL);
494 if (!obr->xob)
495 {
496 evas_cache_image_drop(&im->cache_entry);
497 free(obr);
498 return NULL;
499 }
500 if (buf->priv.x11.xlib.mask)
501 obr->mxob = evas_software_xlib_x_output_buffer_new(buf->priv.x11.xlib.disp,
502 buf->priv.x11.xlib.vis,
503 1, buf->h, buf->w,
504 use_shm,
505 NULL);
506 }
507 }
508 /* FIXME: We should be able to remove this memset, but somewhere in the process
509 we copy too much to the destination surface and some area are not cleaned before copy. */
510 if ((alpha) && (im->image.data))
511 {
512 /* FIXME: faster memset! */
513// memset(im->image.data, 0, w * h * sizeof(DATA32));
514 }
515
516 buf->priv.onebuf = im;
517 return im;
518 }
519
520 obr = calloc(1, sizeof(Outbuf_Region));
521 if (!obr) return NULL;
522 obr->x = x;
523 obr->y = y;
524 obr->w = w;
525 obr->h = h;
526 *cx = 0;
527 *cy = 0;
528 *cw = w;
529 *ch = h;
530
531 use_shm = buf->priv.x11.xlib.shm;
532 /* FIXME: magic - i found if shm regions are smaller than 200x200 its
533 * faster to use ximages over unix sockets - trial and error
534 */
535// use_shm = 0; /* 630 -> 1006 fps */
536// if ((w * h) < (200 * 200)) use_shm = 0; /* 630 -> 962 fps */
537
538 alpha = ((buf->priv.x11.xlib.mask) || (buf->priv.destination_alpha));
539
540 if ((buf->rot == 0) &&
541 (buf->priv.mask.r == 0xff0000) &&
542 (buf->priv.mask.g == 0x00ff00) &&
543 (buf->priv.mask.b == 0x0000ff))
544 {
545 obr->xob = _find_xob(buf->priv.x11.xlib.disp,
546 buf->priv.x11.xlib.vis,
547 buf->priv.x11.xlib.depth,
548 w, h,
549 use_shm,
550 NULL);
551 if (!obr->xob)
552 {
553 free(obr);
554 return NULL;
555 }
556 im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
557 w, h,
558 (DATA32 *) evas_software_xlib_x_output_buffer_data(obr->xob, &bpl),
559 alpha, EVAS_COLORSPACE_ARGB8888);
560 if (!im)
561 {
562 _unfind_xob(obr->xob, 0);
563 free(obr);
564 return NULL;
565 }
566 im->extended_info = obr;
567 if (buf->priv.x11.xlib.mask)
568 obr->mxob = _find_xob(buf->priv.x11.xlib.disp,
569 buf->priv.x11.xlib.vis,
570 1, w, h,
571 use_shm,
572 NULL);
573 }
574 else
575 {
576 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
577 if (!im)
578 {
579 free(obr);
580 return NULL;
581 }
582 im->cache_entry.w = w;
583 im->cache_entry.h = h;
584 im->cache_entry.flags.alpha |= alpha ? 1 : 0;
585 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
586 im->extended_info = obr;
587 if ((buf->rot == 0) || (buf->rot == 180))
588 {
589 obr->xob = _find_xob(buf->priv.x11.xlib.disp,
590 buf->priv.x11.xlib.vis,
591 buf->priv.x11.xlib.depth,
592 w, h,
593 use_shm,
594 NULL);
595 if (!obr->xob)
596 {
597 evas_cache_image_drop(&im->cache_entry);
598 free(obr);
599 return NULL;
600 }
601 if (buf->priv.x11.xlib.mask)
602 obr->mxob = _find_xob(buf->priv.x11.xlib.disp,
603 buf->priv.x11.xlib.vis,
604 1, w, h,
605 use_shm,
606 NULL);
607 }
608 else if ((buf->rot == 90) || (buf->rot == 270))
609 {
610 obr->xob = _find_xob(buf->priv.x11.xlib.disp,
611 buf->priv.x11.xlib.vis,
612 buf->priv.x11.xlib.depth,
613 h, w,
614 use_shm,
615 NULL);
616 if (!obr->xob)
617 {
618 evas_cache_image_drop(&im->cache_entry);
619 free(obr);
620 return NULL;
621 }
622 if (buf->priv.x11.xlib.mask)
623 obr->mxob = _find_xob(buf->priv.x11.xlib.disp,
624 buf->priv.x11.xlib.vis,
625 1, h, w,
626 use_shm,
627 NULL);
628 }
629 }
630 /* FIXME: We should be able to remove this memset, but somewhere in the process
631 we copy too much to the destination surface and some area are not cleaned before copy. */
632 if (((buf->priv.x11.xlib.mask) || (buf->priv.destination_alpha)) &&
633 (im->image.data))
634 {
635 /* FIXME: faster memset! */
636// memset(im->image.data, 0, w * h * sizeof(DATA32));
637 }
638
639#ifdef EVAS_FRAME_QUEUING
640 if (!evas_common_frameq_enabled())
641#endif
642 buf->priv.pending_writes = eina_list_append(buf->priv.pending_writes, im);
643 return im;
644}
645
646void
647evas_software_xlib_outbuf_free_region_for_update(Outbuf *buf __UNUSED__, RGBA_Image *update __UNUSED__)
648{
649 /* no need to do anything - they are cleaned up on flush */
650}
651
652void
653evas_software_xlib_outbuf_flush(Outbuf *buf)
654{
655 Eina_List *l;
656 RGBA_Image *im;
657 Outbuf_Region *obr;
658
659 if ((buf->priv.onebuf) && (buf->priv.onebuf_regions))
660 {
661 Region tmpr;
662
663 im = buf->priv.onebuf;
664 obr = im->extended_info;
665 tmpr = XCreateRegion();
666 while (buf->priv.onebuf_regions)
667 {
668 Eina_Rectangle *rect;
669 XRectangle xr;
670
671 rect = buf->priv.onebuf_regions->data;
672 buf->priv.onebuf_regions = eina_list_remove_list(buf->priv.onebuf_regions, buf->priv.onebuf_regions);
673 if (buf->rot == 0)
674 {
675 xr.x = rect->x;
676 xr.y = rect->y;
677 xr.width = rect->w;
678 xr.height = rect->h;
679 }
680 else if (buf->rot == 90)
681 {
682 xr.x = rect->y;
683 xr.y = buf->w - rect->x - rect->w;
684 xr.width = rect->h;
685 xr.height = rect->w;
686 }
687 else if (buf->rot == 180)
688 {
689 xr.x = buf->w - rect->x - rect->w;
690 xr.y = buf->h - rect->y - rect->h;
691 xr.width = rect->w;
692 xr.height = rect->h;
693 }
694 else if (buf->rot == 270)
695 {
696 xr.x = buf->h - rect->y - rect->h;
697 xr.y = rect->x;
698 xr.width = rect->h;
699 xr.height = rect->w;
700 }
701 XUnionRectWithRegion(&xr, tmpr, tmpr);
702 if (buf->priv.debug)
703 evas_software_xlib_outbuf_debug_show(buf, buf->priv.x11.xlib.win,
704 xr.x, xr.y, xr.width, xr.height);
705 eina_rectangle_free(rect);
706 }
707 XSetRegion(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gc, tmpr);
708 if (obr->xob)
709 evas_software_xlib_x_output_buffer_paste(obr->xob, buf->priv.x11.xlib.win,
710 buf->priv.x11.xlib.gc,
711 0, 0, 0);
712 if (obr->mxob)
713 {
714 XSetRegion(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gcm, tmpr);
715 evas_software_xlib_x_output_buffer_paste(obr->mxob,
716 buf->priv.x11.xlib.mask,
717 buf->priv.x11.xlib.gcm,
718 0, 0, 0);
719 }
720 XDestroyRegion(tmpr);
721 buf->priv.synced = 0;
722 }
723 else
724 {
725#if 1
726 XSync(buf->priv.x11.xlib.disp, False);
727 EINA_LIST_FOREACH(buf->priv.pending_writes, l, im)
728 {
729 obr = im->extended_info;
730 if (buf->priv.debug)
731 evas_software_xlib_outbuf_debug_show(buf, buf->priv.x11.xlib.win,
732 obr->x, obr->y, obr->w, obr->h);
733 if (obr->xob)
734 evas_software_xlib_x_output_buffer_paste(obr->xob, buf->priv.x11.xlib.win,
735 buf->priv.x11.xlib.gc,
736 obr->x, obr->y, 0);
737 if (obr->mxob)
738 evas_software_xlib_x_output_buffer_paste(obr->mxob,
739 buf->priv.x11.xlib.mask,
740 buf->priv.x11.xlib.gcm,
741 obr->x, obr->y, 0);
742 }
743#ifdef EVAS_FRAME_QUEUING
744 LKL(buf->priv.lock);
745#endif
746 while (buf->priv.prev_pending_writes)
747 {
748 im = buf->priv.prev_pending_writes->data;
749 buf->priv.prev_pending_writes =
750 eina_list_remove_list(buf->priv.prev_pending_writes,
751 buf->priv.prev_pending_writes);
752 obr = im->extended_info;
753 evas_cache_image_drop(&im->cache_entry);
754 if (obr->xob) _unfind_xob(obr->xob, 0);
755 if (obr->mxob) _unfind_xob(obr->mxob, 0);
756 free(obr);
757 }
758 buf->priv.prev_pending_writes = buf->priv.pending_writes;
759#ifdef EVAS_FRAME_QUEUING
760 LKU(buf->priv.lock);
761#endif
762 buf->priv.pending_writes = NULL;
763 XFlush(buf->priv.x11.xlib.disp);
764#else
765 /* XX async push - disable */
766 /*
767 EINA_LIST_FOREACH(buf->priv.pending_writes, l, im)
768 {
769 obr = im->extended_info;
770 if (buf->priv.debug)
771 evas_software_xlib_outbuf_debug_show(buf, buf->priv.x11.xlib.win,
772 obr->x, obr->y, obr->w, obr->h);
773 evas_software_xlib_x_output_buffer_paste(obr->xob, buf->priv.x11.xlib.win,
774 buf->priv.x11.xlib.gc,
775 obr->x, obr->y, 0);
776 if (obr->mxob)
777 evas_software_xlib_x_output_buffer_paste(obr->mxob,
778 buf->priv.x11.xlib.mask,
779 buf->priv.x11.xlib.gcm,
780 obr->x, obr->y, 0);
781 }
782 */
783 XSync(buf->priv.x11.xlib.disp, False);
784
785 while (buf->priv.pending_writes)
786 {
787 RGBA_Image *im;
788 Outbuf_Region *obr;
789
790 im = eina_list_data_get(buf->priv.pending_writes);
791 buf->priv.pending_writes = eina_list_remove_list(buf->priv.pending_writes, buf->priv.pending_writes);
792 obr = im->extended_info;
793 evas_cache_image_drop(&im->cache_entry);
794 if (obr->xob) _unfind_xob(obr->xob, 0);
795 if (obr->mxob) _unfind_xob(obr->mxob, 0);
796 free(obr);
797 evas_cache_image_drop(&im->cache_entry);
798 }
799#endif
800 }
801 evas_common_cpu_end_opt();
802}
803
804void
805evas_software_xlib_outbuf_idle_flush(Outbuf *buf)
806{
807 if (buf->priv.onebuf)
808 {
809 RGBA_Image *im;
810 Outbuf_Region *obr;
811
812 im = buf->priv.onebuf;
813 buf->priv.onebuf = NULL;
814 obr = im->extended_info;
815 if (obr->xob) evas_software_xlib_x_output_buffer_free(obr->xob, 0);
816 if (obr->mxob) evas_software_xlib_x_output_buffer_free(obr->mxob, 0);
817 free(obr);
818 evas_cache_image_drop(&im->cache_entry);
819 }
820 else
821 {
822#ifdef EVAS_FRAME_QUEUING
823 LKL(buf->priv.lock);
824#endif
825 if (buf->priv.prev_pending_writes) XSync(buf->priv.x11.xlib.disp, False);
826 while (buf->priv.prev_pending_writes)
827 {
828 RGBA_Image *im;
829 Outbuf_Region *obr;
830
831 im = buf->priv.prev_pending_writes->data;
832 buf->priv.prev_pending_writes =
833 eina_list_remove_list(buf->priv.prev_pending_writes,
834 buf->priv.prev_pending_writes);
835 obr = im->extended_info;
836 evas_cache_image_drop(&im->cache_entry);
837 if (obr->xob) _unfind_xob(obr->xob, 0);
838 if (obr->mxob) _unfind_xob(obr->mxob, 0);
839 free(obr);
840 }
841#ifdef EVAS_FRAME_QUEUING
842 LKU(buf->priv.lock);
843#endif
844 _clear_xob(0);
845 }
846}
847
848void
849evas_software_xlib_outbuf_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h)
850{
851 Gfx_Func_Convert conv_func = NULL;
852 Outbuf_Region *obr;
853 DATA32 *src_data;
854 unsigned char *data;
855 int bpl = 0, yy;
856
857 obr = update->extended_info;
858 if (buf->priv.pal)
859 {
860 if ((buf->rot == 0) || (buf->rot == 180))
861 conv_func = evas_common_convert_func_get(0, w, h,
862 evas_software_xlib_x_output_buffer_depth
863 (obr->xob), buf->priv.mask.r,
864 buf->priv.mask.g, buf->priv.mask.b,
865 buf->priv.pal->colors, buf->rot);
866 else if ((buf->rot == 90) || (buf->rot == 270))
867 conv_func = evas_common_convert_func_get(0, h, w,
868 evas_software_xlib_x_output_buffer_depth
869 (obr->xob), buf->priv.mask.r,
870 buf->priv.mask.g, buf->priv.mask.b,
871 buf->priv.pal->colors, buf->rot);
872 }
873 else
874 {
875 if ((buf->rot == 0) || (buf->rot == 180))
876 conv_func = evas_common_convert_func_get(0, w, h,
877 evas_software_xlib_x_output_buffer_depth
878 (obr->xob), buf->priv.mask.r,
879 buf->priv.mask.g, buf->priv.mask.b,
880 PAL_MODE_NONE, buf->rot);
881 else if ((buf->rot == 90) || (buf->rot == 270))
882 conv_func = evas_common_convert_func_get(0, h, w,
883 evas_software_xlib_x_output_buffer_depth
884 (obr->xob), buf->priv.mask.r,
885 buf->priv.mask.g, buf->priv.mask.b,
886 PAL_MODE_NONE, buf->rot);
887 }
888 if (!conv_func) return;
889
890 if (!obr->xob) return;
891 data = evas_software_xlib_x_output_buffer_data(obr->xob, &bpl);
892 if (!data) return;
893 src_data = update->image.data;
894 if (!src_data) return;
895 if (buf->rot == 0)
896 {
897 obr->x = x;
898 obr->y = y;
899 }
900 else if (buf->rot == 90)
901 {
902 obr->x = y;
903 obr->y = buf->w - x - w;
904 }
905 else if (buf->rot == 180)
906 {
907 obr->x = buf->w - x - w;
908 obr->y = buf->h - y - h;
909 }
910 else if (buf->rot == 270)
911 {
912 obr->x = buf->h - y - h;
913 obr->y = x;
914 }
915 if ((buf->rot == 0) || (buf->rot == 180))
916 {
917 obr->w = w;
918 obr->h = h;
919 }
920 else if ((buf->rot == 90) || (buf->rot == 270))
921 {
922 obr->w = h;
923 obr->h = w;
924 }
925 if (buf->onebuf)
926 {
927 src_data += x + (y * update->cache_entry.w);
928 data += (bpl * obr->y) +
929 (obr->x * (evas_software_xlib_x_output_buffer_depth(obr->xob) / 8));
930 }
931 if (buf->priv.pal)
932 {
933 if (data != (unsigned char *)src_data)
934 conv_func(src_data, data,
935 update->cache_entry.w - w,
936 bpl /
937 ((evas_software_xlib_x_output_buffer_depth(obr->xob) /
938 8)) - obr->w, obr->w, obr->h, x, y,
939 buf->priv.pal->lookup);
940 }
941 else
942 {
943 if (data != (unsigned char *)src_data)
944 conv_func(src_data, data,
945 update->cache_entry.w - w,
946 bpl /
947 ((evas_software_xlib_x_output_buffer_depth(obr->xob) /
948 8)) - obr->w, obr->w, obr->h, x, y, NULL);
949 }
950#if 1
951#else
952 /* XX async push */
953 if (!((buf->priv.onebuf) && (buf->priv.onebuf_regions)))
954 {
955 if (buf->priv.debug)
956 evas_software_xlib_outbuf_debug_show(buf, buf->priv.x11.xlib.win,
957 obr->x, obr->y, obr->w, obr->h);
958 if (obr->xob)
959 evas_software_xlib_x_output_buffer_paste(obr->xob, buf->priv.x11.xlib.win,
960 buf->priv.x11.xlib.gc,
961 obr->x, obr->y, 0);
962 }
963#endif
964 if (obr->mxob)
965 {
966 if (buf->rot == 0)
967 {
968 for (yy = 0; yy < obr->h; yy++)
969 evas_software_xlib_x_write_mask_line(buf, obr->mxob,
970 src_data +
971 (yy * obr->w), obr->w, yy);
972 }
973 else if (buf->rot == 90)
974 {
975 for (yy = 0; yy < obr->h; yy++)
976 evas_software_xlib_x_write_mask_line_vert(buf, obr->mxob,
977 src_data + yy,
978 h, // h
979 obr->h - yy - 1, // ym
980 w); // w
981 }
982 else if (buf->rot == 180)
983 {
984 for (yy = 0; yy < obr->h; yy++)
985 {
986 evas_software_xlib_x_write_mask_line_rev(buf, obr->mxob,
987 src_data +
988 (yy * obr->w),
989 obr->w, obr->h - yy - 1);
990 }
991 }
992 else if (buf->rot == 270)
993 {
994 for (yy = 0; yy < obr->h; yy++)
995 evas_software_xlib_x_write_mask_line_vert_rev(buf, obr->mxob,
996 src_data + yy,
997 h, // h
998 yy, // ym
999 w); // w
1000 }
1001#if 1
1002#else
1003 /* XX async push */
1004 if (!((buf->priv.onebuf) && (buf->priv.onebuf_regions)))
1005 evas_software_xlib_x_output_buffer_paste(obr->mxob,
1006 buf->priv.x11.xlib.mask,
1007 buf->priv.x11.xlib.gcm,
1008 obr->x, obr->y, 0);
1009#endif
1010 }
1011#if 1
1012#else
1013 XFlush(buf->priv.x11.xlib.disp);
1014#endif
1015}
1016
1017void
1018evas_software_xlib_outbuf_reconfigure(Outbuf * buf, int w, int h, int rot,
1019 Outbuf_Depth depth)
1020{
1021 if ((w == buf->w) &&
1022 (h == buf->h) &&
1023 (rot == buf->rot) &&
1024 (depth == buf->depth)) return;
1025 buf->w = w;
1026 buf->h = h;
1027 buf->rot = rot;
1028 evas_software_xlib_outbuf_idle_flush(buf);
1029}
1030
1031int
1032evas_software_xlib_outbuf_get_width(Outbuf * buf)
1033{
1034 return buf->w;
1035}
1036
1037int
1038evas_software_xlib_outbuf_get_height(Outbuf * buf)
1039{
1040 return buf->h;
1041}
1042
1043Outbuf_Depth
1044evas_software_xlib_outbuf_get_depth(Outbuf * buf)
1045{
1046 return buf->depth;
1047}
1048
1049int
1050evas_software_xlib_outbuf_get_rot(Outbuf * buf)
1051{
1052 return buf->rot;
1053}
1054
1055void
1056evas_software_xlib_outbuf_drawable_set(Outbuf * buf, Drawable draw)
1057{
1058 XGCValues gcv;
1059
1060 if (buf->priv.x11.xlib.win == draw) return;
1061 if (buf->priv.x11.xlib.gc)
1062 {
1063 XFreeGC(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gc);
1064 buf->priv.x11.xlib.gc = NULL;
1065 }
1066 buf->priv.x11.xlib.win = draw;
1067 buf->priv.x11.xlib.gc = XCreateGC(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.win, 0, &gcv);
1068}
1069
1070void
1071evas_software_xlib_outbuf_mask_set(Outbuf * buf, Pixmap mask)
1072{
1073 XGCValues gcv;
1074
1075 if (buf->priv.x11.xlib.mask == mask) return;
1076 if (buf->priv.x11.xlib.gcm)
1077 {
1078 XFreeGC(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gcm);
1079 buf->priv.x11.xlib.gcm = NULL;
1080 }
1081 buf->priv.x11.xlib.mask = mask;
1082 if (buf->priv.x11.xlib.mask)
1083 buf->priv.x11.xlib.gcm = XCreateGC(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.mask, 0, &gcv);
1084}
1085
1086void
1087evas_software_xlib_outbuf_debug_set(Outbuf * buf, int debug)
1088{
1089 buf->priv.debug = debug;
1090}
1091
1092void
1093evas_software_xlib_outbuf_debug_show(Outbuf * buf, Drawable draw, int x, int y, int w,
1094 int h)
1095{
1096 int i;
1097 int screen_num = 0;
1098
1099 {
1100 int wx, wy;
1101 unsigned int ww, wh, bd, dp;
1102 Window wdum, root;
1103 XWindowAttributes wattr;
1104
1105 XGetGeometry(buf->priv.x11.xlib.disp, draw, &root, &wx, &wy, &ww, &wh, &bd, &dp);
1106 XGetGeometry(buf->priv.x11.xlib.disp, root, &wdum, &wx, &wy, &ww, &wh, &bd, &dp);
1107 XGetWindowAttributes(buf->priv.x11.xlib.disp, root, &wattr);
1108 screen_num = XScreenNumberOfScreen(wattr.screen);
1109 }
1110 for (i = 0; i < 20; i++)
1111 {
1112 XSetForeground(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gc,
1113 BlackPixel(buf->priv.x11.xlib.disp, screen_num));
1114 XFillRectangle(buf->priv.x11.xlib.disp, draw, buf->priv.x11.xlib.gc, x, y, w, h);
1115 XSync(buf->priv.x11.xlib.disp, False);
1116 XSync(buf->priv.x11.xlib.disp, False);
1117 XSetForeground(buf->priv.x11.xlib.disp, buf->priv.x11.xlib.gc,
1118 WhitePixel(buf->priv.x11.xlib.disp, screen_num));
1119 XFillRectangle(buf->priv.x11.xlib.disp, draw, buf->priv.x11.xlib.gc, x, y, w, h);
1120 XSync(buf->priv.x11.xlib.disp, False);
1121 XSync(buf->priv.x11.xlib.disp, False);
1122 }
1123}
1124
1125Eina_Bool
1126evas_software_xlib_outbuf_alpha_get(Outbuf *buf)
1127{
1128 return buf->priv.x11.xlib.mask;
1129}
1130
1131#ifdef EVAS_FRAME_QUEUING
1132void
1133evas_software_xlib_outbuf_set_priv(Outbuf *buf, void *cur, void *prev __UNUSED__)
1134{
1135 buf->priv.pending_writes = (Eina_List *)cur;
1136}
1137#endif
diff --git a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.h b/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.h
deleted file mode 100644
index d70eb8d..0000000
--- a/libraries/evas/src/modules/engines/software_x11/evas_xlib_outbuf.h
+++ /dev/null
@@ -1,92 +0,0 @@
1#ifndef EVAS_XLIB_OUTBUF_H
2#define EVAS_XLIB_OUTBUF_H
3
4
5#include "evas_engine.h"
6
7
8void evas_software_xlib_outbuf_init (void);
9
10void evas_software_xlib_outbuf_free (Outbuf *buf);
11
12Outbuf *evas_software_xlib_outbuf_setup_x (int w,
13 int h,
14 int rot,
15 Outbuf_Depth depth,
16 Display *disp,
17 Drawable draw,
18 Visual *vis,
19 Colormap cmap,
20 int x_depth,
21 int grayscale,
22 int max_colors,
23 Pixmap mask,
24 int shape_dither,
25 int destination_alpha);
26
27
28RGBA_Image *evas_software_xlib_outbuf_new_region_for_update (Outbuf *buf,
29 int x,
30 int y,
31 int w,
32 int h,
33 int *cx,
34 int *cy,
35 int *cw,
36 int *ch);
37
38void evas_software_xlib_outbuf_free_region_for_update (Outbuf *buf,
39 RGBA_Image *update);
40
41void evas_software_xlib_outbuf_flush (Outbuf *buf);
42
43void evas_software_xlib_outbuf_idle_flush (Outbuf *buf);
44
45void evas_software_xlib_outbuf_push_updated_region (Outbuf *buf,
46 RGBA_Image *update,
47 int x,
48 int y,
49 int w,
50 int h);
51
52void evas_software_xlib_outbuf_reconfigure (Outbuf *buf,
53 int w,
54 int h,
55 int rot,
56 Outbuf_Depth depth);
57
58int evas_software_xlib_outbuf_get_width (Outbuf *buf);
59
60int evas_software_xlib_outbuf_get_height (Outbuf *buf);
61
62Outbuf_Depth evas_software_xlib_outbuf_get_depth (Outbuf *buf);
63
64int evas_software_xlib_outbuf_get_rot (Outbuf *buf);
65
66void evas_software_xlib_outbuf_drawable_set (Outbuf *buf,
67 Drawable draw);
68
69void evas_software_xlib_outbuf_mask_set (Outbuf *buf,
70 Pixmap mask);
71
72void evas_software_xlib_outbuf_rotation_set (Outbuf *buf,
73 int rot);
74
75void evas_software_xlib_outbuf_debug_set (Outbuf *buf,
76 int debug);
77
78void evas_software_xlib_outbuf_debug_show (Outbuf *buf,
79 Drawable draw,
80 int x,
81 int y,
82 int w,
83 int h);
84
85Eina_Bool evas_software_xlib_outbuf_alpha_get (Outbuf *buf);
86#ifdef EVAS_FRAME_QUEUING
87void evas_software_xlib_outbuf_set_priv (Outbuf *buf,
88 void *cur,
89 void *prev);
90#endif
91
92#endif
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h b/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
deleted file mode 100644
index 92ffe25..0000000
--- a/libraries/evas/src/modules/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
+++ /dev/null
@@ -1,42 +0,0 @@
1#ifndef _EVAS_ENGINE_WAYLAND_EGL_H
2#define _EVAS_ENGINE_WAYLAND_EGL_H
3
4#include <wayland-client.h>
5
6typedef struct _Evas_Engine_Info_Wayland_Egl Evas_Engine_Info_Wayland_Egl;
7
8struct _Evas_Engine_Info_Wayland_Egl
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 struct wl_display *display;
17 struct wl_surface *surface;
18 int depth;
19 int screen;
20 int rotation;
21 unsigned int destination_alpha : 1;
22 } info;
23 /* engine specific function calls to query stuff about the destination */
24 /* engine (what visual & colormap & depth to use, performance info etc. */
25 struct {
26 int (*best_depth_get) (Evas_Engine_Info_Wayland_Egl *einfo);
27 } func;
28
29 struct {
30 void (*pre_swap) (void *data, Evas *e);
31 void (*post_swap) (void *data, Evas *e);
32
33 void *data; // data for callback calls
34 } callback;
35
36 /* non-blocking or blocking mode */
37 Evas_Engine_Render_Mode render_mode;
38
39 unsigned char vsync : 1; // does nothing right now
40 unsigned char indirect : 1; // use indirect rendering
41};
42#endif
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Makefile.am b/libraries/evas/src/modules/engines/wayland_egl/Makefile.am
deleted file mode 100644
index 9234b33..0000000
--- a/libraries/evas/src/modules/engines/wayland_egl/Makefile.am
+++ /dev/null
@@ -1,47 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines/gl_common \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@GL_EET_CFLAGS@ \
13@evas_engine_wayland_egl_cflags@
14
15if BUILD_ENGINE_WAYLAND_EGL
16
17WAYLAND_EGL_SOURCES = \
18evas_engine.c \
19evas_wl_main.c
20
21WAYLAND_EGL_LIBADD = @FREETYPE_LIBS@ @GL_EET_LIBS@ @EINA_LIBS@ @evas_engine_wayland_egl_libs@ @dlopen_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
22
23includes_HEADERS = Evas_Engine_Wayland_Egl.h
24includesdir = $(includedir)/evas-@VMAJ@
25
26if !EVAS_STATIC_BUILD_WAYLAND_EGL
27
28pkgdir = $(libdir)/evas/modules/engines/wayland_egl/$(MODULE_ARCH)
29pkg_LTLIBRARIES = module.la
30
31module_la_SOURCES = $(WAYLAND_EGL_SOURCES)
32module_la_LIBADD = $(WAYLAND_EGL_LIBADD) $(top_builddir)/src/lib/libevas.la
33module_la_LDFLAGS = -no-undefined -module -avoid-version
34module_la_LIBTOOLFLAGS = --tag=disable-static
35
36
37else
38
39noinst_LTLIBRARIES = libevas_engine_wayland_egl.la
40
41libevas_engine_wayland_egl_la_SOURCES = $(WAYLAND_EGL_SOURCES)
42libevas_engine_wayland_egl_la_LIBADD = $(WAYLAND_EGL_LIBADD)
43
44endif
45endif
46
47EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/wayland_egl/Makefile.in b/libraries/evas/src/modules/engines/wayland_egl/Makefile.in
deleted file mode 100644
index 90aa36b..0000000
--- a/libraries/evas/src/modules/engines/wayland_egl/Makefile.in
+++ /dev/null
@@ -1,816 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/wayland_egl
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__DEPENDENCIES_1 = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
85@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_wayland_egl_la_SOURCES_DIST = evas_engine.c \
87 evas_wl_main.c
88@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_WAYLAND_EGL_TRUE@ evas_wl_main.lo
90@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@am_libevas_engine_wayland_egl_la_OBJECTS = $(am__objects_1)
91libevas_engine_wayland_egl_la_OBJECTS = \
92 $(am_libevas_engine_wayland_egl_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@am_libevas_engine_wayland_egl_la_rpath =
97@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_wl_main.c
100@BUILD_ENGINE_WAYLAND_EGL_TRUE@am__objects_2 = \
101@BUILD_ENGINE_WAYLAND_EGL_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_WAYLAND_EGL_TRUE@ module_la-evas_wl_main.lo
103@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_wayland_egl_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_wayland_egl_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Wayland_Egl.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
198EXOTIC_LIBS = @EXOTIC_LIBS@
199FGREP = @FGREP@
200FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
201FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
202FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
203FREETYPE_LIBS = @FREETYPE_LIBS@
204FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
205FRIBIDI_LIBS = @FRIBIDI_LIBS@
206GL_EET_CFLAGS = @GL_EET_CFLAGS@
207GL_EET_LIBS = @GL_EET_LIBS@
208GREP = @GREP@
209HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
210HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
211INSTALL = @INSTALL@
212INSTALL_DATA = @INSTALL_DATA@
213INSTALL_PROGRAM = @INSTALL_PROGRAM@
214INSTALL_SCRIPT = @INSTALL_SCRIPT@
215INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
216LD = @LD@
217LDFLAGS = @LDFLAGS@
218LIBOBJS = @LIBOBJS@
219LIBS = @LIBS@
220LIBTOOL = @LIBTOOL@
221LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
222LINEBREAK_LIBS = @LINEBREAK_LIBS@
223LIPO = @LIPO@
224LN_S = @LN_S@
225LTLIBOBJS = @LTLIBOBJS@
226MAKEINFO = @MAKEINFO@
227MKDIR_P = @MKDIR_P@
228MODULE_ARCH = @MODULE_ARCH@
229NM = @NM@
230NMEDIT = @NMEDIT@
231OBJC = @OBJC@
232OBJCDEPMODE = @OBJCDEPMODE@
233OBJCFLAGS = @OBJCFLAGS@
234OBJDUMP = @OBJDUMP@
235OBJEXT = @OBJEXT@
236OTOOL = @OTOOL@
237OTOOL64 = @OTOOL64@
238PACKAGE = @PACKAGE@
239PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
240PACKAGE_NAME = @PACKAGE_NAME@
241PACKAGE_STRING = @PACKAGE_STRING@
242PACKAGE_TARNAME = @PACKAGE_TARNAME@
243PACKAGE_URL = @PACKAGE_URL@
244PACKAGE_VERSION = @PACKAGE_VERSION@
245PATH_SEPARATOR = @PATH_SEPARATOR@
246PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
247PIXMAN_LIBS = @PIXMAN_LIBS@
248PKG_CONFIG = @PKG_CONFIG@
249PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
250PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251PNG_CFLAGS = @PNG_CFLAGS@
252PNG_LIBS = @PNG_LIBS@
253RANLIB = @RANLIB@
254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_LIBS = @SDL_LIBS@
256SED = @SED@
257SET_MAKE = @SET_MAKE@
258SHELL = @SHELL@
259SHM_OPEN_LINK = @SHM_OPEN_LINK@
260STRIP = @STRIP@
261SVG_CFLAGS = @SVG_CFLAGS@
262SVG_LIBS = @SVG_LIBS@
263VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
264VALGRIND_LIBS = @VALGRIND_LIBS@
265VERSION = @VERSION@
266VMAJ = @VMAJ@
267WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
268WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
269XCB_CFLAGS = @XCB_CFLAGS@
270XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
271XCB_GL_LIBS = @XCB_GL_LIBS@
272XCB_LIBS = @XCB_LIBS@
273XEXT_CFLAGS = @XEXT_CFLAGS@
274XEXT_LIBS = @XEXT_LIBS@
275XMKMF = @XMKMF@
276X_CFLAGS = @X_CFLAGS@
277X_EXTRA_LIBS = @X_EXTRA_LIBS@
278X_LIBS = @X_LIBS@
279X_PRE_LIBS = @X_PRE_LIBS@
280abs_builddir = @abs_builddir@
281abs_srcdir = @abs_srcdir@
282abs_top_builddir = @abs_top_builddir@
283abs_top_srcdir = @abs_top_srcdir@
284ac_ct_CC = @ac_ct_CC@
285ac_ct_CXX = @ac_ct_CXX@
286ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
287ac_ct_OBJC = @ac_ct_OBJC@
288altivec_cflags = @altivec_cflags@
289am__include = @am__include@
290am__leading_dot = @am__leading_dot@
291am__quote = @am__quote@
292am__tar = @am__tar@
293am__untar = @am__untar@
294bindir = @bindir@
295build = @build@
296build_alias = @build_alias@
297build_cpu = @build_cpu@
298build_os = @build_os@
299build_vendor = @build_vendor@
300builddir = @builddir@
301datadir = @datadir@
302datarootdir = @datarootdir@
303dlopen_libs = @dlopen_libs@
304docdir = @docdir@
305dvidir = @dvidir@
306edje_cc = @edje_cc@
307efl_doxygen = @efl_doxygen@
308efl_have_doxygen = @efl_have_doxygen@
309evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
310evas_engine_buffer_libs = @evas_engine_buffer_libs@
311evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
312evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
313evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
314evas_engine_directfb_libs = @evas_engine_directfb_libs@
315evas_engine_fb_cflags = @evas_engine_fb_cflags@
316evas_engine_fb_libs = @evas_engine_fb_libs@
317evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
318evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
319evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
320evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
321evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
322evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
323evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
324evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
325evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
326evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
327evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
328evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
329evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
330evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
331evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
332evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
333evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
334evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
335evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
336evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
337evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
338evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
339evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
340evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
341evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines/gl_common \
430@FREETYPE_CFLAGS@ \
431@PIXMAN_CFLAGS@ \
432@EINA_CFLAGS@ \
433@GL_EET_CFLAGS@ \
434@evas_engine_wayland_egl_cflags@
435
436@BUILD_ENGINE_WAYLAND_EGL_TRUE@WAYLAND_EGL_SOURCES = \
437@BUILD_ENGINE_WAYLAND_EGL_TRUE@evas_engine.c \
438@BUILD_ENGINE_WAYLAND_EGL_TRUE@evas_wl_main.c
439
440@BUILD_ENGINE_WAYLAND_EGL_TRUE@WAYLAND_EGL_LIBADD = @FREETYPE_LIBS@ @GL_EET_LIBS@ @EINA_LIBS@ @evas_engine_wayland_egl_libs@ @dlopen_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
441@BUILD_ENGINE_WAYLAND_EGL_TRUE@includes_HEADERS = Evas_Engine_Wayland_Egl.h
442@BUILD_ENGINE_WAYLAND_EGL_TRUE@includesdir = $(includedir)/evas-@VMAJ@
443@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_egl/$(MODULE_ARCH)
444@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@pkg_LTLIBRARIES = module.la
445@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_SOURCES = $(WAYLAND_EGL_SOURCES)
446@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LIBADD = $(WAYLAND_EGL_LIBADD) $(top_builddir)/src/lib/libevas.la
447@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
448@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
449@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@noinst_LTLIBRARIES = libevas_engine_wayland_egl.la
450@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_SOURCES = $(WAYLAND_EGL_SOURCES)
451@BUILD_ENGINE_WAYLAND_EGL_TRUE@@EVAS_STATIC_BUILD_WAYLAND_EGL_TRUE@libevas_engine_wayland_egl_la_LIBADD = $(WAYLAND_EGL_LIBADD)
452EXTRA_DIST = evas_engine.h
453all: all-am
454
455.SUFFIXES:
456.SUFFIXES: .c .lo .o .obj
457$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
458 @for dep in $?; do \
459 case '$(am__configure_deps)' in \
460 *$$dep*) \
461 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
462 && { if test -f $@; then exit 0; else break; fi; }; \
463 exit 1;; \
464 esac; \
465 done; \
466 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/wayland_egl/Makefile'; \
467 $(am__cd) $(top_srcdir) && \
468 $(AUTOMAKE) --gnu src/modules/engines/wayland_egl/Makefile
469.PRECIOUS: Makefile
470Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
471 @case '$?' in \
472 *config.status*) \
473 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
474 *) \
475 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
476 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
477 esac;
478
479$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
480 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
481
482$(top_srcdir)/configure: $(am__configure_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(ACLOCAL_M4): $(am__aclocal_m4_deps)
485 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
486$(am__aclocal_m4_deps):
487
488clean-noinstLTLIBRARIES:
489 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
490 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
491 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
492 test "$$dir" != "$$p" || dir=.; \
493 echo "rm -f \"$${dir}/so_locations\""; \
494 rm -f "$${dir}/so_locations"; \
495 done
496install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
497 @$(NORMAL_INSTALL)
498 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
499 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
500 list2=; for p in $$list; do \
501 if test -f $$p; then \
502 list2="$$list2 $$p"; \
503 else :; fi; \
504 done; \
505 test -z "$$list2" || { \
506 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
507 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
508 }
509
510uninstall-pkgLTLIBRARIES:
511 @$(NORMAL_UNINSTALL)
512 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
513 for p in $$list; do \
514 $(am__strip_dir) \
515 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
516 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
517 done
518
519clean-pkgLTLIBRARIES:
520 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
521 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
522 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
523 test "$$dir" != "$$p" || dir=.; \
524 echo "rm -f \"$${dir}/so_locations\""; \
525 rm -f "$${dir}/so_locations"; \
526 done
527libevas_engine_wayland_egl.la: $(libevas_engine_wayland_egl_la_OBJECTS) $(libevas_engine_wayland_egl_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_wayland_egl_la_rpath) $(libevas_engine_wayland_egl_la_OBJECTS) $(libevas_engine_wayland_egl_la_LIBADD) $(LIBS)
529module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
530 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
531
532mostlyclean-compile:
533 -rm -f *.$(OBJEXT)
534
535distclean-compile:
536 -rm -f *.tab.c
537
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_wl_main.Plo@am__quote@
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_wl_main.Plo@am__quote@
542
543.c.o:
544@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
545@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
546@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
547@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
549@am__fastdepCC_FALSE@ $(COMPILE) -c $<
550
551.c.obj:
552@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
553@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
554@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
555@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
557@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
558
559.c.lo:
560@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
561@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
562@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
563@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
565@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
566
567module_la-evas_engine.lo: evas_engine.c
568@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
569@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
570@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
571@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
573@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574
575module_la-evas_wl_main.lo: evas_wl_main.c
576@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_wl_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_wl_main.Tpo -c -o module_la-evas_wl_main.lo `test -f 'evas_wl_main.c' || echo '$(srcdir)/'`evas_wl_main.c
577@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_wl_main.Tpo $(DEPDIR)/module_la-evas_wl_main.Plo
578@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
579@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_wl_main.c' object='module_la-evas_wl_main.lo' libtool=yes @AMDEPBACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
581@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_wl_main.lo `test -f 'evas_wl_main.c' || echo '$(srcdir)/'`evas_wl_main.c
582
583mostlyclean-libtool:
584 -rm -f *.lo
585
586clean-libtool:
587 -rm -rf .libs _libs
588install-includesHEADERS: $(includes_HEADERS)
589 @$(NORMAL_INSTALL)
590 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
591 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
592 for p in $$list; do \
593 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
594 echo "$$d$$p"; \
595 done | $(am__base_list) | \
596 while read files; do \
597 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
598 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
599 done
600
601uninstall-includesHEADERS:
602 @$(NORMAL_UNINSTALL)
603 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
604 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
605 test -n "$$files" || exit 0; \
606 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
607 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
608
609ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
610 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
611 unique=`for i in $$list; do \
612 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
613 done | \
614 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
615 END { if (nonempty) { for (i in files) print i; }; }'`; \
616 mkid -fID $$unique
617tags: TAGS
618
619TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
620 $(TAGS_FILES) $(LISP)
621 set x; \
622 here=`pwd`; \
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 shift; \
630 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
631 test -n "$$unique" || unique=$$empty_fix; \
632 if test $$# -gt 0; then \
633 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
634 "$$@" $$unique; \
635 else \
636 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
637 $$unique; \
638 fi; \
639 fi
640ctags: CTAGS
641CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
642 $(TAGS_FILES) $(LISP)
643 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
644 unique=`for i in $$list; do \
645 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
646 done | \
647 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
648 END { if (nonempty) { for (i in files) print i; }; }'`; \
649 test -z "$(CTAGS_ARGS)$$unique" \
650 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
651 $$unique
652
653GTAGS:
654 here=`$(am__cd) $(top_builddir) && pwd` \
655 && $(am__cd) $(top_srcdir) \
656 && gtags -i $(GTAGS_ARGS) "$$here"
657
658distclean-tags:
659 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
660
661distdir: $(DISTFILES)
662 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
663 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
664 list='$(DISTFILES)'; \
665 dist_files=`for file in $$list; do echo $$file; done | \
666 sed -e "s|^$$srcdirstrip/||;t" \
667 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
668 case $$dist_files in \
669 */*) $(MKDIR_P) `echo "$$dist_files" | \
670 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
671 sort -u` ;; \
672 esac; \
673 for file in $$dist_files; do \
674 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
675 if test -d $$d/$$file; then \
676 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
677 if test -d "$(distdir)/$$file"; then \
678 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
679 fi; \
680 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
681 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
682 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
683 fi; \
684 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
685 else \
686 test -f "$(distdir)/$$file" \
687 || cp -p $$d/$$file "$(distdir)/$$file" \
688 || exit 1; \
689 fi; \
690 done
691check-am: all-am
692check: check-am
693all-am: Makefile $(LTLIBRARIES) $(HEADERS)
694installdirs:
695 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
696 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
697 done
698install: install-am
699install-exec: install-exec-am
700install-data: install-data-am
701uninstall: uninstall-am
702
703install-am: all-am
704 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
705
706installcheck: installcheck-am
707install-strip:
708 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
709 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
710 `test -z '$(STRIP)' || \
711 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
712mostlyclean-generic:
713
714clean-generic:
715
716distclean-generic:
717 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
718 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
719
720maintainer-clean-generic:
721 @echo "This command is intended for maintainers to use"
722 @echo "it deletes files that may require special tools to rebuild."
723 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
724clean: clean-am
725
726clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
727 clean-pkgLTLIBRARIES mostlyclean-am
728
729distclean: distclean-am
730 -rm -rf ./$(DEPDIR)
731 -rm -f Makefile
732distclean-am: clean-am distclean-compile distclean-generic \
733 distclean-tags
734
735dvi: dvi-am
736
737dvi-am:
738
739html: html-am
740
741html-am:
742
743info: info-am
744
745info-am:
746
747install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
748
749install-dvi: install-dvi-am
750
751install-dvi-am:
752
753install-exec-am:
754
755install-html: install-html-am
756
757install-html-am:
758
759install-info: install-info-am
760
761install-info-am:
762
763install-man:
764
765install-pdf: install-pdf-am
766
767install-pdf-am:
768
769install-ps: install-ps-am
770
771install-ps-am:
772
773installcheck-am:
774
775maintainer-clean: maintainer-clean-am
776 -rm -rf ./$(DEPDIR)
777 -rm -f Makefile
778maintainer-clean-am: distclean-am maintainer-clean-generic
779
780mostlyclean: mostlyclean-am
781
782mostlyclean-am: mostlyclean-compile mostlyclean-generic \
783 mostlyclean-libtool
784
785pdf: pdf-am
786
787pdf-am:
788
789ps: ps-am
790
791ps-am:
792
793uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
794
795.MAKE: install-am install-strip
796
797.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
798 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
799 ctags distclean distclean-compile distclean-generic \
800 distclean-libtool distclean-tags distdir dvi dvi-am html \
801 html-am info info-am install install-am install-data \
802 install-data-am install-dvi install-dvi-am install-exec \
803 install-exec-am install-html install-html-am \
804 install-includesHEADERS install-info install-info-am \
805 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
806 install-ps install-ps-am install-strip installcheck \
807 installcheck-am installdirs maintainer-clean \
808 maintainer-clean-generic mostlyclean mostlyclean-compile \
809 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
810 tags uninstall uninstall-am uninstall-includesHEADERS \
811 uninstall-pkgLTLIBRARIES
812
813
814# Tell versions [3.59,3.63) of GNU make to not export all variables.
815# Otherwise a system limit (for SysV at least) may be exceeded.
816.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c
deleted file mode 100644
index 4f5102e..0000000
--- a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.c
+++ /dev/null
@@ -1,3032 +0,0 @@
1#include "evas_common.h" /* Also includes international specific stuff */
2#include "evas_engine.h"
3
4#ifdef HAVE_DLSYM
5# include <dlfcn.h> /* dlopen,dlclose,etc */
6#else
7# error gl_x11 should not get compiled if dlsym is not found on the system!
8#endif
9
10#define EVAS_GL_NO_GL_H_CHECK 1
11#include "Evas_GL.h"
12
13typedef struct _Render_Engine Render_Engine;
14typedef struct _Render_Engine_GL_Surface Render_Engine_GL_Surface;
15typedef struct _Render_Engine_GL_Context Render_Engine_GL_Context;
16typedef struct _Render_Engine_GL_Resource Render_Engine_GL_Resource;
17typedef struct _Extension_Entry Extension_Entry;
18
19struct _Render_Engine
20{
21 Evas_GL_Wl_Window *win;
22 Evas_Engine_Info_Wayland_Egl *info;
23 Evas *evas;
24 Tilebuf *tb;
25 int end;
26 int w, h;
27 int vsync;
28};
29
30struct _Render_Engine_GL_Surface
31{
32 int initialized;
33 int fbo_attached;
34 int w, h;
35 int depth_bits;
36 int stencil_bits;
37
38 // Render target texture/buffers
39 GLuint rt_tex;
40 GLint rt_internal_fmt;
41 GLenum rt_fmt;
42 GLuint rb_depth;
43 GLenum rb_depth_fmt;
44 GLuint rb_stencil;
45 GLenum rb_stencil_fmt;
46
47 Render_Engine_GL_Context *current_ctx;
48};
49
50struct _Render_Engine_GL_Context
51{
52 int initialized;
53 EGLContext context;
54 GLuint context_fbo;
55 GLuint current_fbo;
56
57 Render_Engine_GL_Surface *current_sfc;
58};
59
60// Resources used per thread
61struct _Render_Engine_GL_Resource
62{
63 // Resource context/surface per Thread in TLS for evasgl use
64 EGLContext context;
65 EGLSurface surface;
66};
67
68// Extension Handling
69struct _Extension_Entry
70{
71 const char *name;
72 const char *real_name;
73 int supported;
74};
75
76static int initted = 0;
77static int gl_wins = 0;
78static Render_Engine_GL_Context *current_evgl_ctx;
79static Render_Engine *current_engine;
80
81static char _gl_ext_string[1024];
82static char _evasgl_ext_string[1024];
83
84// Resource context/surface per Thread in TLS for evasgl use
85static Eina_TLS resource_key;
86static Eina_List *resource_list;
87LK(resource_lock);
88
89typedef void (*_eng_fn) (void);
90typedef _eng_fn (*glsym_func_eng_fn) ();
91typedef void (*glsym_func_void) ();
92typedef void *(*glsym_func_void_ptr) ();
93typedef int (*glsym_func_int) ();
94typedef unsigned int (*glsym_func_uint) ();
95typedef unsigned char (*glsym_func_uchar) ();
96typedef unsigned char *(*glsym_func_uchar_ptr) ();
97typedef const char *(*glsym_func_const_char_ptr) ();
98
99#ifndef EGL_NATIVE_PIXMAP_KHR
100# define EGL_NATIVE_PIXMAP_KHR 0x30b0
101#endif
102_eng_fn (*glsym_eglGetProcAddress) (const char *a) = NULL;
103void (*glsym_eglBindTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
104void (*glsym_eglReleaseTexImage) (EGLDisplay a, EGLSurface b, int c) = NULL;
105void *(*glsym_eglCreateImage) (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e) = NULL;
106void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
107void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
108void (*glsym_glEGLImageTargetRenderbufferStorageOES) (int a, void *b) = NULL;
109void *(*glsym_eglMapImageSEC) (void *a, void *b) = NULL;
110unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b) = NULL;
111const char *(*glsym_eglQueryString) (EGLDisplay a, int name) = NULL;
112
113unsigned int (*glsym_eglLockSurface) (EGLDisplay a, EGLSurface b, const int *attrib_list) = NULL;
114unsigned int (*glsym_eglUnlockSurface) (EGLDisplay a, EGLSurface b) = NULL;
115
116// GLES2 Extensions
117void (*glsym_glGetProgramBinaryOES) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary) = NULL;
118void (*glsym_glProgramBinaryOES) (GLuint program, GLenum binaryFormat, const void *binary, GLint length) = NULL;
119void* (*glsym_glMapBufferOES) (GLenum target, GLenum access) = NULL;
120unsigned char (*glsym_glUnmapBufferOES) (GLenum target) = NULL;
121void (*glsym_glGetBufferPointervOES) (GLenum target, GLenum pname, void** params) = NULL;
122void (*glsym_glTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels) = NULL;
123void (*glsym_glTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels) = NULL;
124void (*glsym_glCopyTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) = NULL;
125void (*glsym_glCompressedTexImage3DOES) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data) = NULL;
126void (*glsym_glCompressedTexSubImage3DOES) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data) = NULL;
127void (*glsym_glFramebufferTexture3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) = NULL;
128void (*glsym_glGetPerfMonitorGroupsAMD) (GLint* numGroups, GLsizei groupsSize, GLuint* groups) = NULL;
129void (*glsym_glGetPerfMonitorCountersAMD) (GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters) = NULL;
130void (*glsym_glGetPerfMonitorGroupStringAMD) (GLuint group, GLsizei bufSize, GLsizei* length, char* groupString) = NULL;
131void (*glsym_glGetPerfMonitorCounterStringAMD) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char* counterString) = NULL;
132void (*glsym_glGetPerfMonitorCounterInfoAMD) (GLuint group, GLuint counter, GLenum pname, void* data) = NULL;
133void (*glsym_glGenPerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
134void (*glsym_glDeletePerfMonitorsAMD) (GLsizei n, GLuint* monitors) = NULL;
135void (*glsym_glSelectPerfMonitorCountersAMD) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList) = NULL;
136void (*glsym_glBeginPerfMonitorAMD) (GLuint monitor) = NULL;
137void (*glsym_glEndPerfMonitorAMD) (GLuint monitor) = NULL;
138void (*glsym_glGetPerfMonitorCounterDataAMD) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten) = NULL;
139void (*glsym_glDiscardFramebufferEXT) (GLenum target, GLsizei numAttachments, const GLenum* attachments) = NULL;
140void (*glsym_glMultiDrawArraysEXT) (GLenum mode, GLint* first, GLsizei* count, GLsizei primcount) = NULL;
141void (*glsym_glMultiDrawElementsEXT) (GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount) = NULL;
142void (*glsym_glDeleteFencesNV) (GLsizei n, const GLuint* fences) = NULL;
143void (*glsym_glGenFencesNV) (GLsizei n, GLuint* fences) = NULL;
144unsigned char (*glsym_glIsFenceNV) (GLuint fence) = NULL;
145unsigned char (*glsym_glTestFenceNV) (GLuint fence) = NULL;
146void (*glsym_glGetFenceivNV) (GLuint fence, GLenum pname, GLint* params) = NULL;
147void (*glsym_glFinishFenceNV) (GLuint fence) = NULL;
148void (*glsym_glSetFenceNV) (GLuint, GLenum) = NULL;
149void (*glsym_glGetDriverControlsQCOM) (GLint* num, GLsizei size, GLuint* driverControls) = NULL;
150void (*glsym_glGetDriverControlStringQCOM) (GLuint driverControl, GLsizei bufSize, GLsizei* length, char* driverControlString) = NULL;
151void (*glsym_glEnableDriverControlQCOM) (GLuint driverControl) = NULL;
152void (*glsym_glDisableDriverControlQCOM) (GLuint driverControl) = NULL;
153void (*glsym_glExtGetTexturesQCOM) (GLuint* textures, GLint maxTextures, GLint* numTextures) = NULL;
154void (*glsym_glExtGetBuffersQCOM) (GLuint* buffers, GLint maxBuffers, GLint* numBuffers) = NULL;
155void (*glsym_glExtGetRenderbuffersQCOM) (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers) = NULL;
156void (*glsym_glExtGetFramebuffersQCOM) (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers) = NULL;
157void (*glsym_glExtGetTexLevelParameterivQCOM) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params) = NULL;
158void (*glsym_glExtTexObjectStateOverrideiQCOM) (GLenum target, GLenum pname, GLint param) = NULL;
159void (*glsym_glExtGetTexSubImageQCOM) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels) = NULL;
160void (*glsym_glExtGetBufferPointervQCOM) (GLenum target, void** params) = NULL;
161void (*glsym_glExtGetShadersQCOM) (GLuint* shaders, GLint maxShaders, GLint* numShaders) = NULL;
162void (*glsym_glExtGetProgramsQCOM) (GLuint* programs, GLint maxPrograms, GLint* numPrograms) = NULL;
163unsigned char (*glsym_glExtIsProgramBinaryQCOM) (GLuint program) = NULL;
164void (*glsym_glExtGetProgramBinarySourceQCOM) (GLuint program, GLenum shadertype, char* source, GLint* length) = NULL;
165
166
167//------ GLES 2.0 Extensions supported in EvasGL -----//
168static Extension_Entry _gl_ext_entries[] = {
169 //--- Function Extensions ---//
170 { "GL_OES_get_program_binary", "get_program_binary", 0 },
171 { "GL_OES_mapbuffer", "mapbuffer", 0 },
172 { "GL_OES_texture_3D", "texture_3D", 0 },
173 { "AMD_performance_monitor", "AMD_performance_monitor", 0 },
174 { "GL_EXT_discard_framebuffer", "discard_framebuffer", 0 },
175 { "GL_EXT_multi_draw_arrays", "multi_draw_arrays", 0 },
176 { "GL_NV_fence", "NV_fence", 0 },
177 { "GL_QCOM_driver_control", "QCOM_driver_control", 0 },
178 { "GL_QCOM_extended_get", "QCOM_extended_get", 0 },
179 { "GL_QCOM_extended_get2", "QCOM_extended_get2", 0 },
180
181 //--- Define Extensions ---//
182 { "GL_OES_compressed_ETC1_RGB8_texture", "compressed_ETC1_RGB8_texture", 0 },
183 { "GL_OES_compressed_paletted_texture", "compressed_paletted_texture", 0 },
184 { "GL_OES_depth24", "depth24", 0 },
185 { "GL_OES_depth32", "depth32", 0 },
186 { "GL_OES_EvasGL_image", "EGL_image", 0 },
187 { "GL_OES_packed_depth_stencil", "packed_depth_stencil", 0 },
188 { "GL_OES_rgb8_rgba8", "rgb8_rgba8", 0 },
189 { "GL_OES_standard_derivatives", "standard_derivatives", 0 },
190 { "GL_OES_stencil1", "stencil1", 0 },
191 { "GL_OES_stencil4", "stencil4", 0 },
192 { "GL_OES_texture_float", "texture_float", 0 },
193 { "GL_OES_texture_half_float", "texture_half_float", 0 },
194 { "GL_OES_texture_half_float_linear", "texture_half_float_linear", 0 },
195 { "GL_OES_texture_npot", "texture_npot", 0 },
196 { "GL_OES_vertex_half_float", "vertex_half_float", 0 },
197 { "GL_OES_vertex_type_10_10_10_2", "vertex_type_10_10_10_2", 0 },
198 { "GL_AMD_compressed_3DC_texture", "compressed_3DC_texture", 0 },
199 { "GL_AMD_compressed_ATC_texture", "compressed_ATC_texture", 0 },
200 { "GL_AMD_program_binary_Z400", "program_binary_Z400", 0 },
201 { "GL_EXT_blend_minmax", "blend_minmax", 0 },
202 { "GL_EXT_read_format_bgra", "read_format_bgra", 0 },
203 { "GL_EXT_texture_filter_anisotropic", "texture_filter_anisotrophic", 0 },
204 { "GL_EXT_texture_format_BGRA8888", "texture_format_BGRA8888", 0 },
205 { "GL_EXT_texture_type_2_10_10_10_REV", "texture_type_2_10_10_10_rev", 0 },
206 { "GL_IMG_program_binary", "IMG_program_binary", 0 },
207 { "GL_IMG_read_format", "IMG_read_format", 0 },
208 { "GL_IMG_shader_binary", "IMG_shader_binary", 0 },
209 { "GL_IMG_texture_compression_pvrtc", "IMG_texture_compression_pvrtc", 0 },
210 { "GL_QCOM_perfmon_global_mode", "QCOM_perfmon_global_mode", 0 },
211 { "GL_QCOM_writeonly_rendering", "QCOM_writeonly_rendering", 0 },
212 { NULL, NULL, 0}
213};
214
215//------ Extensions supported in EvasGL -----//
216static Extension_Entry _evasgl_ext_entries[] = {
217 { "EvasGL_KHR_image", "EGL_KHR_image", 0 },
218 { "EvasGL_KHR_vg_parent_image", "EGL_KHR_vg_parent_image", 0 },
219 { "EvasGL_KHR_gl_texture_2D_image", "EGL_KHR_gl_texture_2D_image", 0 },
220 { "EvasGL_KHR_gl_texture_cubemap_image", "EGL_KHR_gl_texture_cubemap_image", 0 },
221 { "EvasGL_KHR_gl_texture_3D_image", "EGL_KHR_gl_texture_3D_image", 0 },
222 { "EvasGL_KHR_gl_renderbuffer_image", "EGL_KHR_gl_renderbuffer_image", 0 },
223 { NULL, NULL, 0 }
224};
225
226static void
227_sym_init(void)
228{
229 static int done = 0;
230
231 if (done) return;
232
233#define FINDSYM(dst, sym, typ) \
234 if ((!dst) && (glsym_eglGetProcAddress)) dst = (typ)glsym_eglGetProcAddress(sym); \
235 if (!dst) dst = (typ)dlsym(RTLD_DEFAULT, sym)
236
237 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddress", glsym_func_eng_fn);
238 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressEXT", glsym_func_eng_fn);
239 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressARB", glsym_func_eng_fn);
240 FINDSYM(glsym_eglGetProcAddress, "eglGetProcAddressKHR", glsym_func_eng_fn);
241
242 FINDSYM(glsym_eglBindTexImage, "eglBindTexImage", glsym_func_void);
243 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageEXT", glsym_func_void);
244 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageARB", glsym_func_void);
245 FINDSYM(glsym_eglBindTexImage, "eglBindTexImageKHR", glsym_func_void);
246
247 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImage", glsym_func_void);
248 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageEXT", glsym_func_void);
249 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageARB", glsym_func_void);
250 FINDSYM(glsym_eglReleaseTexImage, "eglReleaseTexImageKHR", glsym_func_void);
251
252 FINDSYM(glsym_eglCreateImage, "eglCreateImage", glsym_func_void_ptr);
253 FINDSYM(glsym_eglCreateImage, "eglCreateImageEXT", glsym_func_void_ptr);
254 FINDSYM(glsym_eglCreateImage, "eglCreateImageARB", glsym_func_void_ptr);
255 FINDSYM(glsym_eglCreateImage, "eglCreateImageKHR", glsym_func_void_ptr);
256
257 FINDSYM(glsym_eglDestroyImage, "eglDestroyImage", glsym_func_void);
258 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageEXT", glsym_func_void);
259 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageARB", glsym_func_void);
260 FINDSYM(glsym_eglDestroyImage, "eglDestroyImageKHR", glsym_func_void);
261
262 FINDSYM(glsym_glEGLImageTargetTexture2DOES, "glEGLImageTargetTexture2DOES", glsym_func_void);
263
264 FINDSYM(glsym_glEGLImageTargetRenderbufferStorageOES, "glEGLImageTargetRenderbufferStorageOES", glsym_func_void);
265
266 FINDSYM(glsym_eglMapImageSEC, "eglMapImageSEC", glsym_func_void_ptr);
267 FINDSYM(glsym_eglUnmapImageSEC, "eglUnmapImageSEC", glsym_func_uint);
268
269 FINDSYM(glsym_eglQueryString, "eglQueryString", glsym_func_const_char_ptr);
270
271 FINDSYM(glsym_eglLockSurface, "eglLockSurface", glsym_func_uint);
272 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceEXT", glsym_func_uint);
273 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceARB", glsym_func_uint);
274 FINDSYM(glsym_eglLockSurface, "eglLockSurfaceKHR", glsym_func_uint);
275
276 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurface", glsym_func_uint);
277 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceEXT", glsym_func_uint);
278 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceARB", glsym_func_uint);
279 FINDSYM(glsym_eglUnlockSurface, "eglUnlockSurfaceKHR", glsym_func_uint);
280
281 //----------- GLES 2.0 Extensions ------------//
282 // If the symbol's not found, they get set to NULL
283 // If one of the functions in the extension exists, the extension in supported
284 /* GL_OES_get_program_binary */
285 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinary", glsym_func_void);
286 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryEXT", glsym_func_void);
287 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryARB", glsym_func_void);
288 FINDSYM(glsym_glGetProgramBinaryOES, "glGetProgramBinaryOES", glsym_func_void);
289
290 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinary", glsym_func_void);
291 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryEXT", glsym_func_void);
292 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryARB", glsym_func_void);
293 FINDSYM(glsym_glProgramBinaryOES, "glProgramBinaryOES", glsym_func_void);
294
295 // Check the first function to see if the extension is supported...
296 if (glsym_glGetProgramBinaryOES) _gl_ext_entries[0].supported = 1;
297
298 /* GL_OES_mapbuffer */
299 FINDSYM(glsym_glMapBufferOES, "glMapBuffer", glsym_func_void_ptr);
300 FINDSYM(glsym_glMapBufferOES, "glMapBufferEXT", glsym_func_void_ptr);
301 FINDSYM(glsym_glMapBufferOES, "glMapBufferARB", glsym_func_void_ptr);
302 FINDSYM(glsym_glMapBufferOES, "glMapBufferOES", glsym_func_void_ptr);
303
304 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBuffer", glsym_func_uchar);
305 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferEXT", glsym_func_uchar);
306 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferARB", glsym_func_uchar);
307 FINDSYM(glsym_glUnmapBufferOES, "glUnmapBufferOES", glsym_func_uchar);
308
309 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointerv", glsym_func_void);
310 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervEXT", glsym_func_void);
311 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervARB", glsym_func_void);
312 FINDSYM(glsym_glGetBufferPointervOES, "glGetBufferPointervOES", glsym_func_void);
313
314 if (glsym_glMapBufferOES) _gl_ext_entries[1].supported = 1;
315
316 /* GL_OES_texture_3D */
317 FINDSYM(glsym_glTexImage3DOES, "glTexImage3D", glsym_func_void);
318 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DEXT", glsym_func_void);
319 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DARB", glsym_func_void);
320 FINDSYM(glsym_glTexImage3DOES, "glTexImage3DOES", glsym_func_void);
321
322 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3D", glsym_func_void);
323 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DEXT", glsym_func_void);
324 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DARB", glsym_func_void);
325 FINDSYM(glsym_glTexSubImage3DOES, "glTexSubImage3DOES", glsym_func_void);
326
327 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3D", glsym_func_void);
328 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DARB", glsym_func_void);
329 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DEXT", glsym_func_void);
330 FINDSYM(glsym_glCopyTexSubImage3DOES, "glCopyTexSubImage3DOES", glsym_func_void);
331
332 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3D", glsym_func_void);
333 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DARB", glsym_func_void);
334 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DEXT", glsym_func_void);
335 FINDSYM(glsym_glCompressedTexImage3DOES, "glCompressedTexImage3DOES", glsym_func_void);
336
337 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3D", glsym_func_void);
338 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DARB", glsym_func_void);
339 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DEXT", glsym_func_void);
340 FINDSYM(glsym_glCompressedTexSubImage3DOES, "glCompressedTexSubImage3DOES", glsym_func_void);
341
342 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3D", glsym_func_void);
343 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DARB", glsym_func_void);
344 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DEXT", glsym_func_void);
345 FINDSYM(glsym_glFramebufferTexture3DOES, "glFramebufferTexture3DOES", glsym_func_void);
346
347 if (glsym_glTexSubImage3DOES) _gl_ext_entries[2].supported = 1;
348
349 /* AMD_performance_monitor */
350 FINDSYM(glsym_glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD", glsym_func_void);
351 FINDSYM(glsym_glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD", glsym_func_void);
352 FINDSYM(glsym_glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD", glsym_func_void);
353 FINDSYM(glsym_glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD", glsym_func_void);
354 FINDSYM(glsym_glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD", glsym_func_void);
355 FINDSYM(glsym_glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD", glsym_func_void);
356 FINDSYM(glsym_glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD", glsym_func_void);
357 FINDSYM(glsym_glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD", glsym_func_void);
358 FINDSYM(glsym_glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD", glsym_func_void);
359 FINDSYM(glsym_glEndPerfMonitorAMD, "glEndPerfMonitorAMD", glsym_func_void);
360 FINDSYM(glsym_glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD", glsym_func_void);
361
362 if (glsym_glGetPerfMonitorGroupsAMD) _gl_ext_entries[3].supported = 1;
363
364 /* GL_EXT_discard_framebuffer */
365 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebuffer", glsym_func_void);
366 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferARB", glsym_func_void);
367 FINDSYM(glsym_glDiscardFramebufferEXT, "glDiscardFramebufferEXT", glsym_func_void);
368
369 if (glsym_glDiscardFramebufferEXT) _gl_ext_entries[4].supported = 1;
370
371 /* GL_EXT_multi_draw_arrays */
372 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArrays", glsym_func_void);
373 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysARB", glsym_func_void);
374 FINDSYM(glsym_glMultiDrawArraysEXT, "glMultiDrawArraysEXT", glsym_func_void);
375
376 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElements", glsym_func_void);
377 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsARB", glsym_func_void);
378 FINDSYM(glsym_glMultiDrawElementsEXT, "glMultiDrawElementsEXT", glsym_func_void);
379
380 if (glsym_glMultiDrawArraysEXT) _gl_ext_entries[5].supported = 1;
381
382 /* GL_NV_fence */
383 FINDSYM(glsym_glDeleteFencesNV, "glDeleteFencesNV", glsym_func_void);
384 FINDSYM(glsym_glGenFencesNV, "glGenFencesNV", glsym_func_void);
385 FINDSYM(glsym_glIsFenceNV, "glIsFenceNV", glsym_func_uchar);
386 FINDSYM(glsym_glTestFenceNV, "glTestFenceNV", glsym_func_uchar);
387 FINDSYM(glsym_glGetFenceivNV, "glGetFenceivNV", glsym_func_void);
388 FINDSYM(glsym_glFinishFenceNV, "glFinishFenceNV", glsym_func_void);
389 FINDSYM(glsym_glSetFenceNV, "glSetFenceNV", glsym_func_void);
390
391 if (glsym_glDeleteFencesNV) _gl_ext_entries[6].supported = 1;
392
393 /* GL_QCOM_driver_control */
394 FINDSYM(glsym_glGetDriverControlsQCOM, "glGetDriverControlsQCOM", glsym_func_void);
395 FINDSYM(glsym_glGetDriverControlStringQCOM, "glGetDriverControlStringQCOM", glsym_func_void);
396 FINDSYM(glsym_glEnableDriverControlQCOM, "glEnableDriverControlQCOM", glsym_func_void);
397 FINDSYM(glsym_glDisableDriverControlQCOM, "glDisableDriverControlQCOM", glsym_func_void);
398
399 if (glsym_glGetDriverControlsQCOM) _gl_ext_entries[7].supported = 1;
400
401 /* GL_QCOM_extended_get */
402 FINDSYM(glsym_glExtGetTexturesQCOM, "glExtGetTexturesQCOM", glsym_func_void);
403 FINDSYM(glsym_glExtGetBuffersQCOM, "glExtGetBuffersQCOM", glsym_func_void);
404 FINDSYM(glsym_glExtGetRenderbuffersQCOM, "glExtGetRenderbuffersQCOM", glsym_func_void);
405 FINDSYM(glsym_glExtGetFramebuffersQCOM, "glExtGetFramebuffersQCOM", glsym_func_void);
406 FINDSYM(glsym_glExtGetTexLevelParameterivQCOM, "glExtGetTexLevelParameterivQCOM", glsym_func_void);
407 FINDSYM(glsym_glExtTexObjectStateOverrideiQCOM, "glExtTexObjectStateOverrideiQCOM", glsym_func_void);
408 FINDSYM(glsym_glExtGetTexSubImageQCOM, "glExtGetTexSubImageQCOM", glsym_func_void);
409 FINDSYM(glsym_glExtGetBufferPointervQCOM, "glExtGetBufferPointervQCOM", glsym_func_void);
410
411 if (glsym_glExtGetTexturesQCOM) _gl_ext_entries[8].supported = 1;
412
413 /* GL_QCOM_extended_get2 */
414 FINDSYM(glsym_glExtGetShadersQCOM, "glExtGetShadersQCOM", glsym_func_void);
415 FINDSYM(glsym_glExtGetProgramsQCOM, "glExtGetProgramsQCOM", glsym_func_void);
416 FINDSYM(glsym_glExtIsProgramBinaryQCOM, "glExtIsProgramBinaryQCOM", glsym_func_uchar);
417 FINDSYM(glsym_glExtGetProgramBinarySourceQCOM, "glExtGetProgramBinarySourceQCOM", glsym_func_void);
418
419 if (glsym_glExtGetShadersQCOM) _gl_ext_entries[9].supported = 1;
420}
421
422static void
423_extensions_init(Render_Engine *re)
424{
425 int i;
426 const char *glexts, *evasglexts;
427
428 memset(_gl_ext_string, 0, 1024);
429 memset(_evasgl_ext_string, 0, 1024);
430
431 // GLES 2.0 Extensions
432 glexts = (const char*)glGetString(GL_EXTENSIONS);
433
434 DBG("--------GLES 2.0 Extensions--------");
435 for (i = 0; _gl_ext_entries[i].name != NULL; i++)
436 {
437 if ( (strstr(glexts, _gl_ext_entries[i].name) != NULL) ||
438 (strstr(glexts, _gl_ext_entries[i].real_name) != NULL) )
439 {
440 _gl_ext_entries[i].supported = 1;
441 strcat(_gl_ext_string, _gl_ext_entries[i].name);
442 strcat(_gl_ext_string, " ");
443 DBG("\t%s", _gl_ext_entries[i].name);
444 }
445
446 }
447 DBG(" ");
448
449 // EGL Extensions
450 evasglexts = glsym_eglQueryString(re->win->egl_disp, EGL_EXTENSIONS);
451
452 DBG("--------EvasGL Extensions----------");
453 for (i = 0; _evasgl_ext_entries[i].name != NULL; i++)
454 {
455 if ( (strstr(evasglexts, _evasgl_ext_entries[i].name) != NULL) ||
456 (strstr(evasglexts, _evasgl_ext_entries[i].real_name) != NULL) )
457 {
458 _evasgl_ext_entries[i].supported = 1;
459 strcat(_evasgl_ext_string, _evasgl_ext_entries[i].name);
460 strcat(_evasgl_ext_string, " ");
461 DBG("\t%s", _evasgl_ext_entries[i].name);
462 }
463 }
464 DBG(" ");
465}
466
467int _evas_engine_wl_egl_log_dom = -1;
468
469/* function tables - filled in later (func and parent func) */
470static Evas_Func func, pfunc;
471
472/* Function table for GL APIs */
473static Evas_GL_API gl_funcs;
474
475static void *
476eng_info(Evas *e)
477{
478 Evas_Engine_Info_Wayland_Egl *info;
479
480 info = calloc(1, sizeof(Evas_Engine_Info_Wayland_Egl));
481 info->magic.magic = rand();
482 info->func.best_depth_get = eng_best_depth_get;
483 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
484 return info;
485 e = NULL;
486}
487
488static void
489eng_info_free(Evas *e __UNUSED__, void *info)
490{
491 Evas_Engine_Info_Wayland_Egl *in;
492// dont free! why bother? its not worth it
493// eina_log_domain_unregister(_evas_engine_GL_X11_log_dom);
494 in = (Evas_Engine_Info_Wayland_Egl *)info;
495 free(in);
496}
497
498static int
499_re_wincheck(Render_Engine *re)
500{
501 if (!re) return 0;
502 if (re->win->surf) return 1;
503 eng_window_resurf(re->win);
504 if (!re->win->surf)
505 {
506 ERR("GL engine can't re-create window surface!");
507 }
508 return 0;
509}
510
511static void
512_re_winfree(Render_Engine *re)
513{
514 if (!re->win->surf) return;
515 eng_window_unsurf(re->win);
516}
517
518static Render_Engine_GL_Resource *
519_create_internal_glue_resources(void *data)
520{
521 Render_Engine *re;
522 Render_Engine_GL_Resource *rsc;
523
524 if (!(re = (Render_Engine *)data)) return NULL;
525
526 rsc = calloc(1, sizeof(Render_Engine_GL_Resource));
527 if (!rsc) return NULL;
528
529 // EGL
530 int context_attrs[3];
531 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
532 context_attrs[1] = 2;
533 context_attrs[2] = EGL_NONE;
534
535 // Create resource surface for EGL
536 rsc->surface =
537 eglCreateWindowSurface(re->win->egl_disp, re->win->egl_config,
538 (EGLNativeWindowType)re->win->win, NULL);
539 if (!rsc->surface)
540 {
541 ERR("Creating internal resource surface failed.");
542 free(rsc);
543 return NULL;
544 }
545
546 // Create a resource context for EGL
547 rsc->context =
548 eglCreateContext(re->win->egl_disp, re->win->egl_config,
549 re->win->egl_context[0], context_attrs);
550 if (!rsc->context)
551 {
552 ERR("Internal Resource Context Creations Failed.");
553 free(rsc);
554 return NULL;
555 }
556
557 // Add to the resource resource list for cleanup
558 LKL(resource_lock);
559 resource_list = eina_list_prepend(resource_list, rsc);
560 LKU(resource_lock);
561
562 // Set the resource in TLS
563 if (eina_tls_set(resource_key, (void*)rsc) == EINA_FALSE)
564 {
565 ERR("Failed setting TLS Resource");
566 free(rsc);
567 return NULL;
568 }
569
570 return rsc;
571}
572
573static int
574_destroy_internal_glue_resources(void *data)
575{
576 Render_Engine *re = (Render_Engine *)data;
577 Eina_List *l;
578 Render_Engine_GL_Resource *rsc;
579
580 // EGL
581 // Delete the Resources
582 LKL(resource_lock);
583 EINA_LIST_FOREACH(resource_list, l, rsc)
584 {
585 if (rsc->surface) eglDestroySurface(re->win->egl_disp, rsc->surface);
586 if (rsc->context) eglDestroyContext(re->win->egl_disp, rsc->context);
587 free(rsc);
588 }
589 eina_list_free(resource_list);
590 LKU(resource_lock);
591
592 // Destroy TLS
593 eina_tls_free(resource_key);
594
595 return 1;
596}
597
598static int
599eng_setup(Evas *e, void *in)
600{
601 Render_Engine *re;
602 Evas_Engine_Info_Wayland_Egl *info;
603
604 info = (Evas_Engine_Info_Wayland_Egl *)in;
605 if (!e->engine.data.output)
606 {
607 re = calloc(1, sizeof(Render_Engine));
608 if (!re) return 0;
609 re->info = info;
610 re->evas = e;
611 e->engine.data.output = re;
612 re->w = e->output.w;
613 re->h = e->output.h;
614
615 re->win = eng_window_new(re->info->info.display,
616 re->info->info.surface,
617 re->info->info.screen,
618 re->info->info.depth, re->w, re->h,
619 re->info->indirect,
620 re->info->info.destination_alpha,
621 re->info->info.rotation);
622 if (!re->win)
623 {
624 free(re);
625 e->engine.data.output = NULL;
626 return 0;
627 }
628
629 gl_wins++;
630 if (!initted)
631 {
632 evas_common_cpu_init();
633 evas_common_blend_init();
634 evas_common_image_init();
635 evas_common_convert_init();
636 evas_common_scale_init();
637 evas_common_rectangle_init();
638 evas_common_polygon_init();
639 evas_common_line_init();
640 evas_common_font_init();
641 evas_common_draw_init();
642 evas_common_tilebuf_init();
643
644 // Initialize TLS
645 if (eina_tls_new(&resource_key) == EINA_FALSE)
646 ERR("Error creating tls key");
647
648 DBG("TLS KEY create... %d", resource_key);
649
650 initted = 1;
651 }
652 }
653 else
654 {
655 if (!(re = e->engine.data.output)) return 0;
656 if (_re_wincheck(re))
657 {
658 if ((re->info->info.display != re->win->disp) ||
659 (re->info->info.surface != re->win->surface) ||
660 (re->info->info.screen != re->win->screen) ||
661 (re->info->info.depth != re->win->depth) ||
662 (re->info->info.destination_alpha != re->win->alpha) ||
663 (re->info->info.rotation != re->win->rot))
664 {
665 int inc = 0;
666
667 /* if we already have a window surface, check for NULL input surface.
668 * this will mean we are hiding the window and should destroy
669 * things properly */
670 if ((re->win->surface) && (re->info->info.surface = NULL))
671 {
672 if (re->win)
673 {
674 eng_window_free(re->win);
675 gl_wins--;
676 }
677 free(re);
678 e->engine.data.output = NULL;
679 return 0;
680 }
681
682 if (re->win)
683 {
684 re->win->gl_context->references++;
685 eng_window_free(re->win);
686 inc = 1;
687 gl_wins--;
688 }
689 re->w = e->output.w;
690 re->h = e->output.h;
691 re->win = eng_window_new(re->info->info.display,
692 re->info->info.surface,
693 re->info->info.screen,
694 re->info->info.depth,
695 re->w, re->h,
696 re->info->indirect,
697 re->info->info.destination_alpha,
698 re->info->info.rotation);
699 eng_window_use(re->win);
700 if (re->win) gl_wins++;
701 if ((re->win) && (inc))
702 re->win->gl_context->references--;
703 }
704 else if ((re->win->w != e->output.w) ||
705 (re->win->h != e->output.h))
706 {
707 re->w = e->output.w;
708 re->h = e->output.h;
709 re->win->w = e->output.w;
710 re->win->h = e->output.h;
711 eng_window_use(re->win);
712 evas_gl_common_context_resize(re->win->gl_context,
713 re->win->w, re->win->h,
714 re->win->rot);
715 }
716 }
717 }
718
719 if (!re->win)
720 {
721 free(re);
722 e->engine.data.output = NULL;
723 return 0;
724 }
725
726 if (!e->engine.data.output)
727 {
728 if (re->win)
729 {
730 eng_window_free(re->win);
731 gl_wins--;
732 }
733 free(re);
734 e->engine.data.output = NULL;
735 return 0;
736 }
737 re->tb = evas_common_tilebuf_new(re->win->w, re->win->h);
738 if (!re->tb)
739 {
740 if (re->win)
741 {
742 eng_window_free(re->win);
743 gl_wins--;
744 }
745 free(re);
746 e->engine.data.output = NULL;
747 return 0;
748 }
749 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
750
751 if (!e->engine.data.context)
752 {
753 e->engine.data.context =
754 e->engine.func->context_new(e->engine.data.output);
755 }
756
757 eng_window_use(re->win);
758
759 re->vsync = 0;
760 _sym_init();
761 _extensions_init(re);
762
763 // This is used in extensions. Not pretty but can't get display otherwise.
764 current_engine = re;
765
766 return 1;
767}
768
769static void
770eng_output_free(void *data)
771{
772 Render_Engine *re;
773
774 re = (Render_Engine *)data;
775
776 if (re)
777 {
778#if 0
779 // Destroy the resource surface
780 // Only required for EGL case
781 if (re->surface)
782 eglDestroySurface(re->win->egl_disp, re->surface);
783
784 // Destroy the resource context
785 _destroy_internal_context(re, context);
786#endif
787 if (re->win)
788 {
789 if ((initted == 1) && (gl_wins == 1))
790 _destroy_internal_glue_resources(re);
791 eng_window_free(re->win);
792 gl_wins--;
793 }
794 evas_common_tilebuf_free(re->tb);
795 free(re);
796 }
797 if ((initted == 1) && (gl_wins == 0))
798 {
799 evas_common_image_shutdown();
800 evas_common_font_shutdown();
801 initted = 0;
802 }
803}
804
805static void
806eng_output_resize(void *data, int w, int h)
807{
808 Render_Engine *re;
809
810 re = (Render_Engine *)data;
811 re->win->w = w;
812 re->win->h = h;
813 eng_window_use(re->win);
814
815 if (re->win->win)
816 wl_egl_window_resize(re->win->win, w, h, 0, 0);
817
818 evas_gl_common_context_resize(re->win->gl_context, w, h, re->win->rot);
819 evas_common_tilebuf_free(re->tb);
820 re->tb = evas_common_tilebuf_new(w, h);
821 if (re->tb)
822 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
823}
824
825static void
826eng_output_tile_size_set(void *data, int w, int h)
827{
828 Render_Engine *re;
829
830 re = (Render_Engine *)data;
831 evas_common_tilebuf_set_tile_size(re->tb, w, h);
832}
833
834static void
835eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
836{
837 Render_Engine *re;
838
839 re = (Render_Engine *)data;
840 eng_window_use(re->win);
841 evas_gl_common_context_resize(re->win->gl_context, re->win->w, re->win->h, re->win->rot);
842 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
843
844 RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, re->win->w, re->win->h);
845 if ((w <= 0) || (h <= 0)) return;
846 if (!re->win->draw.redraw)
847 {
848#if 1
849 re->win->draw.x1 = x;
850 re->win->draw.y1 = y;
851 re->win->draw.x2 = x + w - 1;
852 re->win->draw.y2 = y + h - 1;
853#else
854 re->win->draw.x1 = 0;
855 re->win->draw.y1 = 0;
856 re->win->draw.x2 = re->win->w - 1;
857 re->win->draw.y2 = re->win->h - 1;
858#endif
859 }
860 else
861 {
862 if (x < re->win->draw.x1) re->win->draw.x1 = x;
863 if (y < re->win->draw.y1) re->win->draw.y1 = y;
864 if ((x + w - 1) > re->win->draw.x2) re->win->draw.x2 = x + w - 1;
865 if ((y + h - 1) > re->win->draw.y2) re->win->draw.y2 = y + h - 1;
866 }
867 re->win->draw.redraw = 1;
868}
869
870static void
871eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
872{
873 Render_Engine *re;
874
875 re = (Render_Engine *)data;
876 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
877}
878
879static void
880eng_output_redraws_clear(void *data)
881{
882 Render_Engine *re;
883
884 re = (Render_Engine *)data;
885 evas_common_tilebuf_clear(re->tb);
886/* re->win->draw.redraw = 0;*/
887// INF("GL: finish update cycle!");
888}
889
890/* vsync games - not for now though */
891#define VSYNC_TO_SCREEN 1
892
893static void *
894eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
895{
896 Render_Engine *re;
897 Tilebuf_Rect *rects;
898
899 re = (Render_Engine *)data;
900 /* get the upate rect surface - return engine data as dummy */
901 rects = evas_common_tilebuf_get_render_rects(re->tb);
902 if (rects)
903 {
904 evas_common_tilebuf_free_render_rects(rects);
905 evas_common_tilebuf_clear(re->tb);
906 eng_window_use(re->win);
907 if (!_re_wincheck(re)) return NULL;
908 evas_gl_common_context_flush(re->win->gl_context);
909 evas_gl_common_context_newframe(re->win->gl_context);
910 if (x) *x = 0;
911 if (y) *y = 0;
912 if (w) *w = re->win->w;
913 if (h) *h = re->win->h;
914 if (cx) *cx = 0;
915 if (cy) *cy = 0;
916 if (cw) *cw = re->win->w;
917 if (ch) *ch = re->win->h;
918 return re->win->gl_context->def_surface;
919 }
920 return NULL;
921}
922
923//#define FRAMECOUNT 1
924
925#ifdef FRAMECOUNT
926static double
927get_time(void)
928{
929 struct timeval timev;
930
931 gettimeofday(&timev, NULL);
932 return (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
933}
934#endif
935
936static int safe_native = -1;
937
938static void
939eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x __UNUSED__, int y __UNUSED__, int w __UNUSED__, int h __UNUSED__)
940{
941 Render_Engine *re;
942#ifdef FRAMECOUNT
943 static double pt = 0.0;
944 double ta, tb;
945#endif
946
947 re = (Render_Engine *)data;
948 /* put back update surface.. in this case just unflag redraw */
949 if (!_re_wincheck(re)) return;
950 re->win->draw.redraw = 0;
951 re->win->draw.drew = 1;
952 evas_gl_common_context_flush(re->win->gl_context);
953 if (safe_native == -1)
954 {
955 const char *s;
956
957 s = getenv("EVAS_GL_SAFE_NATIVE");
958 safe_native = 0;
959 if (s)
960 safe_native = atoi(s);
961 else
962 {
963 s = (const char *)glGetString(GL_RENDERER);
964 if (s)
965 {
966 if (strstr(s, "PowerVR SGX 540") || strstr(s, "Mali-400 MP"))
967 safe_native = 1;
968 }
969 }
970 }
971 // this is needed to make sure all previous rendering is flushed to
972 // buffers/surfaces
973# ifdef FRAMECOUNT
974 double t0 = get_time();
975 ta = t0 - pt;
976 pt = t0;
977# endif
978 // previous rendering should be done and swapped
979 if (!safe_native) eglWaitNative(EGL_CORE_NATIVE_ENGINE);
980# ifdef FRAMECOUNT
981 double t1 = get_time();
982 tb = t1 - t0;
983 printf("... %1.5f -> %1.5f | ", ta, tb);
984# endif
985 if (eglGetError() != EGL_SUCCESS)
986 {
987 printf("Error: eglWaitNative(EGL_CORE_NATIVE_ENGINE) fail.\n");
988 }
989}
990
991static void
992eng_output_flush(void *data)
993{
994 Render_Engine *re;
995
996 re = (Render_Engine *)data;
997 if (!_re_wincheck(re)) return;
998 if (!re->win->draw.drew) return;
999//x// printf("frame -> flush\n");
1000 re->win->draw.drew = 0;
1001 eng_window_use(re->win);
1002
1003# ifdef FRAMECOUNT
1004 double t0 = get_time();
1005# endif
1006
1007 if (!re->vsync)
1008 {
1009 if (re->info->vsync) eglSwapInterval(re->win->egl_disp, 1);
1010 else eglSwapInterval(re->win->egl_disp, 0);
1011 re->vsync = 1;
1012 }
1013
1014 if (re->info->callback.pre_swap)
1015 re->info->callback.pre_swap(re->info->callback.data, re->evas);
1016
1017 eglSwapBuffers(re->win->egl_disp, re->win->egl_surface[0]);
1018 if (!safe_native) eglWaitGL();
1019
1020 if (re->info->callback.post_swap)
1021 re->info->callback.post_swap(re->info->callback.data, re->evas);
1022
1023 if (eglGetError() != EGL_SUCCESS)
1024 printf("Error: eglSwapBuffers() fail.\n");
1025
1026# ifdef FRAMECOUNT
1027 double t1 = get_time();
1028 printf("%1.5f\n", t1 - t0);
1029# endif
1030}
1031
1032static void
1033eng_output_idle_flush(void *data)
1034{
1035 Render_Engine *re;
1036
1037 re = (Render_Engine *)data;
1038}
1039
1040static void
1041eng_output_dump(void *data)
1042{
1043 Render_Engine *re;
1044
1045 re = (Render_Engine *)data;
1046 evas_common_image_image_all_unload();
1047 evas_common_font_font_all_unload();
1048 evas_gl_common_image_all_unload(re->win->gl_context);
1049 _re_winfree(re);
1050}
1051
1052static void
1053eng_context_cutout_add(void *data __UNUSED__, void *context, int x, int y, int w, int h)
1054{
1055// Render_Engine *re;
1056//
1057// re = (Render_Engine *)data;
1058// re->win->gl_context->dc = context;
1059 evas_common_draw_context_add_cutout(context, x, y, w, h);
1060}
1061
1062static void
1063eng_context_cutout_clear(void *data __UNUSED__, void *context)
1064{
1065// Render_Engine *re;
1066//
1067// re = (Render_Engine *)data;
1068// re->win->gl_context->dc = context;
1069 evas_common_draw_context_clear_cutouts(context);
1070}
1071
1072static void
1073eng_rectangle_draw(void *data, void *context, void *surface, int x, int y, int w, int h)
1074{
1075 Render_Engine *re;
1076
1077 re = (Render_Engine *)data;
1078 eng_window_use(re->win);
1079 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1080 re->win->gl_context->dc = context;
1081 evas_gl_common_rect_draw(re->win->gl_context, x, y, w, h);
1082}
1083
1084static void
1085eng_line_draw(void *data, void *context, void *surface, int x1, int y1, int x2, int y2)
1086{
1087 Render_Engine *re;
1088
1089 re = (Render_Engine *)data;
1090 eng_window_use(re->win);
1091 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1092 re->win->gl_context->dc = context;
1093 evas_gl_common_line_draw(re->win->gl_context, x1, y1, x2, y2);
1094}
1095
1096static void *
1097eng_polygon_point_add(void *data, void *context __UNUSED__, void *polygon, int x, int y)
1098{
1099 Render_Engine *re;
1100
1101 re = (Render_Engine *)data;
1102 return evas_gl_common_poly_point_add(polygon, x, y);
1103}
1104
1105static void *
1106eng_polygon_points_clear(void *data, void *context __UNUSED__, void *polygon)
1107{
1108 Render_Engine *re;
1109
1110 re = (Render_Engine *)data;
1111 return evas_gl_common_poly_points_clear(polygon);
1112}
1113
1114static void
1115eng_polygon_draw(void *data, void *context, void *surface __UNUSED__, void *polygon, int x, int y)
1116{
1117 Render_Engine *re;
1118
1119 re = (Render_Engine *)data;
1120 eng_window_use(re->win);
1121 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1122 re->win->gl_context->dc = context;
1123 evas_gl_common_poly_draw(re->win->gl_context, polygon, x, y);
1124}
1125
1126static int
1127eng_image_alpha_get(void *data __UNUSED__, void *image)
1128{
1129// Render_Engine *re;
1130 Evas_GL_Image *im;
1131
1132// re = (Render_Engine *)data;
1133 if (!image) return 1;
1134 im = image;
1135 return im->alpha;
1136}
1137
1138static int
1139eng_image_colorspace_get(void *data __UNUSED__, void *image)
1140{
1141// Render_Engine *re;
1142 Evas_GL_Image *im;
1143
1144// re = (Render_Engine *)data;
1145 if (!image) return EVAS_COLORSPACE_ARGB8888;
1146 im = image;
1147 return im->cs.space;
1148}
1149
1150static void
1151eng_image_mask_create(void *data __UNUSED__, void *image)
1152{
1153 Evas_GL_Image *im;
1154
1155 if (!image) return;
1156 im = image;
1157 if (!im->im->image.data)
1158 evas_cache_image_load_data(&im->im->cache_entry);
1159 if (!im->tex)
1160 im->tex = evas_gl_common_texture_new(im->gc, im->im);
1161}
1162
1163
1164static void *
1165eng_image_alpha_set(void *data, void *image, int has_alpha)
1166{
1167 Render_Engine *re;
1168 Evas_GL_Image *im;
1169
1170 re = (Render_Engine *)data;
1171 if (!image) return NULL;
1172 im = image;
1173 if (im->alpha == has_alpha) return image;
1174 if (im->native.data)
1175 {
1176 im->alpha = has_alpha;
1177 return image;
1178 }
1179 eng_window_use(re->win);
1180 if ((im->tex) && (im->tex->pt->dyn.img))
1181 {
1182 im->alpha = has_alpha;
1183 im->tex->alpha = im->alpha;
1184 return image;
1185 }
1186 /* FIXME: can move to gl_common */
1187 if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return im;
1188 if ((has_alpha) && (im->im->cache_entry.flags.alpha)) return image;
1189 else if ((!has_alpha) && (!im->im->cache_entry.flags.alpha)) return image;
1190 if (im->references > 1)
1191 {
1192 Evas_GL_Image *im_new;
1193
1194 im_new = evas_gl_common_image_new_from_copied_data
1195 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
1196 im->im->image.data,
1197 eng_image_alpha_get(data, image),
1198 eng_image_colorspace_get(data, image));
1199 if (!im_new) return im;
1200 evas_gl_common_image_free(im);
1201 im = im_new;
1202 }
1203 else
1204 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1205 return evas_gl_common_image_alpha_set(im, has_alpha ? 1 : 0);
1206// im->im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
1207// return image;
1208}
1209
1210static void *
1211eng_image_border_set(void *data __UNUSED__, void *image, int l __UNUSED__, int r __UNUSED__, int t __UNUSED__, int b __UNUSED__)
1212{
1213// Render_Engine *re;
1214//
1215// re = (Render_Engine *)data;
1216 return image;
1217}
1218
1219static void
1220eng_image_border_get(void *data __UNUSED__, void *image __UNUSED__, int *l __UNUSED__, int *r __UNUSED__, int *t __UNUSED__, int *b __UNUSED__)
1221{
1222// Render_Engine *re;
1223//
1224// re = (Render_Engine *)data;
1225}
1226
1227static char *
1228eng_image_comment_get(void *data __UNUSED__, void *image, char *key __UNUSED__)
1229{
1230// Render_Engine *re;
1231 Evas_GL_Image *im;
1232
1233// re = (Render_Engine *)data;
1234 if (!image) return NULL;
1235 im = image;
1236 if (!im->im) return NULL;
1237 return im->im->info.comment;
1238}
1239
1240static char *
1241eng_image_format_get(void *data __UNUSED__, void *image)
1242{
1243// Render_Engine *re;
1244 Evas_GL_Image *im;
1245
1246// re = (Render_Engine *)data;
1247 im = image;
1248 return NULL;
1249}
1250
1251static void
1252eng_image_colorspace_set(void *data, void *image, int cspace)
1253{
1254 Render_Engine *re;
1255 Evas_GL_Image *im;
1256
1257 re = (Render_Engine *)data;
1258 if (!image) return;
1259 im = image;
1260 if (im->native.data) return;
1261 /* FIXME: can move to gl_common */
1262 if (im->cs.space == cspace) return;
1263 eng_window_use(re->win);
1264 evas_cache_image_colorspace(&im->im->cache_entry, cspace);
1265 switch (cspace)
1266 {
1267 case EVAS_COLORSPACE_ARGB8888:
1268 if (im->cs.data)
1269 {
1270 if (!im->cs.no_free) free(im->cs.data);
1271 im->cs.data = NULL;
1272 im->cs.no_free = 0;
1273 }
1274 break;
1275 case EVAS_COLORSPACE_YCBCR422P601_PL:
1276 case EVAS_COLORSPACE_YCBCR422P709_PL:
1277 case EVAS_COLORSPACE_YCBCR422601_PL:
1278 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1279 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1280 if (im->tex) evas_gl_common_texture_free(im->tex);
1281 im->tex = NULL;
1282 if (im->cs.data)
1283 {
1284 if (!im->cs.no_free) free(im->cs.data);
1285 }
1286 if (im->im->cache_entry.h > 0)
1287 im->cs.data =
1288 calloc(1, im->im->cache_entry.h * sizeof(unsigned char *) * 2);
1289 else
1290 im->cs.data = NULL;
1291 im->cs.no_free = 0;
1292 break;
1293 default:
1294 abort();
1295 break;
1296 }
1297 im->cs.space = cspace;
1298}
1299
1300/////////////////////////////////////////////////////////////////////////
1301//
1302//
1303typedef struct _Native Native;
1304
1305struct _Native
1306{
1307 Evas_Native_Surface ns;
1308 struct wl_egl_pixmap *pixmap;
1309
1310 void *egl_surface;
1311};
1312
1313// FIXME: this is enabled so updates happen - but its SLOOOOOOOOOOOOOOOW
1314// (i am sure this is the reason) not to mention seemingly superfluous. but
1315// i need to enable it for it to work on fglrx at least. havent tried nvidia.
1316//
1317// why is this the case? does anyone know? has anyone tried it on other gfx
1318// drivers?
1319//
1320//#define GLX_TEX_PIXMAP_RECREATE 1
1321
1322static void *
1323eng_image_native_set(void *data, void *image, void *native)
1324{
1325 Render_Engine *re = (Render_Engine *)data;
1326 Evas_Native_Surface *ns = native;
1327 Evas_GL_Image *im = image, *im2 = NULL;
1328 Native *n = NULL;
1329
1330 if (!im)
1331 {
1332 if ((!ns) && (ns->type == EVAS_NATIVE_SURFACE_OPENGL))
1333 {
1334 im = evas_gl_common_image_new_from_data(re->win->gl_context,
1335 ns->data.opengl.w,
1336 ns->data.opengl.h,
1337 NULL, 1,
1338 EVAS_COLORSPACE_ARGB8888);
1339 }
1340 else
1341 return NULL;
1342 }
1343
1344 if (ns)
1345 {
1346 if (im->native.data) return im;
1347 }
1348 if ((!ns) && (!im->native.data)) return im;
1349
1350 eng_window_use(re->win);
1351
1352 if (im->native.data)
1353 {
1354 if (im->native.func.free)
1355 im->native.func.free(im->native.func.data, im);
1356 evas_gl_common_image_native_disable(im);
1357 }
1358
1359 if (!ns) return im;
1360
1361 if (im2 == im) return im;
1362 if (im2)
1363 {
1364 n = im2->native.data;
1365 if (n)
1366 {
1367 evas_gl_common_image_ref(im2);
1368 evas_gl_common_image_free(im);
1369 return im2;
1370 }
1371 }
1372
1373 im2 = evas_gl_common_image_new_from_data(re->win->gl_context,
1374 im->w, im->h, NULL, im->alpha,
1375 EVAS_COLORSPACE_ARGB8888);
1376 evas_gl_common_image_free(im);
1377 im = im2;
1378
1379 return im;
1380}
1381
1382static void *
1383eng_image_native_get(void *data __UNUSED__, void *image)
1384{
1385 Evas_GL_Image *im;
1386 Native *n;
1387
1388 if (!(im = image)) return NULL;
1389 if (!(n = im->native.data)) return NULL;
1390 return &(n->ns);
1391}
1392
1393#if 0 // filtering disabled
1394static void
1395eng_image_draw_filtered(void *data, void *context, void *surface,
1396 void *image, Evas_Filter_Info *filter)
1397{
1398 Render_Engine *re = data;
1399
1400 if (!image) return;
1401 eng_window_use(re->win);
1402 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1403 re->win->gl_context->dc = context;
1404
1405 evas_gl_common_filter_draw(re->win->gl_context, image, filter);
1406}
1407
1408static Filtered_Image *
1409eng_image_filtered_get(void *im, uint8_t *key, size_t keylen)
1410{
1411 return evas_gl_common_image_filtered_get(im, key, keylen);
1412}
1413
1414static Filtered_Image *
1415eng_image_filtered_save(void *im, void *fim, uint8_t *key, size_t keylen)
1416{
1417 return evas_gl_common_image_filtered_save(im, fim, key, keylen);
1418}
1419
1420static void
1421eng_image_filtered_free(void *im, Filtered_Image *fim)
1422{
1423 evas_gl_common_image_filtered_free(im, fim);
1424}
1425#endif
1426
1427static void *
1428eng_image_load(void *data, const char *file, const char *key, int *error, Evas_Image_Load_Opts *lo)
1429{
1430 Render_Engine *re;
1431
1432 re = (Render_Engine *)data;
1433 *error = EVAS_LOAD_ERROR_NONE;
1434 eng_window_use(re->win);
1435 return evas_gl_common_image_load(re->win->gl_context, file, key, lo, error);
1436}
1437
1438static void *
1439eng_image_new_from_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
1440{
1441 Render_Engine *re;
1442
1443 re = (Render_Engine *)data;
1444 eng_window_use(re->win);
1445 return evas_gl_common_image_new_from_data(re->win->gl_context, w, h, image_data, alpha, cspace);
1446}
1447
1448static void *
1449eng_image_new_from_copied_data(void *data, int w, int h, DATA32 *image_data, int alpha, int cspace)
1450{
1451 Render_Engine *re;
1452
1453 re = (Render_Engine *)data;
1454 eng_window_use(re->win);
1455 return evas_gl_common_image_new_from_copied_data(re->win->gl_context, w, h, image_data, alpha, cspace);
1456}
1457
1458static void
1459eng_image_free(void *data, void *image)
1460{
1461 Render_Engine *re;
1462
1463 re = (Render_Engine *)data;
1464 if (!image) return;
1465 eng_window_use(re->win);
1466 evas_gl_common_image_free(image);
1467}
1468
1469static void
1470eng_image_size_get(void *data __UNUSED__, void *image, int *w, int *h)
1471{
1472 if (!image)
1473 {
1474 *w = 0;
1475 *h = 0;
1476 return;
1477 }
1478 if (w) *w = ((Evas_GL_Image *)image)->w;
1479 if (h) *h = ((Evas_GL_Image *)image)->h;
1480}
1481
1482static void *
1483eng_image_size_set(void *data, void *image, int w, int h)
1484{
1485 Render_Engine *re;
1486 Evas_GL_Image *im = image;
1487 Evas_GL_Image *im_old;
1488
1489 re = (Render_Engine *)data;
1490 if (!im) return NULL;
1491 if (im->native.data)
1492 {
1493 im->w = w;
1494 im->h = h;
1495 return image;
1496 }
1497 eng_window_use(re->win);
1498 if ((im->tex) && (im->tex->pt->dyn.img))
1499 {
1500 evas_gl_common_texture_free(im->tex);
1501 im->tex = NULL;
1502 im->w = w;
1503 im->h = h;
1504 im->tex = evas_gl_common_texture_dynamic_new(im->gc, im);
1505 return image;
1506 }
1507 im_old = image;
1508
1509 switch (eng_image_colorspace_get(data, image))
1510 {
1511 case EVAS_COLORSPACE_YCBCR422P601_PL:
1512 case EVAS_COLORSPACE_YCBCR422P709_PL:
1513 case EVAS_COLORSPACE_YCBCR422601_PL:
1514 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1515 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1516 w &= ~0x1;
1517 break;
1518 }
1519
1520 if ((im_old) &&
1521 ((int)im_old->im->cache_entry.w == w) &&
1522 ((int)im_old->im->cache_entry.h == h))
1523 return image;
1524 if (im_old)
1525 {
1526 im = evas_gl_common_image_new(re->win->gl_context, w, h,
1527 eng_image_alpha_get(data, image),
1528 eng_image_colorspace_get(data, image));
1529 /*
1530 evas_common_load_image_data_from_file(im_old->im);
1531 if (im_old->im->image->data)
1532 {
1533 evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0);
1534 evas_common_cpu_end_opt();
1535 }
1536 */
1537 evas_gl_common_image_free(im_old);
1538 }
1539 else
1540 im = evas_gl_common_image_new(re->win->gl_context, w, h, 1, EVAS_COLORSPACE_ARGB8888);
1541 return im;
1542}
1543
1544static void *
1545eng_image_dirty_region(void *data, void *image, int x, int y, int w, int h)
1546{
1547 Render_Engine *re;
1548 Evas_GL_Image *im = image;
1549
1550 re = (Render_Engine *)data;
1551 if (!image) return NULL;
1552 if (im->native.data) return image;
1553 eng_window_use(re->win);
1554 evas_gl_common_image_dirty(image, x, y, w, h);
1555 return image;
1556}
1557
1558static void *
1559eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data, int *err)
1560{
1561 Render_Engine *re;
1562 Evas_GL_Image *im;
1563 int error;
1564
1565 re = (Render_Engine *)data;
1566 if (!image)
1567 {
1568 *image_data = NULL;
1569 if (err) *err = EVAS_LOAD_ERROR_GENERIC;
1570 return NULL;
1571 }
1572 im = image;
1573 if (im->native.data)
1574 {
1575 *image_data = NULL;
1576 if (err) *err = EVAS_LOAD_ERROR_NONE;
1577 return im;
1578 }
1579
1580 eng_window_use(re->win);
1581
1582 if ((im->tex) && (im->tex->pt) && (im->tex->pt->dyn.img) && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
1583 {
1584 if (im->tex->pt->dyn.checked_out > 0)
1585 {
1586 im->tex->pt->dyn.checked_out++;
1587 *image_data = im->tex->pt->dyn.data;
1588 if (err) *err = EVAS_LOAD_ERROR_NONE;
1589 return im;
1590 }
1591 *image_data = im->tex->pt->dyn.data = glsym_eglMapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
1592
1593 if (!im->tex->pt->dyn.data)
1594 {
1595 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1596 GLERR(__FUNCTION__, __FILE__, __LINE__, "");
1597 return im;
1598 }
1599 im->tex->pt->dyn.checked_out++;
1600
1601 if (err) *err = EVAS_LOAD_ERROR_NONE;
1602 return im;
1603 }
1604
1605 /* Engine can fail to create texture after cache drop like eng_image_content_hint_set function,
1606 so it is need to add code which check im->im's NULL value*/
1607
1608 if (!im->im)
1609 {
1610 *image_data = NULL;
1611 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1612 return NULL;
1613 }
1614
1615 error = evas_cache_image_load_data(&im->im->cache_entry);
1616 switch (im->cs.space)
1617 {
1618 case EVAS_COLORSPACE_ARGB8888:
1619 if (to_write)
1620 {
1621 if (im->references > 1)
1622 {
1623 Evas_GL_Image *im_new;
1624
1625 im_new = evas_gl_common_image_new_from_copied_data
1626 (im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
1627 im->im->image.data,
1628 eng_image_alpha_get(data, image),
1629 eng_image_colorspace_get(data, image));
1630 if (!im_new)
1631 {
1632 *image_data = NULL;
1633 if (err) *err = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
1634 return NULL;
1635 }
1636 evas_gl_common_image_free(im);
1637 im = im_new;
1638 }
1639 else
1640 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1641 }
1642 *image_data = im->im->image.data;
1643 break;
1644 case EVAS_COLORSPACE_YCBCR422P601_PL:
1645 case EVAS_COLORSPACE_YCBCR422P709_PL:
1646 case EVAS_COLORSPACE_YCBCR422601_PL:
1647 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1648 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1649 *image_data = im->cs.data;
1650 break;
1651 default:
1652 abort();
1653 break;
1654 }
1655 if (err) *err = error;
1656 return im;
1657}
1658
1659static void *
1660eng_image_data_put(void *data, void *image, DATA32 *image_data)
1661{
1662 Render_Engine *re;
1663 Evas_GL_Image *im, *im2;
1664
1665 re = (Render_Engine *)data;
1666 if (!image) return NULL;
1667 im = image;
1668 if (im->native.data) return image;
1669 eng_window_use(re->win);
1670 if ((im->tex) && (im->tex->pt)
1671 && (im->tex->pt->dyn.data)
1672 && (im->cs.space == EVAS_COLORSPACE_ARGB8888))
1673 {
1674 int w, h;
1675
1676 if (im->tex->pt->dyn.data == image_data)
1677 {
1678 im->tex->pt->dyn.checked_out--;
1679 if (im->tex->pt->dyn.checked_out == 0)
1680 glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
1681 return image;
1682 }
1683
1684 w = im->im->cache_entry.w;
1685 h = im->im->cache_entry.h;
1686 im2 = eng_image_new_from_data(data, w, h, image_data,
1687 eng_image_alpha_get(data, image),
1688 eng_image_colorspace_get(data, image));
1689 if (!im2) return im;
1690 evas_gl_common_image_free(im);
1691 im = im2;
1692 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1693 return im;
1694 }
1695 switch (im->cs.space)
1696 {
1697 case EVAS_COLORSPACE_ARGB8888:
1698 if (image_data != im->im->image.data)
1699 {
1700 int w, h;
1701
1702 w = im->im->cache_entry.w;
1703 h = im->im->cache_entry.h;
1704 im2 = eng_image_new_from_data(data, w, h, image_data,
1705 eng_image_alpha_get(data, image),
1706 eng_image_colorspace_get(data, image));
1707 if (!im2) return im;
1708 evas_gl_common_image_free(im);
1709 im = im2;
1710 }
1711 break;
1712 case EVAS_COLORSPACE_YCBCR422P601_PL:
1713 case EVAS_COLORSPACE_YCBCR422P709_PL:
1714 case EVAS_COLORSPACE_YCBCR422601_PL:
1715 case EVAS_COLORSPACE_YCBCR420NV12601_PL:
1716 case EVAS_COLORSPACE_YCBCR420TM12601_PL:
1717 if (image_data != im->cs.data)
1718 {
1719 if (im->cs.data)
1720 {
1721 if (!im->cs.no_free) free(im->cs.data);
1722 }
1723 im->cs.data = image_data;
1724 }
1725 evas_gl_common_image_dirty(im, 0, 0, 0, 0);
1726 break;
1727 default:
1728 abort();
1729 break;
1730 }
1731 return im;
1732}
1733
1734static void
1735eng_image_data_preload_request(void *data __UNUSED__, void *image, const void *target)
1736{
1737 Evas_GL_Image *gim = image;
1738 RGBA_Image *im;
1739
1740 if (!gim) return;
1741 if (gim->native.data) return;
1742 im = (RGBA_Image *)gim->im;
1743 if (!im) return;
1744 evas_cache_image_preload_data(&im->cache_entry, target);
1745}
1746
1747static void
1748eng_image_data_preload_cancel(void *data __UNUSED__, void *image, const void *target)
1749{
1750 Evas_GL_Image *gim = image;
1751 RGBA_Image *im;
1752
1753 if (!gim) return;
1754 if (gim->native.data) return;
1755 im = (RGBA_Image *)gim->im;
1756 if (!im) return;
1757 evas_cache_image_preload_cancel(&im->cache_entry, target);
1758}
1759
1760static void
1761eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, int smooth)
1762{
1763 Render_Engine *re;
1764
1765 re = (Render_Engine *)data;
1766 if (!image) return;
1767 eng_window_use(re->win);
1768 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1769 re->win->gl_context->dc = context;
1770 evas_gl_common_image_draw(re->win->gl_context, image,
1771 src_x, src_y, src_w, src_h,
1772 dst_x, dst_y, dst_w, dst_h,
1773 smooth);
1774}
1775
1776static void
1777eng_image_scale_hint_set(void *data __UNUSED__, void *image, int hint)
1778{
1779 if (image) evas_gl_common_image_scale_hint_set(image, hint);
1780}
1781
1782static int
1783eng_image_scale_hint_get(void *data __UNUSED__, void *image)
1784{
1785 Evas_GL_Image *gim = image;
1786 if (!gim) return EVAS_IMAGE_SCALE_HINT_NONE;
1787 return gim->scale_hint;
1788}
1789
1790static void
1791eng_image_map_draw(void *data, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level)
1792{
1793 Evas_GL_Image *gim = image;
1794 Render_Engine *re;
1795
1796 re = (Render_Engine *)data;
1797 if (!image) return;
1798 eng_window_use(re->win);
1799 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1800 re->win->gl_context->dc = context;
1801 if (npoints != 4)
1802 {
1803 // FIXME: nash - you didn't fix this
1804 abort();
1805 }
1806 if ((p[0].x == p[3].x) &&
1807 (p[1].x == p[2].x) &&
1808 (p[0].y == p[1].y) &&
1809 (p[3].y == p[2].y) &&
1810 (p[0].x <= p[1].x) &&
1811 (p[0].y <= p[2].y) &&
1812 (p[0].u == 0) &&
1813 (p[0].v == 0) &&
1814 (p[1].u == (gim->w << FP)) &&
1815 (p[1].v == 0) &&
1816 (p[2].u == (gim->w << FP)) &&
1817 (p[2].v == (gim->h << FP)) &&
1818 (p[3].u == 0) &&
1819 (p[3].v == (gim->h << FP)) &&
1820 (p[0].col == 0xffffffff) &&
1821 (p[1].col == 0xffffffff) &&
1822 (p[2].col == 0xffffffff) &&
1823 (p[3].col == 0xffffffff))
1824 {
1825 int dx, dy, dw, dh;
1826
1827 dx = p[0].x >> FP;
1828 dy = p[0].y >> FP;
1829 dw = (p[2].x >> FP) - dx;
1830 dh = (p[2].y >> FP) - dy;
1831 eng_image_draw(data, context, surface, image,
1832 0, 0, gim->w, gim->h, dx, dy, dw, dh, smooth);
1833 }
1834 else
1835 {
1836 evas_gl_common_image_map_draw(re->win->gl_context, image, npoints, p,
1837 smooth, level);
1838 }
1839}
1840
1841static void *
1842eng_image_map_surface_new(void *data, int w, int h, int alpha)
1843{
1844 Render_Engine *re;
1845
1846 re = (Render_Engine *)data;
1847 return evas_gl_common_image_surface_new(re->win->gl_context, w, h, alpha);
1848}
1849
1850static void
1851eng_image_map_surface_free(void *data __UNUSED__, void *surface)
1852{
1853 evas_gl_common_image_free(surface);
1854}
1855
1856static void
1857eng_image_content_hint_set(void *data __UNUSED__, void *image, int hint)
1858{
1859 if (image) evas_gl_common_image_content_hint_set(image, hint);
1860}
1861
1862static int
1863eng_image_content_hint_get(void *data __UNUSED__, void *image)
1864{
1865 Evas_GL_Image *gim = image;
1866 if (!gim) return EVAS_IMAGE_CONTENT_HINT_NONE;
1867 return gim->content_hint;
1868}
1869
1870static void
1871eng_image_cache_flush(void *data)
1872{
1873 Render_Engine *re;
1874 int tmp_size;
1875
1876 re = (Render_Engine *)data;
1877
1878 tmp_size = evas_common_image_get_cache();
1879 evas_common_image_set_cache(0);
1880 evas_common_rgba_image_scalecache_flush();
1881 evas_gl_common_image_cache_flush(re->win->gl_context);
1882 evas_common_image_set_cache(tmp_size);
1883}
1884
1885static void
1886eng_image_cache_set(void *data, int bytes)
1887{
1888 Render_Engine *re;
1889
1890 re = (Render_Engine *)data;
1891 evas_common_image_set_cache(bytes);
1892 evas_common_rgba_image_scalecache_size_set(bytes);
1893 evas_gl_common_image_cache_flush(re->win->gl_context);
1894}
1895
1896static int
1897eng_image_cache_get(void *data __UNUSED__)
1898{
1899 return evas_common_image_get_cache();
1900}
1901
1902static void
1903eng_image_stride_get(void *data __UNUSED__, void *image, int *stride)
1904{
1905 Evas_GL_Image *im = image;
1906
1907 if ((im->tex) && (im->tex->pt->dyn.img))
1908 *stride = im->tex->pt->dyn.stride;
1909 else
1910 *stride = im->w * 4;
1911}
1912
1913static void
1914eng_font_draw(void *data, void *context, void *surface, Evas_Font_Set *font, int x, int y, int w __UNUSED__, int h __UNUSED__, int ow __UNUSED__, int oh __UNUSED__, const Evas_Text_Props *intl_props)
1915{
1916 Render_Engine *re;
1917
1918 re = (Render_Engine *)data;
1919 eng_window_use(re->win);
1920 evas_gl_common_context_target_surface_set(re->win->gl_context, surface);
1921 re->win->gl_context->dc = context;
1922 {
1923 // FIXME: put im into context so we can free it
1924 static RGBA_Image *im = NULL;
1925
1926 if (!im)
1927 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
1928 im->cache_entry.w = re->win->w;
1929 im->cache_entry.h = re->win->h;
1930 evas_common_draw_context_font_ext_set(context,
1931 re->win->gl_context,
1932 evas_gl_font_texture_new,
1933 evas_gl_font_texture_free,
1934 evas_gl_font_texture_draw);
1935 evas_common_font_draw(im, context, (RGBA_Font *) font, x, y,
1936 intl_props);
1937 evas_common_draw_context_font_ext_set(context, NULL, NULL, NULL, NULL);
1938 }
1939}
1940
1941static Eina_Bool
1942eng_canvas_alpha_get(void *data, void *info __UNUSED__)
1943{
1944 Render_Engine *re = (Render_Engine *)data;
1945 return re->win->alpha;
1946}
1947
1948static int
1949_set_internal_config(Render_Engine_GL_Surface *sfc, Evas_GL_Config *cfg)
1950{
1951 // Also initialize pixel format here as well...
1952 switch(cfg->color_format)
1953 {
1954 case EVAS_GL_RGB_888:
1955 sfc->rt_fmt = GL_RGB;
1956 sfc->rt_internal_fmt = GL_RGB;
1957 break;
1958 case EVAS_GL_RGBA_8888:
1959 sfc->rt_fmt = GL_RGBA;
1960 sfc->rt_internal_fmt = GL_RGBA;
1961 break;
1962 default:
1963 ERR("Invalid Color Format!");
1964 return 0;
1965 }
1966
1967 switch(cfg->depth_bits)
1968 {
1969 case EVAS_GL_DEPTH_NONE:
1970 break;
1971 case EVAS_GL_DEPTH_BIT_8:
1972 case EVAS_GL_DEPTH_BIT_16:
1973 case EVAS_GL_DEPTH_BIT_24:
1974 // 24 bit doesn't work... just cover it with 16 for now..
1975 sfc->rb_depth_fmt = GL_DEPTH_COMPONENT16;
1976 break;
1977 case EVAS_GL_DEPTH_BIT_32:
1978 default:
1979 ERR("Unsupported Depth Bits Format!");
1980 return 0;
1981 }
1982
1983 switch(cfg->stencil_bits)
1984 {
1985 case EVAS_GL_STENCIL_NONE:
1986 break;
1987 case EVAS_GL_STENCIL_BIT_1:
1988 case EVAS_GL_STENCIL_BIT_2:
1989 case EVAS_GL_STENCIL_BIT_4:
1990 case EVAS_GL_STENCIL_BIT_8:
1991 sfc->rb_stencil_fmt = GL_STENCIL_INDEX8;
1992 break;
1993 case EVAS_GL_STENCIL_BIT_16:
1994 default:
1995 ERR("Unsupported Stencil Bits Format!");
1996 return 0;
1997 }
1998
1999 // Do Packed Depth24_Stencil8 Later...
2000
2001 return 1;
2002}
2003
2004static int
2005_create_rt_buffers(Render_Engine *data __UNUSED__,
2006 Render_Engine_GL_Surface *sfc)
2007{
2008 // Render Target texture
2009 glGenTextures(1, &sfc->rt_tex );
2010
2011 // Depth RenderBuffer - Create storage here...
2012 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2013 glGenRenderbuffers(1, &sfc->rb_depth);
2014
2015 // Stencil RenderBuffer - Create Storage here...
2016 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2017 glGenRenderbuffers(1, &sfc->rb_stencil);
2018
2019 return 1;
2020}
2021
2022static int
2023_attach_fbo_surface(Render_Engine *data __UNUSED__,
2024 Render_Engine_GL_Surface *sfc,
2025 Render_Engine_GL_Context *ctx)
2026{
2027 int fb_status;
2028
2029 // Initialize Texture
2030 glBindTexture(GL_TEXTURE_2D, sfc->rt_tex );
2031 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
2032 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
2033 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
2034 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
2035 glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, sfc->w, sfc->h, 0,
2036 GL_RGBA, GL_UNSIGNED_BYTE, NULL);
2037 glBindTexture(GL_TEXTURE_2D, 0);
2038
2039
2040 // Attach texture to FBO
2041 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
2042 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
2043 GL_TEXTURE_2D, sfc->rt_tex, 0);
2044
2045 // Depth RenderBuffer - Attach it to FBO
2046 if (sfc->depth_bits != EVAS_GL_DEPTH_NONE)
2047 {
2048 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_depth);
2049 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_depth_fmt,
2050 sfc->w, sfc->h);
2051 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
2052 GL_RENDERBUFFER, sfc->rb_depth);
2053 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2054 }
2055
2056 // Stencil RenderBuffer - Attach it to FBO
2057 if (sfc->stencil_bits != EVAS_GL_STENCIL_NONE)
2058 {
2059 glBindRenderbuffer(GL_RENDERBUFFER, sfc->rb_stencil);
2060 glRenderbufferStorage(GL_RENDERBUFFER, sfc->rb_stencil_fmt,
2061 sfc->w, sfc->h);
2062 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
2063 GL_RENDERBUFFER, sfc->rb_stencil);
2064 glBindRenderbuffer(GL_RENDERBUFFER, 0);
2065 }
2066
2067 // Check FBO for completeness
2068 fb_status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
2069 if (fb_status != GL_FRAMEBUFFER_COMPLETE)
2070 {
2071 ERR("FBO not complete!");
2072 return 0;
2073 }
2074
2075 return 1;
2076}
2077
2078
2079static void *
2080eng_gl_surface_create(void *data, void *config, int w, int h)
2081{
2082 Render_Engine *re;
2083 Render_Engine_GL_Surface *sfc;
2084 Render_Engine_GL_Resource *rsc;
2085 Evas_GL_Config *cfg;
2086 int ret;
2087
2088 sfc = calloc(1, sizeof(Render_Engine_GL_Surface));
2089 if (!sfc) return NULL;
2090
2091 re = (Render_Engine *)data;
2092 cfg = (Evas_GL_Config *)config;
2093
2094 sfc->initialized = 0;
2095 sfc->fbo_attached = 0;
2096 sfc->w = w;
2097 sfc->h = h;
2098 sfc->depth_bits = cfg->depth_bits;
2099 sfc->stencil_bits = cfg->stencil_bits;
2100 sfc->rt_tex = 0;
2101 sfc->rb_depth = 0;
2102 sfc->rb_stencil = 0;
2103
2104 // Set the internal format based on the config
2105 if (!_set_internal_config(sfc, cfg))
2106 {
2107 ERR("Unsupported Format!");
2108 free(sfc);
2109 return NULL;
2110 }
2111
2112 // Create internal resource context if it hasn't been created already
2113 if ((rsc = eina_tls_get(resource_key)) == NULL)
2114 {
2115 if ((rsc = _create_internal_glue_resources(re)) == NULL)
2116 {
2117 ERR("Error creating internal resources.");
2118 free(sfc);
2119 return NULL;
2120 }
2121 }
2122
2123 // I'm using evas's original context to create the render target texture
2124 // This is to prevent awkwardness in using native_surface_get() function
2125 // If the rt texture creation is deferred till the context is created and
2126 // make_current called, the user can't call native_surface_get() right
2127 // after the surface is created. hence this is done here using evas' context.
2128 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
2129 if (!ret)
2130 {
2131 ERR("xxxMakeCurrent() failed!");
2132 free(sfc);
2133 return NULL;
2134 }
2135
2136 // Create Render texture
2137 if (!_create_rt_buffers(re, sfc))
2138 {
2139 ERR("_create_rt_buffers() failed.");
2140 free(sfc);
2141 return NULL;
2142 }
2143
2144 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
2145 if (!ret)
2146 {
2147 ERR("xxxMakeCurrent() failed!");
2148 free(sfc);
2149 return NULL;
2150 }
2151
2152 return sfc;
2153}
2154
2155static int
2156eng_gl_surface_destroy(void *data, void *surface)
2157{
2158 Render_Engine *re;
2159 Render_Engine_GL_Surface *sfc;
2160 Render_Engine_GL_Resource *rsc;
2161 int ret;
2162
2163 re = (Render_Engine *)data;
2164 sfc = (Render_Engine_GL_Surface*)surface;
2165
2166 if (!sfc) return 0;
2167
2168 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2169
2170 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface, rsc->surface, rsc->context);
2171 if (!ret)
2172 {
2173 ERR("xxxMakeCurrent() failed!");
2174 return 0;
2175 }
2176
2177 // Delete FBO/RBO and Texture here
2178 if (sfc->rt_tex)
2179 glDeleteTextures(1, &sfc->rt_tex);
2180
2181 if (sfc->rb_depth)
2182 glDeleteRenderbuffers(1, &sfc->rb_depth);
2183
2184 if (sfc->rb_stencil)
2185 glDeleteRenderbuffers(1, &sfc->rb_stencil);
2186
2187 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
2188 if (!ret)
2189 {
2190 ERR("xxxMakeCurrent() failed!");
2191 free(sfc);
2192 return 0;
2193 }
2194
2195 free(sfc);
2196 surface = NULL;
2197
2198 return 1;
2199}
2200
2201static void *
2202eng_gl_context_create(void *data, void *share_context)
2203{
2204 Render_Engine *re;
2205 Render_Engine_GL_Context *ctx;
2206 Render_Engine_GL_Context *share_ctx;
2207 int context_attrs[3];
2208
2209 ctx = calloc(1, sizeof(Render_Engine_GL_Context));
2210
2211 if (!ctx) return NULL;
2212
2213 re = (Render_Engine *)data;
2214 share_ctx = (Render_Engine_GL_Context *)share_context;
2215
2216 // Set the share context to Evas' GL context if share_context is NULL.
2217 // Otherwise set it to the given share_context.
2218
2219 // EGL
2220 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
2221 context_attrs[1] = 2;
2222 context_attrs[2] = EGL_NONE;
2223
2224 if (share_ctx)
2225 {
2226 ctx->context = eglCreateContext(re->win->egl_disp,
2227 re->win->egl_config,
2228 share_ctx->context, // Share Context
2229 context_attrs);
2230 }
2231 else
2232 {
2233 ctx->context = eglCreateContext(re->win->egl_disp,
2234 re->win->egl_config,
2235 re->win->egl_context[0], // Evas' GL Context
2236 context_attrs);
2237 }
2238
2239 if (!ctx->context)
2240 {
2241 ERR("eglCreateContext() fail. code=%#x", eglGetError());
2242 return NULL;
2243 }
2244
2245 ctx->initialized = 0;
2246 ctx->context_fbo = 0;
2247 ctx->current_sfc = NULL;
2248
2249 return ctx;
2250}
2251
2252static int
2253eng_gl_context_destroy(void *data, void *context)
2254{
2255 Render_Engine *re;
2256 Render_Engine_GL_Context *ctx;
2257 Render_Engine_GL_Resource *rsc;
2258 int ret;
2259
2260 re = (Render_Engine *)data;
2261 ctx = (Render_Engine_GL_Context*)context;
2262
2263 if (!ctx) return 0;
2264
2265 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2266
2267 // 1. Do a make current with the given context
2268 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
2269 rsc->surface, ctx->context);
2270 if (!ret)
2271 {
2272 ERR("xxxMakeCurrent() failed!");
2273 return 0;
2274 }
2275
2276 // 2. Delete the FBO
2277 if (ctx->context_fbo)
2278 glDeleteFramebuffers(1, &ctx->context_fbo);
2279
2280 // 3. Destroy the Context
2281 eglDestroyContext(re->win->egl_disp, ctx->context);
2282
2283 ctx->context = EGL_NO_CONTEXT;
2284
2285 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
2286 EGL_NO_SURFACE, EGL_NO_CONTEXT);
2287 if (!ret)
2288 {
2289 ERR("xxxMakeCurrent() failed!");
2290 return 0;
2291 }
2292
2293 free(ctx);
2294 context = NULL;
2295
2296 return 1;
2297}
2298
2299static int
2300eng_gl_make_current(void *data __UNUSED__, void *surface, void *context)
2301{
2302 Render_Engine *re;
2303 Render_Engine_GL_Surface *sfc;
2304 Render_Engine_GL_Context *ctx;
2305 int ret = 0;
2306 Render_Engine_GL_Resource *rsc;
2307
2308 re = (Render_Engine *)data;
2309 sfc = (Render_Engine_GL_Surface*)surface;
2310 ctx = (Render_Engine_GL_Context*)context;
2311
2312 // Unset surface/context
2313 if ((!sfc) || (!ctx))
2314 {
2315 ret = eglMakeCurrent(re->win->egl_disp, EGL_NO_SURFACE,
2316 EGL_NO_SURFACE, EGL_NO_CONTEXT);
2317 if (!ret)
2318 {
2319 ERR("xxxMakeCurrent() failed!");
2320 return 0;
2321 }
2322
2323 if (ctx) ctx->current_sfc = NULL;
2324 if (sfc) sfc->current_ctx = NULL;
2325 current_evgl_ctx = NULL;
2326 return 1;
2327 }
2328
2329 // Do a make current only if it's not already current
2330 if ((rsc = eina_tls_get(resource_key)) == EINA_FALSE) return 0;
2331
2332 if ((eglGetCurrentContext() != ctx->context) ||
2333 (eglGetCurrentSurface(EGL_READ) != rsc->surface) ||
2334 (eglGetCurrentSurface(EGL_DRAW) != rsc->surface) )
2335 {
2336 // Flush remainder of what's in Evas' pipeline
2337 if (re->win) eng_window_use(NULL);
2338
2339 // Do a make current
2340 ret = eglMakeCurrent(re->win->egl_disp, rsc->surface,
2341 rsc->surface, ctx->context);
2342 if (!ret)
2343 {
2344 ERR("xxxMakeCurrent() failed!");
2345 return 0;
2346 }
2347 }
2348
2349 // Create FBO if not already created
2350 if (!ctx->initialized)
2351 {
2352 glGenFramebuffers(1, &ctx->context_fbo);
2353 ctx->initialized = 1;
2354 }
2355
2356 // Attach FBO if it hasn't been attached or if surface changed
2357 if ((!sfc->fbo_attached) || (ctx->current_sfc != sfc))
2358 {
2359 if (!_attach_fbo_surface(re, sfc, ctx))
2360 {
2361 ERR("_attach_fbo_surface() failed.");
2362 return 0;
2363 }
2364
2365 if (ctx->current_fbo)
2366 // Bind to the previously bound buffer
2367 glBindFramebuffer(GL_FRAMEBUFFER, ctx->current_fbo);
2368 else
2369 // Bind FBO
2370 glBindFramebuffer(GL_FRAMEBUFFER, ctx->context_fbo);
2371
2372 sfc->fbo_attached = 1;
2373 }
2374
2375 // Set the current surface/context
2376 ctx->current_sfc = sfc;
2377 sfc->current_ctx = ctx;
2378 current_evgl_ctx = ctx;
2379
2380 return 1;
2381}
2382
2383static void *
2384eng_gl_string_query(void *data __UNUSED__, int name)
2385{
2386 switch(name)
2387 {
2388 case EVAS_GL_EXTENSIONS:
2389 return (void*)_evasgl_ext_string;
2390 default:
2391 return NULL;
2392 };
2393}
2394
2395static void *
2396eng_gl_proc_address_get(void *data __UNUSED__, const char *name)
2397{
2398 if (glsym_eglGetProcAddress) return glsym_eglGetProcAddress(name);
2399 return dlsym(RTLD_DEFAULT, name);
2400}
2401
2402static int
2403eng_gl_native_surface_get(void *data, void *surface, void *native_surface)
2404{
2405 Render_Engine *re;
2406 Render_Engine_GL_Surface *sfc;
2407 Evas_Native_Surface *ns;
2408
2409 re = (Render_Engine *)data;
2410 sfc = (Render_Engine_GL_Surface*)surface;
2411 ns = (Evas_Native_Surface*)native_surface;
2412
2413 ns->type = EVAS_NATIVE_SURFACE_OPENGL;
2414 ns->version = EVAS_NATIVE_SURFACE_VERSION;
2415 ns->data.opengl.texture_id = sfc->rt_tex;
2416 ns->data.opengl.x = 0;
2417 ns->data.opengl.y = 0;
2418 ns->data.opengl.w = sfc->w;
2419 ns->data.opengl.h = sfc->h;
2420
2421 return 1;
2422}
2423
2424
2425static const GLubyte *
2426evgl_glGetString(GLenum name)
2427{
2428 if (name == GL_EXTENSIONS)
2429 return (GLubyte *)_gl_ext_string; //glGetString(GL_EXTENSIONS);
2430 else
2431 return glGetString(name);
2432}
2433
2434static void
2435evgl_glBindFramebuffer(GLenum target, GLuint framebuffer)
2436{
2437 Render_Engine_GL_Context *ctx = current_evgl_ctx;
2438
2439 // Take care of BindFramebuffer 0 issue
2440 if (framebuffer==0)
2441 {
2442 if (ctx)
2443 {
2444 glBindFramebuffer(target, ctx->context_fbo);
2445 ctx->current_fbo = 0;
2446 }
2447 }
2448 else
2449 {
2450 glBindFramebuffer(target, framebuffer);
2451
2452 // Save this for restore when doing make current
2453 if (ctx)
2454 ctx->current_fbo = framebuffer;
2455 }
2456}
2457
2458static void
2459evgl_glBindRenderbuffer(GLenum target, GLuint renderbuffer)
2460{
2461 // Add logic to take care when renderbuffer=0
2462 // On a second thought we don't need this
2463 glBindRenderbuffer(target, renderbuffer);
2464}
2465
2466static void
2467evgl_glClearDepthf(GLclampf depth)
2468{
2469 glClearDepthf(depth);
2470}
2471
2472static void
2473evgl_glDepthRangef(GLclampf zNear, GLclampf zFar)
2474{
2475 glDepthRangef(zNear, zFar);
2476}
2477
2478static void
2479evgl_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
2480{
2481 glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
2482}
2483
2484static void
2485evgl_glReleaseShaderCompiler(void)
2486{
2487 glReleaseShaderCompiler();
2488}
2489
2490static void
2491evgl_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length)
2492{
2493 glShaderBinary(n, shaders, binaryformat, binary, length);
2494}
2495
2496//--------------------------------//
2497//#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
2498// EGL Extensions
2499static void *
2500evgl_evasglCreateImage(int target, void* buffer, int *attrib_list)
2501{
2502 if (current_engine)
2503 {
2504 return glsym_eglCreateImage(current_engine->win->egl_disp,
2505 EGL_NO_CONTEXT,
2506 target,
2507 buffer,
2508 attrib_list);
2509 }
2510 else
2511 {
2512 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
2513 return NULL;
2514 }
2515}
2516
2517static void
2518evgl_evasglDestroyImage(EvasGLImage image)
2519{
2520 if (current_engine)
2521 glsym_eglDestroyImage(current_engine->win->egl_disp, image);
2522 else
2523 ERR("Invalid Engine... (Can't acccess EGL Display)\n");
2524}
2525
2526static void
2527evgl_glEvasGLImageTargetTexture2DOES(GLenum target, EvasGLImage image)
2528{
2529 glsym_glEGLImageTargetTexture2DOES(target, image);
2530}
2531
2532static void
2533evgl_glEvasGLImageTargetRenderbufferStorageOES(GLenum target, EvasGLImage image)
2534{
2535 glsym_glEGLImageTargetTexture2DOES(target, image);
2536}
2537
2538//--------------------------------//
2539
2540
2541static void *
2542eng_gl_api_get(void *data)
2543{
2544 Render_Engine *re;
2545
2546 re = (Render_Engine *)data;
2547
2548 gl_funcs.version = EVAS_GL_API_VERSION;
2549
2550#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, )
2551 // GLES 2.0
2552 ORD(glActiveTexture);
2553 ORD(glAttachShader);
2554 ORD(glBindAttribLocation);
2555 ORD(glBindBuffer);
2556 ORD(glBindTexture);
2557 ORD(glBlendColor);
2558 ORD(glBlendEquation);
2559 ORD(glBlendEquationSeparate);
2560 ORD(glBlendFunc);
2561 ORD(glBlendFuncSeparate);
2562 ORD(glBufferData);
2563 ORD(glBufferSubData);
2564 ORD(glCheckFramebufferStatus);
2565 ORD(glClear);
2566 ORD(glClearColor);
2567// ORD(glClearDepthf);
2568 ORD(glClearStencil);
2569 ORD(glColorMask);
2570 ORD(glCompileShader);
2571 ORD(glCompressedTexImage2D);
2572 ORD(glCompressedTexSubImage2D);
2573 ORD(glCopyTexImage2D);
2574 ORD(glCopyTexSubImage2D);
2575 ORD(glCreateProgram);
2576 ORD(glCreateShader);
2577 ORD(glCullFace);
2578 ORD(glDeleteBuffers);
2579 ORD(glDeleteFramebuffers);
2580 ORD(glDeleteProgram);
2581 ORD(glDeleteRenderbuffers);
2582 ORD(glDeleteShader);
2583 ORD(glDeleteTextures);
2584 ORD(glDepthFunc);
2585 ORD(glDepthMask);
2586// ORD(glDepthRangef);
2587 ORD(glDetachShader);
2588 ORD(glDisable);
2589 ORD(glDisableVertexAttribArray);
2590 ORD(glDrawArrays);
2591 ORD(glDrawElements);
2592 ORD(glEnable);
2593 ORD(glEnableVertexAttribArray);
2594 ORD(glFinish);
2595 ORD(glFlush);
2596 ORD(glFramebufferRenderbuffer);
2597 ORD(glFramebufferTexture2D);
2598 ORD(glFrontFace);
2599 ORD(glGenBuffers);
2600 ORD(glGenerateMipmap);
2601 ORD(glGenFramebuffers);
2602 ORD(glGenRenderbuffers);
2603 ORD(glGenTextures);
2604 ORD(glGetActiveAttrib);
2605 ORD(glGetActiveUniform);
2606 ORD(glGetAttachedShaders);
2607 ORD(glGetAttribLocation);
2608 ORD(glGetBooleanv);
2609 ORD(glGetBufferParameteriv);
2610 ORD(glGetError);
2611 ORD(glGetFloatv);
2612 ORD(glGetFramebufferAttachmentParameteriv);
2613 ORD(glGetIntegerv);
2614 ORD(glGetProgramiv);
2615 ORD(glGetProgramInfoLog);
2616 ORD(glGetRenderbufferParameteriv);
2617 ORD(glGetShaderiv);
2618 ORD(glGetShaderInfoLog);
2619// ORD(glGetShaderPrecisionFormat);
2620 ORD(glGetShaderSource);
2621// ORD(glGetString);
2622 ORD(glGetTexParameterfv);
2623 ORD(glGetTexParameteriv);
2624 ORD(glGetUniformfv);
2625 ORD(glGetUniformiv);
2626 ORD(glGetUniformLocation);
2627 ORD(glGetVertexAttribfv);
2628 ORD(glGetVertexAttribiv);
2629 ORD(glGetVertexAttribPointerv);
2630 ORD(glHint);
2631 ORD(glIsBuffer);
2632 ORD(glIsEnabled);
2633 ORD(glIsFramebuffer);
2634 ORD(glIsProgram);
2635 ORD(glIsRenderbuffer);
2636 ORD(glIsShader);
2637 ORD(glIsTexture);
2638 ORD(glLineWidth);
2639 ORD(glLinkProgram);
2640 ORD(glPixelStorei);
2641 ORD(glPolygonOffset);
2642 ORD(glReadPixels);
2643// ORD(glReleaseShaderCompiler);
2644 ORD(glRenderbufferStorage);
2645 ORD(glSampleCoverage);
2646 ORD(glScissor);
2647// ORD(glShaderBinary);
2648 ORD(glShaderSource);
2649 ORD(glStencilFunc);
2650 ORD(glStencilFuncSeparate);
2651 ORD(glStencilMask);
2652 ORD(glStencilMaskSeparate);
2653 ORD(glStencilOp);
2654 ORD(glStencilOpSeparate);
2655 ORD(glTexImage2D);
2656 ORD(glTexParameterf);
2657 ORD(glTexParameterfv);
2658 ORD(glTexParameteri);
2659 ORD(glTexParameteriv);
2660 ORD(glTexSubImage2D);
2661 ORD(glUniform1f);
2662 ORD(glUniform1fv);
2663 ORD(glUniform1i);
2664 ORD(glUniform1iv);
2665 ORD(glUniform2f);
2666 ORD(glUniform2fv);
2667 ORD(glUniform2i);
2668 ORD(glUniform2iv);
2669 ORD(glUniform3f);
2670 ORD(glUniform3fv);
2671 ORD(glUniform3i);
2672 ORD(glUniform3iv);
2673 ORD(glUniform4f);
2674 ORD(glUniform4fv);
2675 ORD(glUniform4i);
2676 ORD(glUniform4iv);
2677 ORD(glUniformMatrix2fv);
2678 ORD(glUniformMatrix3fv);
2679 ORD(glUniformMatrix4fv);
2680 ORD(glUseProgram);
2681 ORD(glValidateProgram);
2682 ORD(glVertexAttrib1f);
2683 ORD(glVertexAttrib1fv);
2684 ORD(glVertexAttrib2f);
2685 ORD(glVertexAttrib2fv);
2686 ORD(glVertexAttrib3f);
2687 ORD(glVertexAttrib3fv);
2688 ORD(glVertexAttrib4f);
2689 ORD(glVertexAttrib4fv);
2690 ORD(glVertexAttribPointer);
2691 ORD(glViewport);
2692#undef ORD
2693
2694#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, glsym_)
2695 // Extensions
2696 ORD(glGetProgramBinaryOES);
2697 ORD(glProgramBinaryOES);
2698 ORD(glMapBufferOES);
2699 ORD(glUnmapBufferOES);
2700 ORD(glGetBufferPointervOES);
2701 ORD(glTexImage3DOES);
2702 ORD(glTexSubImage3DOES);
2703 ORD(glCopyTexSubImage3DOES);
2704 ORD(glCompressedTexImage3DOES);
2705 ORD(glCompressedTexSubImage3DOES);
2706 ORD(glFramebufferTexture3DOES);
2707 ORD(glGetPerfMonitorGroupsAMD);
2708 ORD(glGetPerfMonitorCountersAMD);
2709 ORD(glGetPerfMonitorGroupStringAMD);
2710 ORD(glGetPerfMonitorCounterStringAMD);
2711 ORD(glGetPerfMonitorCounterInfoAMD);
2712 ORD(glGenPerfMonitorsAMD);
2713 ORD(glDeletePerfMonitorsAMD);
2714 ORD(glSelectPerfMonitorCountersAMD);
2715 ORD(glBeginPerfMonitorAMD);
2716 ORD(glEndPerfMonitorAMD);
2717 ORD(glGetPerfMonitorCounterDataAMD);
2718 ORD(glDiscardFramebufferEXT);
2719 ORD(glMultiDrawArraysEXT);
2720 ORD(glMultiDrawElementsEXT);
2721 ORD(glDeleteFencesNV);
2722 ORD(glGenFencesNV);
2723 ORD(glIsFenceNV);
2724 ORD(glTestFenceNV);
2725 ORD(glGetFenceivNV);
2726 ORD(glFinishFenceNV);
2727 ORD(glSetFenceNV);
2728 ORD(glGetDriverControlsQCOM);
2729 ORD(glGetDriverControlStringQCOM);
2730 ORD(glEnableDriverControlQCOM);
2731 ORD(glDisableDriverControlQCOM);
2732 ORD(glExtGetTexturesQCOM);
2733 ORD(glExtGetBuffersQCOM);
2734 ORD(glExtGetRenderbuffersQCOM);
2735 ORD(glExtGetFramebuffersQCOM);
2736 ORD(glExtGetTexLevelParameterivQCOM);
2737 ORD(glExtTexObjectStateOverrideiQCOM);
2738 ORD(glExtGetTexSubImageQCOM);
2739 ORD(glExtGetBufferPointervQCOM);
2740 ORD(glExtGetShadersQCOM);
2741 ORD(glExtGetProgramsQCOM);
2742 ORD(glExtIsProgramBinaryQCOM);
2743 ORD(glExtGetProgramBinarySourceQCOM);
2744#undef ORD
2745
2746// Override functions wrapped by Evas_GL
2747#define ORD(f) EVAS_API_OVERRIDE(f, &gl_funcs, evgl_)
2748 ORD(glBindFramebuffer);
2749 ORD(glBindRenderbuffer);
2750
2751 // GLES2.0 API compat on top of desktop gl
2752 ORD(glClearDepthf);
2753 ORD(glDepthRangef);
2754 ORD(glGetShaderPrecisionFormat);
2755 ORD(glReleaseShaderCompiler);
2756 ORD(glShaderBinary);
2757
2758 ORD(glGetString);
2759
2760 // GLES 2.0 Extensions that needs wrapping
2761 ORD(evasglCreateImage);
2762 ORD(evasglDestroyImage);
2763 ORD(glEvasGLImageTargetTexture2DOES);
2764 ORD(glEvasGLImageTargetRenderbufferStorageOES);
2765
2766#undef ORD
2767
2768 return &gl_funcs;
2769}
2770
2771static int
2772eng_image_load_error_get(void *data __UNUSED__, void *image)
2773{
2774 Evas_GL_Image *im;
2775
2776 if (!image) return EVAS_LOAD_ERROR_NONE;
2777 im = image;
2778 return im->im->cache_entry.load_error;
2779}
2780
2781static Eina_Bool
2782eng_image_animated_get(void *data __UNUSED__, void *image)
2783{
2784 Evas_GL_Image *gim = image;
2785 Image_Entry *im;
2786
2787 if (!gim) return EINA_FALSE;
2788 im = (Image_Entry *)gim->im;
2789 if (!im) return EINA_FALSE;
2790
2791 return im->flags.animated;
2792}
2793
2794static int
2795eng_image_animated_frame_count_get(void *data __UNUSED__, void *image)
2796{
2797 Evas_GL_Image *gim = image;
2798 Image_Entry *im;
2799
2800 if (!gim) return -1;
2801 im = (Image_Entry *)gim->im;
2802 if (!im) return -1;
2803
2804 if (!im->flags.animated) return -1;
2805 return im->frame_count;
2806}
2807
2808static Evas_Image_Animated_Loop_Hint
2809eng_image_animated_loop_type_get(void *data __UNUSED__, void *image)
2810{
2811 Evas_GL_Image *gim = image;
2812 Image_Entry *im;
2813
2814 if (!gim) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2815 im = (Image_Entry *)gim->im;
2816 if (!im) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2817
2818 if (!im->flags.animated) return EVAS_IMAGE_ANIMATED_HINT_NONE;
2819 return im->loop_hint;
2820}
2821
2822static int
2823eng_image_animated_loop_count_get(void *data __UNUSED__, void *image)
2824{
2825 Evas_GL_Image *gim = image;
2826 Image_Entry *im;
2827
2828 if (!gim) return -1;
2829 im = (Image_Entry *)gim->im;
2830 if (!im) return -1;
2831
2832 if (!im->flags.animated) return -1;
2833 return im->loop_count;
2834}
2835
2836static double
2837eng_image_animated_frame_duration_get(void *data __UNUSED__, void *image, int start_frame, int frame_num)
2838{
2839 Evas_GL_Image *gim = image;
2840 Image_Entry *im;
2841
2842 if (!gim) return -1;
2843 im = (Image_Entry *)gim->im;
2844 if (!im) return -1;
2845
2846 if (!im->flags.animated) return -1;
2847 return evas_common_load_rgba_image_frame_duration_from_file(im, start_frame, frame_num);
2848}
2849
2850static Eina_Bool
2851eng_image_animated_frame_set(void *data __UNUSED__, void *image, int frame_index)
2852{
2853 Evas_GL_Image *gim = image;
2854 Image_Entry *im;
2855
2856 if (!gim) return EINA_FALSE;
2857 im = (Image_Entry *)gim->im;
2858 if (!im) return EINA_FALSE;
2859
2860 if (!im->flags.animated) return EINA_FALSE;
2861 if (im->cur_frame == frame_index) return EINA_FALSE;
2862
2863 im->cur_frame = frame_index;
2864 return EINA_TRUE;
2865}
2866
2867static Eina_Bool
2868eng_image_can_region_get(void *data __UNUSED__, void *image)
2869{
2870 Evas_GL_Image *gim = image;
2871 Image_Entry *im;
2872 if (!gim) return EINA_FALSE;
2873 im = (Image_Entry *)gim->im;
2874 if (!im) return EINA_FALSE;
2875 return ((Evas_Image_Load_Func*) im->info.loader)->do_region;
2876}
2877
2878
2879static void
2880eng_image_max_size_get(void *data, int *maxw, int *maxh)
2881{
2882 Render_Engine *re = (Render_Engine *)data;
2883 if (maxw) *maxw = re->win->gl_context->shared->info.max_texture_size;
2884 if (maxh) *maxh = re->win->gl_context->shared->info.max_texture_size;
2885}
2886
2887static int
2888module_open(Evas_Module *em)
2889{
2890 static Eina_Bool xrm_inited = EINA_FALSE;
2891 if (!xrm_inited)
2892 {
2893 xrm_inited = EINA_TRUE;
2894 XrmInitialize();
2895 }
2896
2897 if (!em) return 0;
2898 if (!evas_gl_common_module_open()) return 0;
2899 /* get whatever engine module we inherit from */
2900 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
2901 if (_evas_engine_wl_egl_log_dom < 0)
2902 {
2903 _evas_engine_wl_egl_log_dom =
2904 eina_log_domain_register("evas-gl_x11", EVAS_DEFAULT_LOG_COLOR);
2905 }
2906
2907 if (_evas_engine_wl_egl_log_dom < 0)
2908 {
2909 EINA_LOG_ERR("Can not create a module log domain.");
2910 return 0;
2911 }
2912 /* store it for later use */
2913 func = pfunc;
2914 /* now to override methods */
2915 #define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
2916 ORD(info);
2917 ORD(info_free);
2918 ORD(setup);
2919 ORD(canvas_alpha_get);
2920 ORD(output_free);
2921 ORD(output_resize);
2922 ORD(output_tile_size_set);
2923 ORD(output_redraws_rect_add);
2924 ORD(output_redraws_rect_del);
2925 ORD(output_redraws_clear);
2926 ORD(output_redraws_next_update_get);
2927 ORD(output_redraws_next_update_push);
2928 ORD(context_cutout_add);
2929 ORD(context_cutout_clear);
2930 ORD(output_flush);
2931 ORD(output_idle_flush);
2932 ORD(output_dump);
2933 ORD(rectangle_draw);
2934 ORD(line_draw);
2935 ORD(polygon_point_add);
2936 ORD(polygon_points_clear);
2937 ORD(polygon_draw);
2938
2939 ORD(image_load);
2940 ORD(image_new_from_data);
2941 ORD(image_new_from_copied_data);
2942 ORD(image_free);
2943 ORD(image_size_get);
2944 ORD(image_size_set);
2945 ORD(image_dirty_region);
2946 ORD(image_data_get);
2947 ORD(image_data_put);
2948 ORD(image_data_preload_request);
2949 ORD(image_data_preload_cancel);
2950 ORD(image_alpha_set);
2951 ORD(image_alpha_get);
2952 ORD(image_border_set);
2953 ORD(image_border_get);
2954 ORD(image_draw);
2955 ORD(image_comment_get);
2956 ORD(image_format_get);
2957 ORD(image_colorspace_set);
2958 ORD(image_colorspace_get);
2959 ORD(image_can_region_get);
2960 ORD(image_mask_create);
2961 ORD(image_native_set);
2962 ORD(image_native_get);
2963#if 0 // filtering disabled
2964 ORD(image_draw_filtered);
2965 ORD(image_filtered_get);
2966 ORD(image_filtered_save);
2967 ORD(image_filtered_free);
2968#endif
2969
2970 ORD(font_draw);
2971
2972 ORD(image_scale_hint_set);
2973 ORD(image_scale_hint_get);
2974 ORD(image_stride_get);
2975
2976 ORD(image_map_draw);
2977 ORD(image_map_surface_new);
2978 ORD(image_map_surface_free);
2979
2980 ORD(image_content_hint_set);
2981 ORD(image_content_hint_get);
2982
2983 ORD(image_cache_flush);
2984 ORD(image_cache_set);
2985 ORD(image_cache_get);
2986
2987 ORD(gl_surface_create);
2988 ORD(gl_surface_destroy);
2989 ORD(gl_context_create);
2990 ORD(gl_context_destroy);
2991 ORD(gl_make_current);
2992 ORD(gl_string_query);
2993 ORD(gl_proc_address_get);
2994 ORD(gl_native_surface_get);
2995 ORD(gl_api_get);
2996
2997 ORD(image_load_error_get);
2998
2999 /* now advertise out own api */
3000 ORD(image_animated_get);
3001 ORD(image_animated_frame_count_get);
3002 ORD(image_animated_loop_type_get);
3003 ORD(image_animated_loop_count_get);
3004 ORD(image_animated_frame_duration_get);
3005 ORD(image_animated_frame_set);
3006
3007 ORD(image_max_size_get);
3008
3009 /* now advertise out own api */
3010 em->functions = (void *)(&func);
3011 return 1;
3012}
3013
3014static void
3015module_close(Evas_Module *em __UNUSED__)
3016{
3017 eina_log_domain_unregister(_evas_engine_wl_egl_log_dom);
3018 evas_gl_common_module_close();
3019}
3020
3021static Evas_Module_Api evas_modapi =
3022{
3023 EVAS_MODULE_API_VERSION, "wayland_egl", "none", {module_open, module_close}
3024};
3025
3026EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_x11);
3027
3028#ifndef EVAS_STATIC_BUILD_GL_XLIB
3029EVAS_EINA_MODULE_DEFINE(engine, gl_x11);
3030#endif
3031
3032/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h b/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h
deleted file mode 100644
index 204d793..0000000
--- a/libraries/evas/src/modules/engines/wayland_egl/evas_engine.h
+++ /dev/null
@@ -1,82 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include "config.h"
5#include "evas_common.h"
6#include "evas_private.h"
7#include "evas_gl_common.h"
8#include "Evas.h"
9#include "Evas_Engine_Wayland_Egl.h"
10
11#define GL_GLEXT_PROTOTYPES
12
13#include <EGL/egl.h>
14#include <GLES2/gl2.h>
15#include <GLES2/gl2ext.h>
16#include <wayland-egl.h>
17
18extern int _evas_engine_wl_egl_log_dom;
19#ifdef ERR
20# undef ERR
21#endif
22#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
23
24#ifdef DBG
25# undef DBG
26#endif
27#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
28
29#ifdef INF
30# undef INF
31#endif
32#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
33
34#ifdef WRN
35# undef WRN
36#endif
37#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
38
39#ifdef CRIT
40# undef CRIT
41#endif
42#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_wl_egl_log_dom, __VA_ARGS__)
43
44typedef struct _Evas_GL_Wl_Window Evas_GL_Wl_Window;
45
46struct _Evas_GL_Wl_Window
47{
48 struct wl_display *disp;
49 struct wl_egl_window *win;
50 struct wl_surface *surface;
51 int w, h;
52 int screen;
53// XVisualInfo *visualinfo;
54// Visual *visual;
55// Colormap colormap;
56 int depth;
57 int alpha;
58 int rot;
59 Evas_Engine_GL_Context *gl_context;
60 struct {
61 int redraw : 1;
62 int drew : 1;
63 int x1, y1, x2, y2;
64 } draw;
65 EGLContext egl_context[1];
66 EGLSurface egl_surface[1];
67 EGLConfig egl_config;
68 EGLDisplay egl_disp;
69 int surf : 1;
70};
71
72Evas_GL_Wl_Window *eng_window_new(struct wl_display *disp, struct wl_surface *surface, int screen,
73 int depth, int w, int h, int indirect,
74 int alpha, int rot);
75void eng_window_free(Evas_GL_Wl_Window *gw);
76void eng_window_use(Evas_GL_Wl_Window *gw);
77void eng_window_unsurf(Evas_GL_Wl_Window *gw);
78void eng_window_resurf(Evas_GL_Wl_Window *gw);
79
80int eng_best_depth_get(Evas_Engine_Info_Wayland_Egl *einfo);
81
82#endif
diff --git a/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c b/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c
deleted file mode 100644
index 60a2371..0000000
--- a/libraries/evas/src/modules/engines/wayland_egl/evas_wl_main.c
+++ /dev/null
@@ -1,325 +0,0 @@
1#include "evas_engine.h"
2
3static Evas_GL_Wl_Window *_evas_gl_wl_window = NULL;
4
5static EGLContext context = EGL_NO_CONTEXT;
6
7// fixme: something is up/wrong here - dont know what tho...
8//#define NEWGL 1
9
10static int win_count = 0;
11
12Evas_GL_Wl_Window *
13eng_window_new(struct wl_display *disp, struct wl_surface *surface, int screen,
14 int depth, int w, int h, int indirect, int alpha, int rot)
15{
16 Evas_GL_Wl_Window *gw;
17 int context_attrs[3];
18 int config_attrs[40];
19 int major_version, minor_version;
20 int num_config, n = 0;
21 const GLubyte *vendor, *renderer, *version;
22
23 gw = calloc(1, sizeof(Evas_GL_Wl_Window));
24 if (!gw) return NULL;
25
26 win_count++;
27 gw->disp = disp;
28 gw->surface = surface;
29 gw->screen = screen;
30 gw->depth = depth;
31 gw->alpha = alpha;
32 gw->w = w;
33 gw->h = h;
34 gw->rot = rot;
35
36// EGL / GLES
37 context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION;
38 context_attrs[1] = 2;
39 context_attrs[2] = EGL_NONE;
40
41#if defined(GLES_VARIETY_S3C6410)
42 if (gw->visualinfo->depth == 16) // 16bpp
43 {
44 config_attrs[n++] = EGL_SURFACE_TYPE;
45 config_attrs[n++] = EGL_WINDOW_BIT;
46 config_attrs[n++] = EGL_RENDERABLE_TYPE;
47 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
48 config_attrs[n++] = EGL_RED_SIZE;
49 config_attrs[n++] = 5;
50 config_attrs[n++] = EGL_GREEN_SIZE;
51 config_attrs[n++] = 6;
52 config_attrs[n++] = EGL_BLUE_SIZE;
53 config_attrs[n++] = 5;
54 config_attrs[n++] = EGL_DEPTH_SIZE;
55 config_attrs[n++] = 0;
56 config_attrs[n++] = EGL_STENCIL_SIZE;
57 config_attrs[n++] = 0;
58 config_attrs[n++] = EGL_NONE;
59 }
60 else // 24/32bit. no one does 8bpp anymore. and 15bpp... dead
61 {
62 config_attrs[n++] = EGL_SURFACE_TYPE;
63 config_attrs[n++] = EGL_WINDOW_BIT;
64 config_attrs[n++] = EGL_RENDERABLE_TYPE;
65 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
66 config_attrs[n++] = EGL_RED_SIZE;
67 config_attrs[n++] = 8;
68 config_attrs[n++] = EGL_GREEN_SIZE;
69 config_attrs[n++] = 8;
70 config_attrs[n++] = EGL_BLUE_SIZE;
71 config_attrs[n++] = 8;
72 config_attrs[n++] = EGL_DEPTH_SIZE;
73 config_attrs[n++] = 0;
74 config_attrs[n++] = EGL_STENCIL_SIZE;
75 config_attrs[n++] = 0;
76 config_attrs[n++] = EGL_NONE;
77 }
78#elif defined(GLES_VARIETY_SGX)
79 config_attrs[n++] = EGL_SURFACE_TYPE;
80 config_attrs[n++] = EGL_WINDOW_BIT;
81 config_attrs[n++] = EGL_RENDERABLE_TYPE;
82 config_attrs[n++] = EGL_OPENGL_ES2_BIT;
83# if 0
84// FIXME: n900 - omap3 sgx libs break here
85 config_attrs[n++] = EGL_RED_SIZE;
86 config_attrs[n++] = 1;
87 config_attrs[n++] = EGL_GREEN_SIZE;
88 config_attrs[n++] = 1;
89 config_attrs[n++] = EGL_BLUE_SIZE;
90 config_attrs[n++] = 1;
91// FIXME: end n900 breakage
92# endif
93 if (gw->alpha)
94 {
95 config_attrs[n++] = EGL_ALPHA_SIZE;
96 config_attrs[n++] = 1;
97 }
98 else
99 {
100 config_attrs[n++] = EGL_ALPHA_SIZE;
101 config_attrs[n++] = 0;
102 }
103 config_attrs[n++] = EGL_DEPTH_SIZE;
104 config_attrs[n++] = 0;
105 config_attrs[n++] = EGL_STENCIL_SIZE;
106 config_attrs[n++] = 0;
107 config_attrs[n++] = EGL_NONE;
108#endif
109
110 gw->egl_disp = eglGetDisplay((EGLNativeDisplayType)(gw->disp));
111 if (!gw->egl_disp)
112 {
113 ERR("eglGetDisplay() fail. code=%#x", eglGetError());
114 eng_window_free(gw);
115 return NULL;
116 }
117 if (!eglInitialize(gw->egl_disp, &major_version, &minor_version))
118 {
119 ERR("eglInitialize() fail. code=%#x", eglGetError());
120 eng_window_free(gw);
121 return NULL;
122 }
123 eglBindAPI(EGL_OPENGL_ES_API);
124 if (eglGetError() != EGL_SUCCESS)
125 {
126 ERR("eglBindAPI() fail. code=%#x", eglGetError());
127 eng_window_free(gw);
128 return NULL;
129 }
130
131 num_config = 0;
132 if (!eglChooseConfig(gw->egl_disp, config_attrs, &gw->egl_config,
133 1, &num_config) || (num_config != 1))
134 {
135 ERR("eglChooseConfig() fail. code=%#x", eglGetError());
136 eng_window_free(gw);
137 return NULL;
138 }
139
140 gw->win = wl_egl_window_create(gw->surface, gw->w, gw->h);
141
142 gw->egl_surface[0] = eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
143 (EGLNativeWindowType)gw->win,
144 NULL);
145 if (gw->egl_surface[0] == EGL_NO_SURFACE)
146 {
147 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
148 (unsigned int)gw->win, eglGetError());
149 eng_window_free(gw);
150 return NULL;
151 }
152
153 if (context == EGL_NO_CONTEXT)
154 context = eglCreateContext(gw->egl_disp, gw->egl_config, NULL,
155 context_attrs);
156 gw->egl_context[0] = context;
157 if (gw->egl_context[0] == EGL_NO_CONTEXT)
158 {
159 ERR("eglCreateContext() fail. code=%#x", eglGetError());
160 eng_window_free(gw);
161 return NULL;
162 }
163
164 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0], gw->egl_surface[0],
165 gw->egl_context[0]) == EGL_FALSE)
166 {
167 ERR("eglMakeCurrent() fail. code=%#x", eglGetError());
168 eng_window_free(gw);
169 return NULL;
170 }
171
172 vendor = glGetString(GL_VENDOR);
173 renderer = glGetString(GL_RENDERER);
174 version = glGetString(GL_VERSION);
175 if (!vendor) vendor = (unsigned char *)"-UNKNOWN-";
176 if (!renderer) renderer = (unsigned char *)"-UNKNOWN-";
177 if (!version) version = (unsigned char *)"-UNKNOWN-";
178 if (getenv("EVAS_GL_INFO"))
179 {
180 fprintf(stderr, "vendor: %s\n", vendor);
181 fprintf(stderr, "renderer: %s\n", renderer);
182 fprintf(stderr, "version: %s\n", version);
183 }
184
185 gw->gl_context = evas_gl_common_context_new();
186 if (!gw->gl_context)
187 {
188 eng_window_free(gw);
189 return NULL;
190 }
191 gw->gl_context->egldisp = gw->egl_disp;
192 eng_window_use(gw);
193 evas_gl_common_context_resize(gw->gl_context, w, h, rot);
194 gw->surf = 1;
195 return gw;
196 indirect = 0;
197}
198
199void
200eng_window_free(Evas_GL_Wl_Window *gw)
201{
202 int ref = 0;
203
204 win_count--;
205 eng_window_use(gw);
206 if (gw == _evas_gl_wl_window) _evas_gl_wl_window = NULL;
207// if (gw->win) wl_egl_window_destroy(gw->win);
208 if (gw->gl_context)
209 {
210 ref = gw->gl_context->references - 1;
211 evas_gl_common_context_free(gw->gl_context);
212 }
213 if (gw->egl_surface[0] != EGL_NO_SURFACE)
214 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
215 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
216 if (ref == 0)
217 {
218 if (context) eglDestroyContext(gw->egl_disp, context);
219 context = EGL_NO_CONTEXT;
220 /* NB: This is causing an unknown hang when we run elm apps as
221 * wayland clients inside the weston compositor */
222 /* eglTerminate(gw->egl_disp); */
223 eglReleaseThread();
224 }
225 free(gw);
226}
227
228void
229eng_window_use(Evas_GL_Wl_Window *gw)
230{
231 Eina_Bool force_use = EINA_FALSE;
232
233 if (_evas_gl_wl_window)
234 {
235 if ((eglGetCurrentContext() !=
236 _evas_gl_wl_window->egl_context[0]) ||
237 (eglGetCurrentSurface(EGL_READ) !=
238 _evas_gl_wl_window->egl_surface[0]) ||
239 (eglGetCurrentSurface(EGL_DRAW) !=
240 _evas_gl_wl_window->egl_surface[0]))
241 force_use = EINA_TRUE;
242 }
243 if ((_evas_gl_wl_window != gw) || (force_use))
244 {
245 if (_evas_gl_wl_window)
246 {
247 evas_gl_common_context_use(_evas_gl_wl_window->gl_context);
248 evas_gl_common_context_flush(_evas_gl_wl_window->gl_context);
249 }
250 _evas_gl_wl_window = gw;
251 if (gw)
252 {
253 // EGL / GLES
254 if (gw->egl_surface[0] != EGL_NO_SURFACE)
255 {
256 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0],
257 gw->egl_surface[0],
258 gw->egl_context[0]) == EGL_FALSE)
259 {
260 ERR("eglMakeCurrent() failed!");
261 }
262 }
263 }
264 }
265 if (gw) evas_gl_common_context_use(gw->gl_context);
266}
267
268void
269eng_window_unsurf(Evas_GL_Wl_Window *gw)
270{
271 if (!gw->surf) return;
272 if (!getenv("EVAS_GL_WIN_RESURF")) return;
273 if (getenv("EVAS_GL_INFO")) printf("unsurf %p\n", gw);
274
275 if (_evas_gl_wl_window)
276 evas_gl_common_context_flush(_evas_gl_wl_window->gl_context);
277 if (_evas_gl_wl_window == gw)
278 {
279 eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
280 if (gw->egl_surface[0] != EGL_NO_SURFACE)
281 eglDestroySurface(gw->egl_disp, gw->egl_surface[0]);
282 gw->egl_surface[0] = EGL_NO_SURFACE;
283 _evas_gl_wl_window = NULL;
284 }
285 gw->surf = 0;
286}
287
288void
289eng_window_resurf(Evas_GL_Wl_Window *gw)
290{
291 if (gw->surf) return;
292 if (getenv("EVAS_GL_INFO")) printf("resurf %p\n", gw);
293
294 gw->egl_surface[0] =
295 eglCreateWindowSurface(gw->egl_disp, gw->egl_config,
296 (EGLNativeWindowType)gw->win, NULL);
297
298 if (gw->egl_surface[0] == EGL_NO_SURFACE)
299 {
300 ERR("eglCreateWindowSurface() fail for %#x. code=%#x",
301 (unsigned int)gw->win, eglGetError());
302 return;
303 }
304 if (eglMakeCurrent(gw->egl_disp, gw->egl_surface[0], gw->egl_surface[0],
305 gw->egl_context[0]) == EGL_FALSE)
306 {
307 ERR("eglMakeCurrent() failed!");
308 }
309 gw->surf = 1;
310}
311
312int
313eng_best_depth_get(Evas_Engine_Info_Wayland_Egl *einfo)
314{
315 if (!einfo) return 0;
316 if (!einfo->info.display) return 0;
317 return 32;
318 /* if (!_evas_gl_x11_vi) eng_best_visual_get(einfo); */
319 /* if (!_evas_gl_x11_vi) return 0; */
320 /* if (einfo->info.destination_alpha) */
321 /* { */
322 /* if (_evas_gl_x11_rgba_vi) return _evas_gl_x11_rgba_vi->depth; */
323 /* } */
324 /* return _evas_gl_x11_vi->depth; */
325}
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h b/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h
deleted file mode 100644
index 2b5c2c7..0000000
--- a/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h
+++ /dev/null
@@ -1,21 +0,0 @@
1#ifndef _EVAS_ENGINE_WAYLAND_SHM_H
2# define _EVAS_ENGINE_WAYLAND_SHM_H
3
4typedef struct _Evas_Engine_Info_Wayland_Shm Evas_Engine_Info_Wayland_Shm;
5struct _Evas_Engine_Info_Wayland_Shm
6{
7 Evas_Engine_Info magic;
8
9 struct
10 {
11 void *dest;
12 int rotation;
13
14 Eina_Bool destination_alpha : 1;
15 Eina_Bool debug : 1;
16 } info;
17
18 Evas_Engine_Render_Mode render_mode;
19};
20
21#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.am b/libraries/evas/src/modules/engines/wayland_shm/Makefile.am
deleted file mode 100644
index 2a5901f..0000000
--- a/libraries/evas/src/modules/engines/wayland_shm/Makefile.am
+++ /dev/null
@@ -1,46 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@evas_engine_wayland_shm_cflags@
13
14if BUILD_ENGINE_WAYLAND_SHM
15
16WAYLAND_SHM_SOURCES = \
17evas_engine.c \
18evas_outbuf.c
19
20WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @PIXMAN_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@
21
22includes_HEADERS = Evas_Engine_Wayland_Shm.h
23includesdir = $(includedir)/evas-@VMAJ@
24
25if !EVAS_STATIC_BUILD_WAYLAND_SHM
26
27pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH)
28pkg_LTLIBRARIES = module.la
29
30module_la_SOURCES = $(WAYLAND_SHM_SOURCES)
31module_la_LIBADD = $(WAYLAND_SHM_LIBADD) $(top_builddir)/src/lib/libevas.la
32module_la_LDFLAGS = -no-undefined -module -avoid-version
33module_la_LIBTOOLFLAGS = --tag=disable-static
34
35else
36
37noinst_LTLIBRARIES = libevas_engine_wayland_shm.la
38
39libevas_engine_wayland_shm_la_SOURCES = $(WAYLAND_SHM_SOURCES)
40libevas_engine_wayland_shm_la_LIBADD = $(WAYLAND_SHM_LIBADD)
41
42endif
43endif
44
45EXTRA_DIST = \
46evas_engine.h
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.in b/libraries/evas/src/modules/engines/wayland_shm/Makefile.in
deleted file mode 100644
index e70210b..0000000
--- a/libraries/evas/src/modules/engines/wayland_shm/Makefile.in
+++ /dev/null
@@ -1,817 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/wayland_shm
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_wayland_shm_la_SOURCES_DIST = evas_engine.c \
87 evas_outbuf.c
88@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_WAYLAND_SHM_TRUE@ evas_outbuf.lo
90@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am_libevas_engine_wayland_shm_la_OBJECTS = $(am__objects_1)
91libevas_engine_wayland_shm_la_OBJECTS = \
92 $(am_libevas_engine_wayland_shm_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@am_libevas_engine_wayland_shm_la_rpath =
97@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_outbuf.c
100@BUILD_ENGINE_WAYLAND_SHM_TRUE@am__objects_2 = \
101@BUILD_ENGINE_WAYLAND_SHM_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_WAYLAND_SHM_TRUE@ module_la-evas_outbuf.lo
103@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_wayland_shm_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_wayland_shm_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Wayland_Shm.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
198EXOTIC_LIBS = @EXOTIC_LIBS@
199FGREP = @FGREP@
200FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
201FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
202FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
203FREETYPE_LIBS = @FREETYPE_LIBS@
204FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
205FRIBIDI_LIBS = @FRIBIDI_LIBS@
206GL_EET_CFLAGS = @GL_EET_CFLAGS@
207GL_EET_LIBS = @GL_EET_LIBS@
208GREP = @GREP@
209HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
210HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
211INSTALL = @INSTALL@
212INSTALL_DATA = @INSTALL_DATA@
213INSTALL_PROGRAM = @INSTALL_PROGRAM@
214INSTALL_SCRIPT = @INSTALL_SCRIPT@
215INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
216LD = @LD@
217LDFLAGS = @LDFLAGS@
218LIBOBJS = @LIBOBJS@
219LIBS = @LIBS@
220LIBTOOL = @LIBTOOL@
221LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
222LINEBREAK_LIBS = @LINEBREAK_LIBS@
223LIPO = @LIPO@
224LN_S = @LN_S@
225LTLIBOBJS = @LTLIBOBJS@
226MAKEINFO = @MAKEINFO@
227MKDIR_P = @MKDIR_P@
228MODULE_ARCH = @MODULE_ARCH@
229NM = @NM@
230NMEDIT = @NMEDIT@
231OBJC = @OBJC@
232OBJCDEPMODE = @OBJCDEPMODE@
233OBJCFLAGS = @OBJCFLAGS@
234OBJDUMP = @OBJDUMP@
235OBJEXT = @OBJEXT@
236OTOOL = @OTOOL@
237OTOOL64 = @OTOOL64@
238PACKAGE = @PACKAGE@
239PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
240PACKAGE_NAME = @PACKAGE_NAME@
241PACKAGE_STRING = @PACKAGE_STRING@
242PACKAGE_TARNAME = @PACKAGE_TARNAME@
243PACKAGE_URL = @PACKAGE_URL@
244PACKAGE_VERSION = @PACKAGE_VERSION@
245PATH_SEPARATOR = @PATH_SEPARATOR@
246PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
247PIXMAN_LIBS = @PIXMAN_LIBS@
248PKG_CONFIG = @PKG_CONFIG@
249PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
250PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251PNG_CFLAGS = @PNG_CFLAGS@
252PNG_LIBS = @PNG_LIBS@
253RANLIB = @RANLIB@
254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_LIBS = @SDL_LIBS@
256SED = @SED@
257SET_MAKE = @SET_MAKE@
258SHELL = @SHELL@
259SHM_OPEN_LINK = @SHM_OPEN_LINK@
260STRIP = @STRIP@
261SVG_CFLAGS = @SVG_CFLAGS@
262SVG_LIBS = @SVG_LIBS@
263VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
264VALGRIND_LIBS = @VALGRIND_LIBS@
265VERSION = @VERSION@
266VMAJ = @VMAJ@
267WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
268WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
269XCB_CFLAGS = @XCB_CFLAGS@
270XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
271XCB_GL_LIBS = @XCB_GL_LIBS@
272XCB_LIBS = @XCB_LIBS@
273XEXT_CFLAGS = @XEXT_CFLAGS@
274XEXT_LIBS = @XEXT_LIBS@
275XMKMF = @XMKMF@
276X_CFLAGS = @X_CFLAGS@
277X_EXTRA_LIBS = @X_EXTRA_LIBS@
278X_LIBS = @X_LIBS@
279X_PRE_LIBS = @X_PRE_LIBS@
280abs_builddir = @abs_builddir@
281abs_srcdir = @abs_srcdir@
282abs_top_builddir = @abs_top_builddir@
283abs_top_srcdir = @abs_top_srcdir@
284ac_ct_CC = @ac_ct_CC@
285ac_ct_CXX = @ac_ct_CXX@
286ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
287ac_ct_OBJC = @ac_ct_OBJC@
288altivec_cflags = @altivec_cflags@
289am__include = @am__include@
290am__leading_dot = @am__leading_dot@
291am__quote = @am__quote@
292am__tar = @am__tar@
293am__untar = @am__untar@
294bindir = @bindir@
295build = @build@
296build_alias = @build_alias@
297build_cpu = @build_cpu@
298build_os = @build_os@
299build_vendor = @build_vendor@
300builddir = @builddir@
301datadir = @datadir@
302datarootdir = @datarootdir@
303dlopen_libs = @dlopen_libs@
304docdir = @docdir@
305dvidir = @dvidir@
306edje_cc = @edje_cc@
307efl_doxygen = @efl_doxygen@
308efl_have_doxygen = @efl_have_doxygen@
309evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
310evas_engine_buffer_libs = @evas_engine_buffer_libs@
311evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
312evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
313evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
314evas_engine_directfb_libs = @evas_engine_directfb_libs@
315evas_engine_fb_cflags = @evas_engine_fb_cflags@
316evas_engine_fb_libs = @evas_engine_fb_libs@
317evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
318evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
319evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
320evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
321evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
322evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
323evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
324evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
325evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
326evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
327evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
328evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
329evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
330evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
331evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
332evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
333evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
334evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
335evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
336evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
337evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
338evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
339evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
340evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
341evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines \
430@FREETYPE_CFLAGS@ \
431@PIXMAN_CFLAGS@ \
432@EINA_CFLAGS@ \
433@evas_engine_wayland_shm_cflags@
434
435@BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_SOURCES = \
436@BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_engine.c \
437@BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_outbuf.c
438
439@BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @PIXMAN_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@
440@BUILD_ENGINE_WAYLAND_SHM_TRUE@includes_HEADERS = Evas_Engine_Wayland_Shm.h
441@BUILD_ENGINE_WAYLAND_SHM_TRUE@includesdir = $(includedir)/evas-@VMAJ@
442@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH)
443@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkg_LTLIBRARIES = module.la
444@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_SOURCES = $(WAYLAND_SHM_SOURCES)
445@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LIBADD = $(WAYLAND_SHM_LIBADD) $(top_builddir)/src/lib/libevas.la
446@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
447@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
448@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@noinst_LTLIBRARIES = libevas_engine_wayland_shm.la
449@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_SOURCES = $(WAYLAND_SHM_SOURCES)
450@BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_TRUE@libevas_engine_wayland_shm_la_LIBADD = $(WAYLAND_SHM_LIBADD)
451EXTRA_DIST = \
452evas_engine.h
453
454all: all-am
455
456.SUFFIXES:
457.SUFFIXES: .c .lo .o .obj
458$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
459 @for dep in $?; do \
460 case '$(am__configure_deps)' in \
461 *$$dep*) \
462 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
463 && { if test -f $@; then exit 0; else break; fi; }; \
464 exit 1;; \
465 esac; \
466 done; \
467 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/wayland_shm/Makefile'; \
468 $(am__cd) $(top_srcdir) && \
469 $(AUTOMAKE) --gnu src/modules/engines/wayland_shm/Makefile
470.PRECIOUS: Makefile
471Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
472 @case '$?' in \
473 *config.status*) \
474 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
475 *) \
476 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
477 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
478 esac;
479
480$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
481 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
482
483$(top_srcdir)/configure: $(am__configure_deps)
484 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
485$(ACLOCAL_M4): $(am__aclocal_m4_deps)
486 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
487$(am__aclocal_m4_deps):
488
489clean-noinstLTLIBRARIES:
490 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
491 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
492 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
493 test "$$dir" != "$$p" || dir=.; \
494 echo "rm -f \"$${dir}/so_locations\""; \
495 rm -f "$${dir}/so_locations"; \
496 done
497install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
498 @$(NORMAL_INSTALL)
499 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
500 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
501 list2=; for p in $$list; do \
502 if test -f $$p; then \
503 list2="$$list2 $$p"; \
504 else :; fi; \
505 done; \
506 test -z "$$list2" || { \
507 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
508 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
509 }
510
511uninstall-pkgLTLIBRARIES:
512 @$(NORMAL_UNINSTALL)
513 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
514 for p in $$list; do \
515 $(am__strip_dir) \
516 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
517 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
518 done
519
520clean-pkgLTLIBRARIES:
521 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
522 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
523 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
524 test "$$dir" != "$$p" || dir=.; \
525 echo "rm -f \"$${dir}/so_locations\""; \
526 rm -f "$${dir}/so_locations"; \
527 done
528libevas_engine_wayland_shm.la: $(libevas_engine_wayland_shm_la_OBJECTS) $(libevas_engine_wayland_shm_la_DEPENDENCIES)
529 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_wayland_shm_la_rpath) $(libevas_engine_wayland_shm_la_OBJECTS) $(libevas_engine_wayland_shm_la_LIBADD) $(LIBS)
530module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
531 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
532
533mostlyclean-compile:
534 -rm -f *.$(OBJEXT)
535
536distclean-compile:
537 -rm -f *.tab.c
538
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
540@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
542@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
543
544.c.o:
545@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
546@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
547@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
548@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
549@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
550@am__fastdepCC_FALSE@ $(COMPILE) -c $<
551
552.c.obj:
553@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
554@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
555@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
556@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
557@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
558@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
559
560.c.lo:
561@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
562@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
563@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
564@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
565@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
566@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
567
568module_la-evas_engine.lo: evas_engine.c
569@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
570@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
571@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
572@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
573@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
574@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
575
576module_la-evas_outbuf.lo: evas_outbuf.c
577@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
578@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
579@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
580@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
581@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
582@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
583
584mostlyclean-libtool:
585 -rm -f *.lo
586
587clean-libtool:
588 -rm -rf .libs _libs
589install-includesHEADERS: $(includes_HEADERS)
590 @$(NORMAL_INSTALL)
591 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
592 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
593 for p in $$list; do \
594 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
595 echo "$$d$$p"; \
596 done | $(am__base_list) | \
597 while read files; do \
598 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
599 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
600 done
601
602uninstall-includesHEADERS:
603 @$(NORMAL_UNINSTALL)
604 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
605 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
606 test -n "$$files" || exit 0; \
607 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
608 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
609
610ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
611 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
612 unique=`for i in $$list; do \
613 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
614 done | \
615 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
616 END { if (nonempty) { for (i in files) print i; }; }'`; \
617 mkid -fID $$unique
618tags: TAGS
619
620TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
621 $(TAGS_FILES) $(LISP)
622 set x; \
623 here=`pwd`; \
624 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
625 unique=`for i in $$list; do \
626 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
627 done | \
628 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
629 END { if (nonempty) { for (i in files) print i; }; }'`; \
630 shift; \
631 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
632 test -n "$$unique" || unique=$$empty_fix; \
633 if test $$# -gt 0; then \
634 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
635 "$$@" $$unique; \
636 else \
637 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
638 $$unique; \
639 fi; \
640 fi
641ctags: CTAGS
642CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
643 $(TAGS_FILES) $(LISP)
644 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
645 unique=`for i in $$list; do \
646 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
647 done | \
648 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
649 END { if (nonempty) { for (i in files) print i; }; }'`; \
650 test -z "$(CTAGS_ARGS)$$unique" \
651 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
652 $$unique
653
654GTAGS:
655 here=`$(am__cd) $(top_builddir) && pwd` \
656 && $(am__cd) $(top_srcdir) \
657 && gtags -i $(GTAGS_ARGS) "$$here"
658
659distclean-tags:
660 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
661
662distdir: $(DISTFILES)
663 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
664 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
665 list='$(DISTFILES)'; \
666 dist_files=`for file in $$list; do echo $$file; done | \
667 sed -e "s|^$$srcdirstrip/||;t" \
668 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
669 case $$dist_files in \
670 */*) $(MKDIR_P) `echo "$$dist_files" | \
671 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
672 sort -u` ;; \
673 esac; \
674 for file in $$dist_files; do \
675 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
676 if test -d $$d/$$file; then \
677 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
678 if test -d "$(distdir)/$$file"; then \
679 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
680 fi; \
681 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
682 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
683 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
684 fi; \
685 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
686 else \
687 test -f "$(distdir)/$$file" \
688 || cp -p $$d/$$file "$(distdir)/$$file" \
689 || exit 1; \
690 fi; \
691 done
692check-am: all-am
693check: check-am
694all-am: Makefile $(LTLIBRARIES) $(HEADERS)
695installdirs:
696 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
697 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
698 done
699install: install-am
700install-exec: install-exec-am
701install-data: install-data-am
702uninstall: uninstall-am
703
704install-am: all-am
705 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
706
707installcheck: installcheck-am
708install-strip:
709 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
710 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
711 `test -z '$(STRIP)' || \
712 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
713mostlyclean-generic:
714
715clean-generic:
716
717distclean-generic:
718 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
719 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
720
721maintainer-clean-generic:
722 @echo "This command is intended for maintainers to use"
723 @echo "it deletes files that may require special tools to rebuild."
724 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
725clean: clean-am
726
727clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
728 clean-pkgLTLIBRARIES mostlyclean-am
729
730distclean: distclean-am
731 -rm -rf ./$(DEPDIR)
732 -rm -f Makefile
733distclean-am: clean-am distclean-compile distclean-generic \
734 distclean-tags
735
736dvi: dvi-am
737
738dvi-am:
739
740html: html-am
741
742html-am:
743
744info: info-am
745
746info-am:
747
748install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
749
750install-dvi: install-dvi-am
751
752install-dvi-am:
753
754install-exec-am:
755
756install-html: install-html-am
757
758install-html-am:
759
760install-info: install-info-am
761
762install-info-am:
763
764install-man:
765
766install-pdf: install-pdf-am
767
768install-pdf-am:
769
770install-ps: install-ps-am
771
772install-ps-am:
773
774installcheck-am:
775
776maintainer-clean: maintainer-clean-am
777 -rm -rf ./$(DEPDIR)
778 -rm -f Makefile
779maintainer-clean-am: distclean-am maintainer-clean-generic
780
781mostlyclean: mostlyclean-am
782
783mostlyclean-am: mostlyclean-compile mostlyclean-generic \
784 mostlyclean-libtool
785
786pdf: pdf-am
787
788pdf-am:
789
790ps: ps-am
791
792ps-am:
793
794uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
795
796.MAKE: install-am install-strip
797
798.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
799 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
800 ctags distclean distclean-compile distclean-generic \
801 distclean-libtool distclean-tags distdir dvi dvi-am html \
802 html-am info info-am install install-am install-data \
803 install-data-am install-dvi install-dvi-am install-exec \
804 install-exec-am install-html install-html-am \
805 install-includesHEADERS install-info install-info-am \
806 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
807 install-ps install-ps-am install-strip installcheck \
808 installcheck-am installdirs maintainer-clean \
809 maintainer-clean-generic mostlyclean mostlyclean-compile \
810 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
811 tags uninstall uninstall-am uninstall-includesHEADERS \
812 uninstall-pkgLTLIBRARIES
813
814
815# Tell versions [3.59,3.63) of GNU make to not export all variables.
816# Otherwise a system limit (for SysV at least) may be exceeded.
817.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c
deleted file mode 100644
index 17b17bf..0000000
--- a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c
+++ /dev/null
@@ -1,372 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Wayland_Shm.h"
5
6/* local structures */
7typedef struct _Render_Engine Render_Engine;
8struct _Render_Engine
9{
10 Tilebuf *tb;
11 Tilebuf_Rect *rects;
12 Outbuf *ob;
13 Eina_Inlist *cur_rect;
14
15 Eina_Bool end : 1;
16
17 void (*outbuf_free)(Outbuf *ob);
18 void (*outbuf_resize)(Outbuf *ob, int w, int h);
19 RGBA_Image *(*outbuf_new_region_for_update)(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
20 void (*outbuf_push_updated_region)(Outbuf *ob, RGBA_Image *surface, int x, int y, int w, int h);
21 void (*outbuf_free_region_for_update)(Outbuf *ob, RGBA_Image *update);
22};
23
24/* local variables */
25static Evas_Func func, pfunc;
26
27/* external variables */
28int _evas_engine_way_shm_log_dom = -1;
29
30/* local function prototypes */
31static void *_output_setup(int w, int h, int rotation, Eina_Bool alpha, void *dest);
32
33/* engine function prototypes */
34static void *eng_info(Evas *evas __UNUSED__);
35static void eng_info_free(Evas *evas __UNUSED__, void *info);
36static int eng_setup(Evas *evas, void *info);
37static void eng_output_free(void *data);
38static void eng_output_resize(void *data, int w, int h);
39static void eng_output_tile_size_set(void *data, int w, int h);
40static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
41static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
42static void eng_output_redraws_clear(void *data);
43static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
44static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
45static void eng_output_flush(void *data);
46static void eng_output_idle_flush(void *data);
47static Eina_Bool eng_canvas_alpha_get(void *data, void *context __UNUSED__);
48
49/* local functions */
50static void *
51_output_setup(int w, int h, int rotation, Eina_Bool alpha, void *dest)
52{
53 Render_Engine *re = NULL;
54
55 LOGFN(__FILE__, __LINE__, __FUNCTION__);
56
57 if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL;
58
59 if (!(re->ob = evas_outbuf_setup(w, h, rotation, alpha, dest)))
60 {
61 free(re);
62 return NULL;
63 }
64
65 if (!(re->tb = evas_common_tilebuf_new(w, h)))
66 {
67 evas_outbuf_free(re->ob);
68 free(re);
69 return NULL;
70 }
71
72 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
73 return re;
74}
75
76/* engine functions */
77static void *
78eng_info(Evas *evas __UNUSED__)
79{
80 Evas_Engine_Info_Wayland_Shm *info;
81
82 LOGFN(__FILE__, __LINE__, __FUNCTION__);
83
84 if (!(info = calloc(1, sizeof(Evas_Engine_Info_Wayland_Shm))))
85 return NULL;
86
87 info->magic.magic = rand();
88 info->info.debug = EINA_FALSE;
89 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
90
91 return info;
92}
93
94static void
95eng_info_free(Evas *evas __UNUSED__, void *info)
96{
97 Evas_Engine_Info_Wayland_Shm *in;
98
99 LOGFN(__FILE__, __LINE__, __FUNCTION__);
100
101 if (!(in = (Evas_Engine_Info_Wayland_Shm *)info)) return;
102 free(in);
103}
104
105static int
106eng_setup(Evas *evas, void *info)
107{
108 Evas_Engine_Info_Wayland_Shm *in;
109 Render_Engine *re = NULL;
110
111 LOGFN(__FILE__, __LINE__, __FUNCTION__);
112
113 if (!(in = (Evas_Engine_Info_Wayland_Shm *)info)) return 0;
114
115 if (!evas->engine.data.output)
116 {
117 evas_common_cpu_init();
118 evas_common_blend_init();
119 evas_common_image_init();
120 evas_common_convert_init();
121 evas_common_scale_init();
122 evas_common_rectangle_init();
123 evas_common_polygon_init();
124 evas_common_line_init();
125 evas_common_font_init();
126 evas_common_draw_init();
127 evas_common_tilebuf_init();
128
129 re = _output_setup(evas->output.w, evas->output.h,
130 in->info.rotation, in->info.destination_alpha,
131 in->info.dest);
132 if (!re) return 0;
133
134 re->outbuf_free = evas_outbuf_free;
135 re->outbuf_resize = evas_outbuf_resize;
136 re->outbuf_new_region_for_update = evas_outbuf_new_region_for_update;
137 re->outbuf_push_updated_region = evas_outbuf_push_updated_region;
138 re->outbuf_free_region_for_update = evas_outbuf_free_region_for_update;
139 }
140 else
141 {
142 if (!(re = evas->engine.data.output)) return 0;
143 if (re->ob) re->outbuf_free(re->ob);
144 re->ob = evas_outbuf_setup(evas->output.w, evas->output.h,
145 in->info.rotation,
146 in->info.destination_alpha, in->info.dest);
147 if (re->tb) evas_common_tilebuf_free(re->tb);
148 if ((re->tb = evas_common_tilebuf_new(evas->output.w, evas->output.h)))
149 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
150 }
151
152 evas->engine.data.output = re;
153
154 if (!evas->engine.data.context)
155 {
156 evas->engine.data.context =
157 evas->engine.func->context_new(evas->engine.data.output);
158 }
159
160 return 1;
161}
162
163static void
164eng_output_free(void *data)
165{
166 Render_Engine *re = NULL;
167
168 LOGFN(__FILE__, __LINE__, __FUNCTION__);
169
170 if ((re = (Render_Engine *)data))
171 {
172 if (re->ob) re->outbuf_free(re->ob);
173 if (re->tb) evas_common_tilebuf_free(re->tb);
174 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
175 free(re);
176 }
177 evas_common_font_shutdown();
178 evas_common_image_shutdown();
179}
180
181static void
182eng_output_resize(void *data, int w, int h)
183{
184 Render_Engine *re = NULL;
185
186 LOGFN(__FILE__, __LINE__, __FUNCTION__);
187
188 if (!(re = (Render_Engine *)data)) return;
189
190 if (re->ob) re->outbuf_resize(re->ob, w, h);
191 if (re->tb) evas_common_tilebuf_free(re->tb);
192 if ((re->tb = evas_common_tilebuf_new(w, h)))
193 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
194}
195
196static void
197eng_output_tile_size_set(void *data, int w, int h)
198{
199 Render_Engine *re = NULL;
200
201 if (!(re = (Render_Engine *)data)) return;
202 if (re->tb) evas_common_tilebuf_set_tile_size(re->tb, w, h);
203}
204
205static void
206eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
207{
208 Render_Engine *re = NULL;
209
210 if (!(re = (Render_Engine *)data)) return;
211 if (re->tb) evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
212}
213
214static void
215eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
216{
217 Render_Engine *re = NULL;
218
219 if (!(re = (Render_Engine *)data)) return;
220 if (re->tb) evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
221}
222
223static void
224eng_output_redraws_clear(void *data)
225{
226 Render_Engine *re = NULL;
227
228 if (!(re = (Render_Engine *)data)) return;
229 if (re->tb) evas_common_tilebuf_clear(re->tb);
230}
231
232static void *
233eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
234{
235 Render_Engine *re = NULL;
236 RGBA_Image *surface;
237 Tilebuf_Rect *rect;
238 int ux = 0, uy = 0, uw = 0, uh = 0;
239
240 if (!(re = (Render_Engine *)data)) return NULL;
241 if (re->end)
242 {
243 re->end = EINA_FALSE;
244 return NULL;
245 }
246 if (!re->rects)
247 {
248 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
249 re->cur_rect = EINA_INLIST_GET(re->rects);
250 }
251 if (!re->cur_rect) return NULL;
252 rect = (Tilebuf_Rect *)re->cur_rect;
253 ux = rect->x;
254 uy = rect->y;
255 uw = rect->w;
256 uh = rect->h;
257 re->cur_rect = re->cur_rect->next;
258 if (!re->cur_rect)
259 {
260 evas_common_tilebuf_free_render_rects(re->rects);
261 re->rects = NULL;
262 re->end = EINA_TRUE;
263 }
264 if ((ux + uw) > re->ob->w) uw = re->ob->w - ux;
265 if ((uy + uh) > re->ob->h) uh = re->ob->h - uy;
266 if ((uw <= 0) || (uh <= 0)) return NULL;
267 surface =
268 re->outbuf_new_region_for_update(re->ob, ux, uy, uw, uh, cx, cy, cw, ch);
269 if (x) *x = ux;
270 if (y) *y = uy;
271 if (w) *w = uw;
272 if (h) *h = uh;
273 return surface;
274}
275
276static void
277eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
278{
279 Render_Engine *re = NULL;
280
281 if (!(re = (Render_Engine *)data)) return;
282#ifdef BUILD_PIPE_RENDER
283 evas_common_pipe_map_begin(surface);
284#endif
285 if (re->ob)
286 {
287 re->outbuf_push_updated_region(re->ob, surface, x, y, w, h);
288 re->outbuf_free_region_for_update(re->ob, surface);
289 }
290 evas_common_cpu_end_opt();
291}
292
293static void
294eng_output_flush(void *data)
295{
296 Render_Engine *re = NULL;
297
298 if (!(re = (Render_Engine *)data)) return;
299}
300
301static void
302eng_output_idle_flush(void *data)
303{
304 Render_Engine *re = NULL;
305
306 if (!(re = (Render_Engine *)data)) return;
307}
308
309static Eina_Bool
310eng_canvas_alpha_get(void *data, void *context __UNUSED__)
311{
312 Render_Engine *re = NULL;
313
314 if (!(re = (Render_Engine *)data)) return EINA_FALSE;
315 return EINA_TRUE;
316}
317
318/* module functions */
319static int
320module_open(Evas_Module *em)
321{
322 if (!em) return 0;
323
324 if (!_evas_module_engine_inherit(&pfunc, "software_generic"))
325 return 0;
326
327 _evas_engine_way_shm_log_dom =
328 eina_log_domain_register("evas-wayland_shm", EVAS_DEFAULT_LOG_COLOR);
329 if (_evas_engine_way_shm_log_dom < 0)
330 {
331 EINA_LOG_ERR("Could not create a module log domain.");
332 return 0;
333 }
334
335 func = pfunc;
336
337#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
338 ORD(info);
339 ORD(info_free);
340 ORD(setup);
341 ORD(canvas_alpha_get);
342 ORD(output_free);
343 ORD(output_resize);
344 ORD(output_tile_size_set);
345 ORD(output_redraws_rect_add);
346 ORD(output_redraws_rect_del);
347 ORD(output_redraws_clear);
348 ORD(output_redraws_next_update_get);
349 ORD(output_redraws_next_update_push);
350 ORD(output_flush);
351 ORD(output_idle_flush);
352
353 em->functions = (void *)(&func);
354 return 1;
355}
356
357static void
358module_close(Evas_Module *em __UNUSED__)
359{
360 eina_log_domain_unregister(_evas_engine_way_shm_log_dom);
361}
362
363static Evas_Module_Api evas_modapi =
364{
365 EVAS_MODULE_API_VERSION, "wayland_shm", "none", {module_open, module_close}
366};
367
368EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, wayland_shm);
369
370#ifndef EVAS_STATIC_BUILD_WAYLAND_SHM
371EVAS_EINA_MODULE_DEFINE(engine, wayland_shm);
372#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h
deleted file mode 100644
index 1869d16..0000000
--- a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h
+++ /dev/null
@@ -1,61 +0,0 @@
1#ifndef _EVAS_ENGINE_H
2# define _EVAS_ENGINE_H
3
4//# define LOGFNS 1
5
6# ifdef LOGFNS
7# include <stdio.h>
8# define LOGFN(fl, ln, fn) printf("-EVAS-WL: %25s: %5i - %s\n", fl, ln, fn);
9# else
10# define LOGFN(fl, ln, fn)
11# endif
12
13extern int _evas_engine_way_shm_log_dom;
14
15# ifdef ERR
16# undef ERR
17# endif
18# define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_way_shm_log_dom, __VA_ARGS__)
19
20# ifdef DBG
21# undef DBG
22# endif
23# define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_way_shm_log_dom, __VA_ARGS__)
24
25# ifdef INF
26# undef INF
27# endif
28# define INF(...) EINA_LOG_DOM_INFO(_evas_engine_way_shm_log_dom, __VA_ARGS__)
29
30# ifdef WRN
31# undef WRN
32# endif
33# define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_way_shm_log_dom, __VA_ARGS__)
34
35# ifdef CRIT
36# undef CRIT
37# endif
38# define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_way_shm_log_dom, __VA_ARGS__)
39
40typedef struct _Outbuf Outbuf;
41struct _Outbuf
42{
43 int w, h;
44 int rotation;
45
46 struct
47 {
48 void *dest;
49 RGBA_Image *buffer;
50 Eina_Bool destination_alpha : 1;
51 } priv;
52};
53
54void evas_outbuf_free(Outbuf *ob);
55void evas_outbuf_resize(Outbuf *ob, int w, int h);
56Outbuf *evas_outbuf_setup(int w, int h, int rot, Eina_Bool alpha, void *dest);
57RGBA_Image *evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
58void evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h);
59void evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update);
60
61#endif
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c b/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c
deleted file mode 100644
index 4dee9a2..0000000
--- a/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c
+++ /dev/null
@@ -1,101 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4void
5evas_outbuf_free(Outbuf *ob)
6{
7 if (!ob) return;
8 if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
9 free(ob);
10}
11
12void
13evas_outbuf_resize(Outbuf *ob, int w, int h)
14{
15 if (!ob) return;
16 if ((ob->w == w) && (ob->h == h)) return;
17 ob->w = w;
18 ob->h = h;
19 if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
20 ob->priv.buffer = NULL;
21}
22
23Outbuf *
24evas_outbuf_setup(int w, int h, int rot, Eina_Bool alpha, void *dest)
25{
26 Outbuf *ob = NULL;
27
28 if (!(ob = calloc(1, sizeof(Outbuf)))) return NULL;
29
30 ob->w = w;
31 ob->h = h;
32 ob->rotation = rot;
33 ob->priv.dest = dest;
34 ob->priv.destination_alpha = alpha;
35
36 ob->priv.buffer =
37 (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
38 w, h, ob->priv.dest,
39 1, EVAS_COLORSPACE_ARGB8888);
40
41 return ob;
42}
43
44RGBA_Image *
45evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
46{
47 if (ob->priv.buffer)
48 {
49 *cx = x; *cy = y; *cw = w; *ch = h;
50 return ob->priv.buffer;
51 }
52 else
53 {
54 RGBA_Image *im;
55
56 *cx = 0; *cy = 0; *cw = w; *ch = h;
57 im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
58 if (im)
59 {
60 im->cache_entry.flags.alpha = ob->priv.destination_alpha;
61 im = (RGBA_Image *)evas_cache_image_size_set(&im->cache_entry, w, h);
62 }
63
64 return im;
65 }
66
67 return NULL;
68}
69
70void
71evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h)
72{
73 if (!ob->priv.dest) return;
74 if (!ob->priv.buffer)
75 {
76 Gfx_Func_Copy func;
77
78 func = evas_common_draw_func_copy_get(w, 0);
79 if (func)
80 {
81 DATA32 *dst, *src;
82 int yy = 0, bytes = 0;
83
84 bytes = ((w * sizeof(int)) * h);
85 for (yy = 0; yy < h; yy++)
86 {
87 src = update->image.data + (yy * update->cache_entry.w);
88 dst = (DATA32 *)((DATA8 *)(ob->priv.dest) +
89 ((y + yy) * bytes));
90 func(src, dst, w);
91 }
92 }
93 }
94}
95
96void
97evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update)
98{
99 if (!ob) return;
100 if (update != ob->priv.buffer) evas_cache_image_drop(&update->cache_entry);
101}