mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-11-19 11:35:12 +00:00
lua-imlib2: move to conky style logging
Unfortunately we can't use logging.h directly from conky as its in C++ and lua bindings only have access to a C compiler. Instead we now have a very simple C implementation of logging.h to use within the bindings. This change also adds NULL checks to catch some extra invalid states
This commit is contained in:
parent
78a38db342
commit
b79d465ed3
@ -44,7 +44,7 @@ if(BUILD_X11)
|
||||
endif(BUILD_LUA_CAIRO)
|
||||
|
||||
if(BUILD_LUA_IMLIB2)
|
||||
include_directories(${luaimlib2_includes} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
include_directories(${luaimlib2_includes} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
if(IMLIB2_VERSION VERSION_GREATER_EQUAL "1.10.0")
|
||||
wrap_tolua(luaimlib2_src imlib2.pkg)
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include <Imlib2.h>
|
||||
#include <cairo.h>
|
||||
|
||||
#include "logging.h"
|
||||
|
||||
void cairo_draw_image(const char *file, cairo_surface_t *cs, int x, int y,
|
||||
double scale_x, double scale_y, double *return_scale_w,
|
||||
double *return_scale_h) {
|
||||
@ -36,14 +38,25 @@ void cairo_draw_image(const char *file, cairo_surface_t *cs, int x, int y,
|
||||
Imlib_Image alpha, premul;
|
||||
cairo_surface_t *result;
|
||||
cairo_t *cr;
|
||||
|
||||
if (!file) {
|
||||
NORM_ERR("cairoimagehelper: File is NULL\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!cs) {
|
||||
NORM_ERR("cairoimagehelper: Surface is NULL\n");
|
||||
return;
|
||||
}
|
||||
|
||||
Imlib_Image *image = imlib_load_image(file);
|
||||
if (!image) {
|
||||
printf("Error: CairoImageHelper: Couldn't load %s\n", file);
|
||||
NORM_ERR("cairoimagehelper: Couldn't load %s\n", file);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((scale_x <= 0.0) && (scale_y <= 0.0)) {
|
||||
printf("Error: CairoImageHelper: Image Scale is 0, %s\n", file);
|
||||
NORM_ERR("cairoimagehelper: Image Scale is 0, %s\n", file);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -52,7 +65,7 @@ void cairo_draw_image(const char *file, cairo_surface_t *cs, int x, int y,
|
||||
h = imlib_image_get_height();
|
||||
|
||||
if ((w <= 0) && (h <= 0)) {
|
||||
printf("Error: CairoImageHelper: %s has 0 size\n", file);
|
||||
NORM_ERR("cairoimagehelper: %s has 0 size\n", file);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -60,7 +73,7 @@ void cairo_draw_image(const char *file, cairo_surface_t *cs, int x, int y,
|
||||
scaled_h = *return_scale_h = scale_y * (double)h;
|
||||
|
||||
if ((scaled_w <= 0.0) && (scaled_h <= 0.0)) {
|
||||
printf("Error: CairoImageHelper: %s scaled image has 0 size\n", file);
|
||||
NORM_ERR("cairoimagehelper: %s scaled image has 0 size\n", file);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -70,7 +83,7 @@ void cairo_draw_image(const char *file, cairo_surface_t *cs, int x, int y,
|
||||
/* create temporary image */
|
||||
premul = imlib_create_image(scaled_w, scaled_h);
|
||||
if (!premul) {
|
||||
printf("Error: CairoImageHelper: Couldn't create premul image for %s\n", file);
|
||||
NORM_ERR("cairoimagehelper: Couldn't create premul image for %s\n", file);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user