diff --git a/dub.json b/dub.json index 6635d742..d61d6c73 100644 --- a/dub.json +++ b/dub.json @@ -5,6 +5,9 @@ "license": "Boost", "authors": ["Vadim Lopatin"], "targetType": "none", + "buildRequirements":[ + "allowWarnings" + ], "subPackages": [ { "name": "dlanguilib", @@ -92,7 +95,7 @@ "derelict-gl3": "~master", "derelict-ft": "~master", "de_image:png": ">=0.2.3", - "dlib": "~master" + "dlib": ">=0.4.0" }, "-ddoxFilterArgs": ["--unittest-examples", "--min-protection=Protected", "--ex", "win32.", "--ex", "src.dlangui"] }, diff --git a/examples/example1/src/main.d b/examples/example1/src/main.d index cdc55c58..67595064 100644 --- a/examples/example1/src/main.d +++ b/examples/example1/src/main.d @@ -376,7 +376,7 @@ extern (C) int UIAppMain(string[] args) { layout.layoutHeight(FILL_PARENT).layoutWidth(FILL_PARENT); - tabs.addTab(layout, "Tab 1"d); + tabs.addTab(layout, "Misc"d); static if (true) { // two long lists @@ -534,9 +534,7 @@ extern (C) int UIAppMain(string[] args) { table.margins(Rect(10,10,10,10)).layoutWidth(FILL_PARENT); tabs.addTab(table, "TAB_TABLE_LAYOUT"c); - tabs.addTab((new TextWidget()).id("tab5").textColor(0x00802000).text("Tab 5 contents"), "Tab 5"d); - - tabs.addTab((new SampleAnimationWidget("tab6")).layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT), "TAB_ANIMATION"c); + //tabs.addTab((new TextWidget()).id("tab5").textColor(0x00802000).text("Tab 5 contents"), "Tab 5"d); //========================================================================== // create Editors test tab @@ -707,6 +705,9 @@ extern (C) int UIAppMain(string[] args) { tabs.addTab(treeLayout, "Tree"d); + tabs.addTab((new SampleAnimationWidget("tab6")).layoutWidth(FILL_PARENT).layoutHeight(FILL_PARENT), "TAB_ANIMATION"c); + + //========================================================================== contentLayout.addChild(tabs); diff --git a/src/dlangui/graphics/images.d b/src/dlangui/graphics/images.d index 960c9647..d53d96c0 100644 --- a/src/dlangui/graphics/images.d +++ b/src/dlangui/graphics/images.d @@ -34,6 +34,7 @@ version (USE_DEIMAGE) { version (USE_DLIBIMAGE) { import dlib.image.io.io; import dlib.image.image; + //version = ENABLE_DLIBIMAGE_JPEG; } import dlangui.core.logger; @@ -45,29 +46,7 @@ import std.conv : to; /// load and decode image from file to ColorDrawBuf, returns null if loading or decoding is failed ColorDrawBuf loadImage(string filename) { Log.d("Loading image from file " ~ filename); - version (USE_DLIBIMAGE) { - try { - SuperImage image = dlib.image.io.io.loadImage(filename); - if (!image) - return null; - int w = image.width; - int h = image.height; - ColorDrawBuf buf = new ColorDrawBuf(w, h); - for (int y = 0; y < h; y++) { - uint * dstLine = buf.scanLine(y); - for (int x = 0; x < w; x++) { - auto pixel = image[x, h - 1 - y].convert(8); - dstLine[x] = makeRGBA(pixel.r, pixel.g, pixel.b, 255 - pixel.a); - } - } - destroy(image); - return buf; - } catch (Exception e) { - Log.e("Failed to load image from file ", filename, " using dlib image"); - Log.e(to!string(e)); - return null; - } - } else version (USE_DEIMAGE) { + version (USE_DEIMAGE) { try { Image image = imageFromFile(filename); int w = cast(int)image.width; @@ -90,6 +69,35 @@ ColorDrawBuf loadImage(string filename) { Log.e(to!string(e)); return null; } + } else version (USE_DLIBIMAGE) { + import std.algorithm; + try { + version (ENABLE_DLIBIMAGE_JPEG) { + } else { + // temporary disabling of JPEG support - until DLIB included it + if (filename.endsWith(".jpeg") || filename.endsWith(".jpg") || filename.endsWith(".JPG") || filename.endsWith(".JPEG")) + return null; + } + SuperImage image = dlib.image.io.io.loadImage(filename); + if (!image) + return null; + int w = image.width; + int h = image.height; + ColorDrawBuf buf = new ColorDrawBuf(w, h); + for (int y = 0; y < h; y++) { + uint * dstLine = buf.scanLine(y); + for (int x = 0; x < w; x++) { + auto pixel = image[x, h - 1 - y].convert(8); + dstLine[x] = makeRGBA(pixel.r, pixel.g, pixel.b, 255 - pixel.a); + } + } + destroy(image); + return buf; + } catch (Exception e) { + Log.e("Failed to load image from file ", filename, " using dlib image"); + Log.e(to!string(e)); + return null; + } } else { try { std.stream.File f = new std.stream.File(filename);