]> O.S.I.I.S - jp/vkvg.git/commitdiff
prevent trying to create surface with dim <= 0
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Tue, 11 Jan 2022 13:55:16 +0000 (14:55 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Tue, 11 Jan 2022 13:55:16 +0000 (14:55 +0100)
src/vkvg_internal.h
src/vkvg_surface.c

index ec82a746eee0d6d57471c136912b0fa40fab529c..fa590c6302fe12a55f93981800f78ec48bfbaa63 100644 (file)
 #define ROUND_DOWN(v,p) (floorf(v * p) / p)
 #define EQUF(a, b) (fabsf(a-b)<=FLT_EPSILON)
 
+#ifndef MAX
+       #define MAX(a,b) ((a) > (b) ? (a) : (b))
+#endif
+#ifndef MIN
+       #define MIN(a,b) ((a) < (b) ? (a) : (b))
+#endif
 
 #include "cross_os.h"
 #include "cross_mutex.h"
index c0591362bafb2f8fb6e66581b1c0fb03f1b003ab..ed9a19c4a5b235e3f419766efaf8888e8ab1591a 100644 (file)
@@ -29,6 +29,7 @@
 #include "stb_image_write.h"
 #include "vkh_image.h"
 
+#define max(x,y)
 void vkvg_surface_clear (VkvgSurface surf) {
        _clear_surface(surf, VK_IMAGE_ASPECT_STENCIL_BIT|VK_IMAGE_ASPECT_COLOR_BIT);
 }
@@ -37,8 +38,8 @@ VkvgSurface vkvg_surface_create (VkvgDevice dev, uint32_t width, uint32_t height
        if (!surf)
                return NULL;
 
-       surf->width = width;
-       surf->height = height;
+       surf->width = MAX(1, width);
+       surf->height = MAX(1, height);
        surf->new = true;//used to clear all attacments on first render pass
 
        _create_surface_images (surf);
@@ -77,8 +78,8 @@ VkvgSurface vkvg_surface_create_from_bitmap (VkvgDevice dev, unsigned char* img,
        if (!surf)
                return NULL;
 
-       surf->width = width;
-       surf->height = height;
+       surf->width = MAX(1, width);
+       surf->height = MAX(1, height);
 
        _create_surface_images (surf);