From 8c51b1c4c29737d7d3c062d88cbb0f3ca2f97652 Mon Sep 17 00:00:00 2001 From: eddyem Date: Thu, 23 Jan 2020 12:35:00 +0300 Subject: [PATCH] fix bug in imageview module --- image_view_module/CMakeLists.txt | 3 +- image_view_module/imageview.c | 23 ++++--- .../ru/LC_MESSAGES/image_view_module.mo | Bin 1004 -> 963 bytes image_view_module/locale/ru/messages.po | 60 +++++++++--------- image_view_module/locale/ru/ru.po | 20 +++--- image_view_module/main.c | 4 ++ 6 files changed, 61 insertions(+), 49 deletions(-) diff --git a/image_view_module/CMakeLists.txt b/image_view_module/CMakeLists.txt index 806fb3d..3fe300c 100644 --- a/image_view_module/CMakeLists.txt +++ b/image_view_module/CMakeLists.txt @@ -29,6 +29,7 @@ aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} IMSOURCES) find_package(PkgConfig REQUIRED) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) +find_package(X11 REQUIRED) if(NOT GLUT_FOUND OR NOT OPENGL_FOUND) message("GLUT library not found, image view won't be available") @@ -143,7 +144,7 @@ else() ) endif(NOT DEFINED NOGETTEXT) endif(NOT DEFINED STANDALONE) -target_link_libraries(${IMLIB} ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} -lm -lpthread) +target_link_libraries(${IMLIB} ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} ${X11_LIBRARIES} -lm -lpthread) include_directories(${${IMLIB}_INCLUDE_DIRS} ${OPENGL_INCLUDE_DIR} ${GLUT_INCLUDE_DIR}) link_directories(${${IMLIB}_LIBRARY_DIRS}) endif(NOT GLUT_FOUND OR NOT OPENGL_FOUND) diff --git a/image_view_module/imageview.c b/image_view_module/imageview.c index 529cd19..3cb8131 100644 --- a/image_view_module/imageview.c +++ b/image_view_module/imageview.c @@ -91,8 +91,10 @@ void createWindow(windowData *win){ win->zoom = 1. / win->Daspect; glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, win->Tex); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, win->image->w, win->image->h, 0, + GL_RGB, GL_UNSIGNED_BYTE, win->image->rawdata); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); // glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); @@ -100,8 +102,6 @@ void createWindow(windowData *win){ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); //glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, win->image->w, win->image->h, 0, - GL_RGB, GL_UNSIGNED_BYTE, win->image->rawdata); glDisable(GL_TEXTURE_2D); totWindows++; createMenu(win->GL_ID); @@ -236,10 +236,17 @@ void RedrawWindow(){ */ w /= 2.; h /= 2.; glBegin(GL_QUADS); - glTexCoord2f(0.0f, 0.0f); glVertex2f(-w, -h ); - glTexCoord2f(1.0f, 0.0f); glVertex2f( w, -h ); - glTexCoord2f(1.0f, 1.0f); glVertex2f( w, h ); - glTexCoord2f(0.0f, 1.0f); glVertex2f(-w, h ); +/* + glTexCoord2f(1.0f, 1.0f); glVertex2f( w, h ); // top right + glTexCoord2f(1.0f, 0.0f); glVertex2f( w, -h ); // bottom right + glTexCoord2f(0.0f, 0.0f); glVertex2f(-w, -h ); // bottom left + glTexCoord2f(0.0f, 1.0f); glVertex2f(-w, h ); // top left + */ + glTexCoord2f(1.0f, 1.0f); glVertex2f( -w, -h ); // top right + glTexCoord2f(1.0f, 0.0f); glVertex2f( -w, h ); // bottom right + glTexCoord2f(0.0f, 0.0f); glVertex2f(w, h ); // bottom left + glTexCoord2f(0.0f, 1.0f); glVertex2f(w, -h ); // top left + glEnd(); glDisable(GL_TEXTURE_2D); glFinish(); diff --git a/image_view_module/locale/ru/LC_MESSAGES/image_view_module.mo b/image_view_module/locale/ru/LC_MESSAGES/image_view_module.mo index 8431b67cf2251c0632454786f92d8613547d3bb7..b0e6d21bc96aa434d4b8830c5f9874d977b92982 100644 GIT binary patch delta 93 zcmaFEewckij;{nG1H*D47G+>yIKaffAP=Ok0clMj{S8Qq18D_j1_oImZ2_gjfV3o# ZUjn4%fOH>_2I*hBai=!pW?rWIi~w=a4EO*5 delta 132 zcmX@i{)T-*j;|vl1H*D47G+>yc*(@TAP=Pf18GelEziurAP%HGfwU};PK46+Kw1*W zp9`erfb@1C4bp#Y<4$cxwGdtBqSVBa%=|oEm&B4(D+MD1LsMM?V_gFy1w$h%15<4S NV*`WD4;ddZ0sv\n" "Language-Team: LANGUAGE \n" @@ -17,41 +17,41 @@ msgstr "" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8bit\n" -#: /home/eddy/tmp/image_view_module/macros.c:175 -msgid "No filename given!" -msgstr "" - -#: /home/eddy/tmp/image_view_module/macros.c:177 -#, c-format -msgid "Can't open %s for reading" -msgstr "" - -#: /home/eddy/tmp/image_view_module/macros.c:179 -#, c-format -msgid "Can't stat %s" -msgstr "" - -#: /home/eddy/tmp/image_view_module/macros.c:182 -msgid "Mmap error for input" -msgstr "" - -#: /home/eddy/tmp/image_view_module/macros.c:183 -msgid "Can't close mmap'ed file" -msgstr "" - -#: /home/eddy/tmp/image_view_module/macros.c:192 -msgid "Can't munmap" -msgstr "" - -#: /home/eddy/tmp/image_view_module/imageview.c:132 +#: /tmp/image_view_module/imageview.c:132 msgid "Error removing from list" msgstr "" -#: /home/eddy/tmp/image_view_module/imageview.c:362 +#: /tmp/image_view_module/imageview.c:369 msgid "Can't init mutex!" msgstr "" #. "Уже инициализировано!" -#: /home/eddy/tmp/image_view_module/imageview.c:389 +#: /tmp/image_view_module/imageview.c:396 msgid "Already initialized!" msgstr "" + +#: /tmp/image_view_module/macros.c:175 +msgid "No filename given!" +msgstr "" + +#: /tmp/image_view_module/macros.c:177 +#, c-format +msgid "Can't open %s for reading" +msgstr "" + +#: /tmp/image_view_module/macros.c:179 +#, c-format +msgid "Can't stat %s" +msgstr "" + +#: /tmp/image_view_module/macros.c:182 +msgid "Mmap error for input" +msgstr "" + +#: /tmp/image_view_module/macros.c:183 +msgid "Can't close mmap'ed file" +msgstr "" + +#: /tmp/image_view_module/macros.c:192 +msgid "Can't munmap" +msgstr "" diff --git a/image_view_module/locale/ru/ru.po b/image_view_module/locale/ru/ru.po index 43e1df6..a54ad9f 100644 --- a/image_view_module/locale/ru/ru.po +++ b/image_view_module/locale/ru/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2015-03-02 12:05+0300\n" + "POT-Creation-Date: 2020-01-23 12:32+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,41 +17,41 @@ msgstr "Project-Id-Version: PACKAGE VERSION\n" "Content-Transfer-Encoding: 8bit\n" #. "Уже инициализировано!" -#: /home/eddy/tmp/image_view_module/imageview.c:389 +#: /tmp/image_view_module/imageview.c:396 msgid "Already initialized!" msgstr "Уже инициализировано!" -#: /home/eddy/tmp/image_view_module/macros.c:183 +#: /tmp/image_view_module/macros.c:183 msgid "Can't close mmap'ed file" msgstr "Не могу закрыть mmap'нутый файл" -#: /home/eddy/tmp/image_view_module/imageview.c:362 +#: /tmp/image_view_module/imageview.c:369 msgid "Can't init mutex!" msgstr "Не могу инициировать взаимное исключение!" -#: /home/eddy/tmp/image_view_module/macros.c:192 +#: /tmp/image_view_module/macros.c:192 msgid "Can't munmap" msgstr "Не могу вызывать munmap" -#: /home/eddy/tmp/image_view_module/macros.c:177 +#: /tmp/image_view_module/macros.c:177 #, c-format msgid "Can't open %s for reading" msgstr "Не могу открыть %s для чтения" -#: /home/eddy/tmp/image_view_module/macros.c:179 +#: /tmp/image_view_module/macros.c:179 #, c-format msgid "Can't stat %s" msgstr "Не могу выполнить stat для %s" -#: /home/eddy/tmp/image_view_module/imageview.c:132 +#: /tmp/image_view_module/imageview.c:132 msgid "Error removing from list" msgstr "Ошибка удаления из списка" -#: /home/eddy/tmp/image_view_module/macros.c:182 +#: /tmp/image_view_module/macros.c:182 msgid "Mmap error for input" msgstr "Ошибка mmap для входных данных" -#: /home/eddy/tmp/image_view_module/macros.c:175 +#: /tmp/image_view_module/macros.c:175 msgid "No filename given!" msgstr "Не указано имя файла!" diff --git a/image_view_module/main.c b/image_view_module/main.c index 6a39fb4..c3946b9 100644 --- a/image_view_module/main.c +++ b/image_view_module/main.c @@ -50,11 +50,15 @@ void* change_image(void *data){ // DBG("refresh"); GLubyte *raw = win->image->rawdata; for(y = 0; y < h; y++){ + if(y<5){ + raw += w*3; continue; + } if(y%20 == 19){ raw += w*3; continue; } for(x = 0; x < w; x++){ + if(x==14){raw+=15;x+=4; continue;} if(x%20 != 19){ if(i < 80) raw[0]++; else if(i < 170) raw[1]++;