From 74ffdf019ec2b2b98e5e2c952a8701893756f6f3 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Wed, 4 Apr 2012 02:57:02 +0800 Subject: [PATCH] add: dirty hack for libjpeg as workaround no segfault now, but no images displayed. --- Makefile | 12 +++++++++++- cre.cpp | 2 +- kpvcrlib/CMakeLists.txt | 12 ++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 05bd9bc60..44dec6efc 100644 --- a/Makefile +++ b/Makefile @@ -67,6 +67,10 @@ THIRDPARTYLIBS := $(MUPDFLIBDIR)/libfreetype.a \ $(MUPDFLIBDIR)/libjpeg.a \ $(MUPDFLIBDIR)/libz.a +#@TODO patch crengine to use the latest libjpeg 04.04 2012 (houqp) + #$(MUPDFLIBDIR)/libjpeg.a + #$(CRENGINEDIR)/thirdparty/libjpeg/libjpeg.a + LUALIB := $(LUADIR)/src/liblua.a kpdfview: kpdfview.o einkfb.o pdf.o blitbuffer.o drawcontext.o input.o util.o ft.o lfs.o $(MUPDFLIBS) $(THIRDPARTYLIBS) $(LUALIB) djvu.o $(DJVULIBS) cre.o $(CRENGINELIBS) @@ -112,8 +116,12 @@ fetchthirdparty: -rm -Rf mupdf/thirdparty git submodule init git submodule update + ln -s kpvcrlib/crengine/cr3gui/data data test -f mupdf-thirdparty.zip || wget http://www.mupdf.com/download/mupdf-thirdparty.zip unzip mupdf-thirdparty.zip -d mupdf + cd mupdf/thirdparty/jpeg-*/ && \ + patch -N -p0 < ../../../kpvcrlib/jpeg_compress_struct_size.patch &&\ + patch -N -p0 < ../../../kpvcrlib/jpeg_decompress_struct_size.patch test -f lua-5.1.4.tar.gz || wget http://www.lua.org/ftp/lua-5.1.4.tar.gz tar xvzf lua-5.1.4.tar.gz && ln -s lua-5.1.4 lua @@ -155,7 +163,9 @@ endif make -C $(DJVUDIR)/build $(CRENGINELIBS): - cd $(KPVCRLIGDIR) && CC="$(CC)" CXX="$(CXX)" cmake . && make + cd $(KPVCRLIGDIR) && rm -rf CMakeCache.txt CMakeFiles && \ + CFLAGS="$(CFLAGS)" CC="$(CC)" CXX="$(CXX)" cmake . && \ + make $(LUALIB): make -C lua/src CC="$(CC)" CFLAGS="$(CFLAGS)" MYCFLAGS=-DLUA_USE_LINUX MYLIBS="-Wl,-E" liblua.a diff --git a/cre.cpp b/cre.cpp index efd989863..29337a2db 100644 --- a/cre.cpp +++ b/cre.cpp @@ -45,6 +45,7 @@ static int openDocument(lua_State *L) { doc->text_view = new LVDocView(); doc->text_view->setStyleSheet(lString8(style_sheet)); + doc->text_view->setBackgroundColor(0x000000); doc->text_view->LoadDocument(file_name); doc->text_view->setViewMode(DVM_SCROLL, -1); doc->text_view->Resize(width, height); @@ -209,7 +210,6 @@ static int drawCurrentPage(lua_State *L) { doc->text_view->Resize(w, h); doc->text_view->Render(); - drawBuf.Clear(0xFFFFFF); doc->text_view->Draw(drawBuf); diff --git a/kpvcrlib/CMakeLists.txt b/kpvcrlib/CMakeLists.txt index 59ac5c365..8e325b2e0 100644 --- a/kpvcrlib/CMakeLists.txt +++ b/kpvcrlib/CMakeLists.txt @@ -2,6 +2,7 @@ PROJECT(kpvcrlib) cmake_minimum_required(VERSION 2.6) SET(CR_3RDPARTY_DIR crengine/thirdparty) +SET(MUPDF_3RDPARTY_DIR ../mupdf/thirdparty) SET(CR3_PNG 1) SET(CR3_JPEG 1) @@ -10,18 +11,21 @@ SET(FREETYPE_INCLUDE_DIRS ${CR_3RDPARTY_DIR}/freetype/include) SET(ANTIWORD_INCLUDE_DIR ${CR_3RDPARTY_DIR}/antiword) SET(CHM_INCLUDE_DIRS ${CR_3RDPARTY_DIR}/chmlib) SET(PNG_INCLUDE_DIR ${CR_3RDPARTY_DIR}/libpng) +SET(ZLIB_INCLUDE_DIR ${MUPDF_3RDPARTY_DIR}/zlib-1.2.5) +SET(JPEGLIB_INCLUDE_DIR ${MUPDF_3RDPARTY_DIR}/jpeg-8d) +#SET(JPEGLIB_INCLUDE_DIR ${CR_3RDPARTY_DIR}/libjpeg) INCLUDE_DIRECTORIES( ${FREETYPE_INCLUDE_DIRS} ${ANTIWORD_INCLUDE_DIR} ${CHM_INCLUDE_DIRS} ${PNG_INCLUDE_DIR} + ${ZLIB_INCLUDE_DIR} + ${JPEGLIB_INCLUDE_DIR} ) ADD_DEFINITIONS(-DUSE_FONTCONFIG=0 -DUSE_FREETYPE=1 -DCR3_PATCH=1 -DNDEBUG=1) -#ADD_SUBDIRECTORY(crengine) - message("Will build patched LIBCHM library") ADD_DEFINITIONS(-DCHM_SUPPORT_ENABLED=1) ADD_SUBDIRECTORY(${CR_3RDPARTY_DIR}/chmlib) @@ -29,11 +33,15 @@ ADD_SUBDIRECTORY(${CR_3RDPARTY_DIR}/chmlib) message("Will build patched LIBPNG library") ADD_SUBDIRECTORY(${CR_3RDPARTY_DIR}/libpng) +#message("Will build patched JPEGLIB library") +#ADD_SUBDIRECTORY(${CR_3RDPARTY_DIR}/libjpeg) + message("Will build patched ANTIWORD library") ADD_DEFINITIONS(-DENABLE_ANTIWORD=1) ADD_DEFINITIONS(-DCR3_ANTIWORD_PATCH=1) ADD_SUBDIRECTORY(${CR_3RDPARTY_DIR}/antiword) SET(GUI kpv) +ADD_DEFINITIONS(-DJCONFIG_INCLUDE=1) ADD_SUBDIRECTORY(crengine/crengine)