Skip to content

Commit

Permalink
Merge branch 'develop' into 'master'
Browse files Browse the repository at this point in the history
Merge develop into master

See merge request Scientific-IT-Systems/gr!812
  • Loading branch information
jheinen committed Mar 28, 2022
2 parents 08c185a + b75fa44 commit 41ed7a5
Show file tree
Hide file tree
Showing 20 changed files with 218 additions and 69 deletions.
1 change: 1 addition & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ BraceWrapping:
AfterExternBlock: false
BeforeCatch: true
BeforeElse: true
BeforeWhile: true
IndentBraces: true
SplitEmptyFunction: true
SplitEmptyRecord: true
Expand Down
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@
97151f7590c1c2e7893e6e3282cb01e8c1c62e7b
# Commit which applied updated coding style guidelines for `extern "C"` blocks
e9e9f129c8a87161b9727a5b94d3414d0e33a47c
# Commit which applied new code formatting by upgrading to `clang-format` 13
c9a848ed891ef494e2251fb289824d04cab4ed66
2 changes: 1 addition & 1 deletion .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

EXCLUDED_ROOT_DIRECTORIES=( "3rdparty" "apps" )
PREFERRED_CLANG_FORMAT_VERSION="9"
PREFERRED_CLANG_FORMAT_VERSION="13"

is_in_excluded_directory () {
local file directory
Expand Down
3 changes: 3 additions & 0 deletions 3rdparty/libpng16/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ ifeq ($(shell arch),arm64)
PNGCFLAGS += -DPNG_ARM_NEON_OPT=0
endif
endif
endif
ifeq ($(shell arch),aarch64)
PNGCFLAGS += -DPNG_ARM_NEON_OPT=0
endif
OBJS = \
png.o \
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ PKGCONFIGDIR = $(LIBDIR)/pkgconfig

UNAME := $(shell uname)

PREFERRED_CLANG_FORMAT_VERSION="9"
PREFERRED_CLANG_FORMAT_VERSION="13"
ifeq ($(shell command -v "clang-format-$(PREFERRED_CLANG_FORMAT_VERSION)"),)
CLANG_FORMAT="clang-format"
else
Expand Down
10 changes: 6 additions & 4 deletions js/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -532,12 +532,14 @@ gr_text = function(x, y, string) {
gr_inqtext_c = Module.cwrap('gr_inqtext', '', ['number', 'number', 'number', 'number', 'number', ]);
gr_inqtext = function(x, y, string) {
var _string = uint8array(string);
var _tbx = Module._malloc(8);
var _tby = Module._malloc(8);
var _tbx = Module._malloc(8*4);
var _tby = Module._malloc(8*4);
gr_inqtext_c(x, y, _string, _tbx, _tby);
var result = new Array(2);
result[0] = Module.HEAPF64.subarray(_tbx / 8, _tbx / 8 + 1)[0];
result[1] = Module.HEAPF64.subarray(_tby / 8, _tby / 8 + 1)[0];
result[0] = Module.HEAPF64.subarray(_tbx / 8, _tbx / 8 + 4);
result[0] = Array.prototype.slice.call(result[0]);
result[1] = Module.HEAPF64.subarray(_tby / 8, _tby / 8 + 4);
result[1] = Array.prototype.slice.call(result[1]);
freearray(_string);
freearray(_tbx);
freearray(_tby);
Expand Down
10 changes: 5 additions & 5 deletions lib/gks/dl.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ void gks_dl_write_item(gks_display_list_t *d, int fctid, int dx, int dy, int dim
double *f_arr_1, int len_f_arr_2, double *f_arr_2, int len_c_arr, char *c_arr,
gks_state_list_t *gkss)
{
char s[132], *t = NULL;
char s[GKS_K_TEXT_MAX_SIZE], *t = NULL;
int len = -1, slen, tp = 0;

GKS_UNUSED(len_f_arr_1);
Expand Down Expand Up @@ -169,19 +169,19 @@ void gks_dl_write_item(gks_display_list_t *d, int fctid, int dx, int dy, int dim

if (d->state == GKS_K_WS_ACTIVE)
{
len = 3 * sizeof(int) + 2 * sizeof(double) + 132;
len = 3 * sizeof(int) + 2 * sizeof(double) + GKS_K_TEXT_MAX_SIZE;
if (d->nbytes + len > d->size) reallocate(d, len);

memset((void *)s, 0, 132);
memset((void *)s, 0, GKS_K_TEXT_MAX_SIZE);
slen = strlen(c_arr);
memcpy(s, c_arr, slen < 132 ? slen : 131);
memcpy(s, c_arr, slen < GKS_K_TEXT_MAX_SIZE ? slen : GKS_K_TEXT_MAX_SIZE - 1);

COPY(&len, sizeof(int));
COPY(&fctid, sizeof(int));
COPY(f_arr_1, sizeof(double));
COPY(f_arr_2, sizeof(double));
COPY(&slen, sizeof(int));
COPY(s, 132);
COPY(s, GKS_K_TEXT_MAX_SIZE);

d->empty = 0;
}
Expand Down
7 changes: 4 additions & 3 deletions lib/gks/gks.c
Original file line number Diff line number Diff line change
Expand Up @@ -1169,13 +1169,14 @@ void gks_text(double px, double py, char *str)
/* ignore empty strings */
return;
}
else if (strlen(str) < 132)
else if (strlen(str) < GKS_K_TEXT_MAX_SIZE)
{
if (s->txprec != GKS_K_TEXT_PRECISION_OUTLINE)
{
/* double the string length as the longest utf8 representation of any latin1 character is two bytes long
/* double the output string size as the longest utf8 representation of any latin1 character is two bytes
* long
*/
char utf8_str[2 * 131 + 1];
char utf8_str[2 * (GKS_K_TEXT_MAX_SIZE - 1) + 1];
gks_input2utf8(str, utf8_str, s->input_encoding);

f_arr_1[0] = px;
Expand Down
4 changes: 4 additions & 0 deletions lib/gks/gks.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ extern "C" {
#define GKS_K_TEXT_PRECISION_STROKE 2
#define GKS_K_TEXT_PRECISION_OUTLINE 3

/* maximum text size */

#define GKS_K_TEXT_MAX_SIZE 500

/* workstation category */

#define GKS_K_WSCAT_OUTPUT 0
Expand Down
12 changes: 6 additions & 6 deletions lib/gks/mf.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ static void reallocate(int len)
static void write_item(int fctid, int dx, int dy, int dimx, int *i_arr, int len_farr_1, double *f_arr_1, int len_farr_2,
double *f_arr_2, int len_c_arr, char *c_arr)
{
char s[132];
char s[GKS_K_TEXT_MAX_SIZE];
int len = -1, slen, tp;
GKS_UNUSED(len_farr_1);
GKS_UNUSED(len_farr_2);
Expand All @@ -79,19 +79,19 @@ static void write_item(int fctid, int dx, int dy, int dimx, int *i_arr, int len_

case 14: /* text */

len = 3 * sizeof(int) + 2 * sizeof(double) + 132;
len = 3 * sizeof(int) + 2 * sizeof(double) + GKS_K_TEXT_MAX_SIZE;
if (p->nbytes + len > p->size) reallocate(len);

memset((void *)s, 0, 132);
memset((void *)s, 0, GKS_K_TEXT_MAX_SIZE);
slen = strlen(c_arr);
memcpy(s, c_arr, slen < 132 ? slen : 131);
memcpy(s, c_arr, slen < GKS_K_TEXT_MAX_SIZE ? slen : GKS_K_TEXT_MAX_SIZE - 1);

COPY(&len, sizeof(int));
COPY(&fctid, sizeof(int));
COPY(f_arr_1, sizeof(double));
COPY(f_arr_2, sizeof(double));
COPY(&slen, sizeof(int));
COPY(s, 132);
COPY(s, GKS_K_TEXT_MAX_SIZE);
break;

case 16: /* cell array */
Expand Down Expand Up @@ -505,7 +505,7 @@ static void interp(char *str)
RESOLVE(f_arr_1, double, sizeof(double));
RESOLVE(f_arr_2, double, sizeof(double));
RESOLVE(len_c_arr, int, sizeof(int));
RESOLVE(c_arr, char, 132);
RESOLVE(c_arr, char, GKS_K_TEXT_MAX_SIZE);
break;

case 16: /* cell array */
Expand Down
2 changes: 1 addition & 1 deletion lib/gks/plugin/glplugin.c
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,7 @@ static void interp(char *str)
RESOLVE(f_arr_1, double, sizeof(double));
RESOLVE(f_arr_2, double, sizeof(double));
RESOLVE(len_c_arr, int, sizeof(int));
RESOLVE(c_arr, char, 132);
RESOLVE(c_arr, char, GKS_K_TEXT_MAX_SIZE);
/* dummy assignment to avoid warning 'set but not used' */
*len_c_arr = *len_c_arr;
break;
Expand Down
2 changes: 1 addition & 1 deletion lib/gks/plugin/qtplugin_impl.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1286,7 +1286,7 @@ static void interp(char *str)
RESOLVE(f_arr_1, double, sizeof(double));
RESOLVE(f_arr_2, double, sizeof(double));
RESOLVE(len_c_arr, int, sizeof(int));
RESOLVE(c_arr, char, 132);
RESOLVE(c_arr, char, GKS_K_TEXT_MAX_SIZE);
break;

case 16: /* cell array */
Expand Down
2 changes: 1 addition & 1 deletion lib/gks/plugin/wxplugin.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -856,7 +856,7 @@ static void interp(char *str)
RESOLVE(f_arr_1, double, sizeof(double));
RESOLVE(f_arr_2, double, sizeof(double));
RESOLVE(len_c_arr, int, sizeof(int));
RESOLVE(c_arr, char, 132);
RESOLVE(c_arr, char, GKS_K_TEXT_MAX_SIZE);
/* dummy assignment to avoid warning 'set but not used' */
*len_c_arr = *len_c_arr;
break;
Expand Down
3 changes: 1 addition & 2 deletions lib/gks/plugin/x11plugin.c
Original file line number Diff line number Diff line change
Expand Up @@ -1498,8 +1498,7 @@ static void wait_for_expose(void)

if (p->new_win)
{
do
XWindowEvent(p->dpy, p->win, StructureNotifyMask, &event);
do XWindowEvent(p->dpy, p->win, StructureNotifyMask, &event);
while (event.xany.type != MapNotify && event.xany.type != ConfigureNotify);
while (XCheckTypedWindowEvent(p->dpy, p->win, Expose, &event))
;
Expand Down
2 changes: 1 addition & 1 deletion lib/gks/quartz/GKSView.m
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ - (void)interp:(char *)str
RESOLVE(f_arr_1, double, sizeof(double));
RESOLVE(f_arr_2, double, sizeof(double));
RESOLVE(len_c_arr, int, sizeof(int));
RESOLVE(c_arr, char, 132);
RESOLVE(c_arr, char, GKS_K_TEXT_MAX_SIZE);
break;

case 16: /* cell array */
Expand Down
12 changes: 6 additions & 6 deletions lib/gks/wiss.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ int cksum(void)
static void write_item(int sgnum, int fctid, int dx, int dy, int dimx, int *i_arr, int len_farr_1, double *f_arr_1,
int len_farr_2, double *f_arr_2, int len_c_arr, char *c_arr)
{
char s[132];
char s[GKS_K_TEXT_MAX_SIZE];
int len = -1, slen, tp = 0;
GKS_UNUSED(len_farr_1);
GKS_UNUSED(len_farr_2);
Expand All @@ -99,20 +99,20 @@ static void write_item(int sgnum, int fctid, int dx, int dy, int dimx, int *i_ar

case 14: /* text */

len = 4 * sizeof(int) + 2 * sizeof(double) + 132;
len = 4 * sizeof(int) + 2 * sizeof(double) + GKS_K_TEXT_MAX_SIZE;
if (p->nbytes + len > p->size) reallocate(len);

memset((void *)s, 0, 132);
memset((void *)s, 0, GKS_K_TEXT_MAX_SIZE);
slen = strlen(c_arr);
memcpy(s, c_arr, slen < 132 ? slen : 131);
memcpy(s, c_arr, slen < GKS_K_TEXT_MAX_SIZE ? slen : GKS_K_TEXT_MAX_SIZE - 1);

COPY(&len, sizeof(int));
COPY(&sgnum, sizeof(int));
COPY(&fctid, sizeof(int));
COPY(f_arr_1, sizeof(double));
COPY(f_arr_2, sizeof(double));
COPY(&slen, sizeof(int));
COPY(s, 132);
COPY(s, GKS_K_TEXT_MAX_SIZE);
break;

case 16: /* cell array */
Expand Down Expand Up @@ -488,7 +488,7 @@ static void interp(char *str, int segn)
RESOLVE(f_arr_1, double, sizeof(double));
RESOLVE(f_arr_2, double, sizeof(double));
RESOLVE(len_c_arr, int, sizeof(int));
RESOLVE(c_arr, char, 132);
RESOLVE(c_arr, char, GKS_K_TEXT_MAX_SIZE);
break;

case 16: /* cell array */
Expand Down
10 changes: 8 additions & 2 deletions lib/gr3/gr3.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,14 @@ const char *gr3_error_file_ = "";
{ \
GR3_InitStruct_INITIALIZER, 0, 0, 0, NULL, 0, NULL, not_initialized_, NULL, NULL, 0, 0, {{0}}, 0, 0, 0, NAN, NAN, \
NAN, NAN, 0, 0, 0, 0, 0, {0, 0, 0, 1}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 4, 0, {0}, {0}, {0}, \
{0}, 0, 0, 0, 0, {0}, {0.2, 0.8, 128, 0.7}, NAN, NAN, NAN, NAN, NAN, NAN \
{0}, 0, 0, 0, 0, {0}, {0.2, 0.8, 128, 0.7}, 1, NAN, NAN, NAN, NAN, NAN, NAN \
}
#else
#define GR3_ContextStruct_INITIALIZER \
{ \
GR3_InitStruct_INITIALIZER, 0, 0, 0, NULL, 0, NULL, not_initialized_, NULL, NULL, 0, 0, {{0}}, 0, 0, 0, NAN, NAN, \
NAN, NAN, 0, 0, 0, 0, 0, {0, 0, 0, 1}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 0, 0, 0, -1, 0, {0}, {0}, {0}, \
0, 0, 0, {0}, {0.2, 0.8, 128, 0.7}, NAN, NAN, NAN, NAN, NAN, NAN \
0, 0, 0, {0}, {0.2, 0.8, 128, 0.7}, 1, NAN, NAN, NAN, NAN, NAN, NAN \
}
#endif
GR3_ContextStruct_t_ context_struct_ = GR3_ContextStruct_INITIALIZER;
Expand Down Expand Up @@ -1801,6 +1801,10 @@ GR3API int gr3_drawimage(float xmin, float xmax, float ymin, float ymax, int wid
switch (drawable_type)
{
case GR3_DRAWABLE_OPENGL:
if (context_struct_.use_software_renderer == 1)
{
RETURN_ERROR(GR3_ERROR_INVALID_VALUE);
}
return gr3_drawimage_opengl_(xmin, xmax, ymin, ymax, width, height);
case GR3_DRAWABLE_GKS:
return gr3_drawimage_gks_(xmin, xmax, ymin, ymax, width, height);
Expand Down Expand Up @@ -2896,6 +2900,7 @@ void gr3_setlightparameters(float ambient, float diffuse, float specular, float
context_struct_.light_parameters.diffuse = diffuse;
context_struct_.light_parameters.specular = specular;
context_struct_.light_parameters.specular_exponent = specular_power;
context_struct_.use_default_light_parameters = 0;
}

void gr3_getlightparameters(float *ambient, float *diffuse, float *specular, float *specular_power)
Expand Down Expand Up @@ -2926,6 +2931,7 @@ void gr3_setdefaultlightparameters()
context_struct_.light_parameters.diffuse = 0.8;
context_struct_.light_parameters.specular_exponent = 128;
context_struct_.light_parameters.specular = 0.7;
context_struct_.use_default_light_parameters = 1;
}

GR3API void gr3_setclipping(float xmin, float xmax, float ymin, float ymax, float zmin, float zmax)
Expand Down
Loading

0 comments on commit 41ed7a5

Please sign in to comment.