Main #15
@@ -16,11 +16,11 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- os: macos-13
|
||||
- os: macos-15-intel
|
||||
arch: x86_64
|
||||
machtype: x86_64-apple-darwin
|
||||
artifact: osx10.6_x86_64_bin
|
||||
- os: macos-latest
|
||||
- os: macos-15
|
||||
arch: arm64
|
||||
machtype: arm64-apple-darwin
|
||||
artifact: macOS_arm64_bin
|
||||
@@ -30,16 +30,21 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Dependencies
|
||||
- name: Install ftjam
|
||||
run: |
|
||||
brew install ftjam
|
||||
wget -q -O ftjam.tar.gz https://sourceforge.net/projects/freetype/files/ftjam/2.5.2/ftjam-2.5.2.tar.gz/download
|
||||
tar -xzf ftjam.tar.gz
|
||||
cd ftjam-2.5.2
|
||||
make CC="cc -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-int-conversion -Wno-implicit-int"
|
||||
sudo cp bin.*/jam /usr/local/bin/jam
|
||||
|
||||
- name: Build ArgyllCMS
|
||||
run: |
|
||||
export OSTYPE=darwin
|
||||
export MACHTYPE=${{ matrix.machtype }}
|
||||
export HOSTTYPE=${{ matrix.arch }}
|
||||
jam -q -fJambase -j$(sysctl -n hw.ncpu) -sBUILTIN_TIFF=true -sBUILTIN_JPEG=true -sBUILTIN_PNG=true -sBUILTIN_Z=true -sBUILTIN_SSL=true install
|
||||
export CCOPTFLAG="-O0"
|
||||
jam -q -d2 -fJambase -j1 -sBUILTIN_TIFF=true -sBUILTIN_JPEG=true -sBUILTIN_PNG=true -sBUILTIN_Z=true -sBUILTIN_SSL=true install
|
||||
|
||||
- name: Smoke Tests
|
||||
env:
|
||||
|
||||
@@ -32,21 +32,20 @@ jobs:
|
||||
git
|
||||
make
|
||||
mingw-w64-x86_64-gcc
|
||||
unzip
|
||||
zip
|
||||
bison
|
||||
|
||||
- name: Install ftjam
|
||||
run: |
|
||||
wget https://github.com/kimgr/ftjam/archive/refs/tags/v2.5.3rc2.tar.gz
|
||||
tar -xzf v2.5.3rc2.tar.gz
|
||||
cd ftjam-2.5.3rc2
|
||||
make
|
||||
cp bin.*/jam.exe /usr/bin/jam.exe
|
||||
wget -q -O ftjam-win32.zip https://sourceforge.net/projects/freetype/files/ftjam/2.5.2/ftjam-2.5.2-win32.zip/download
|
||||
unzip ftjam-win32.zip
|
||||
cp jam.exe /usr/bin/jam.exe
|
||||
|
||||
- name: Build ArgyllCMS
|
||||
env:
|
||||
COMPILER: MINGW64
|
||||
run: |
|
||||
jam -q -fJambase -j$(nproc) -sBUILTIN_TIFF=true -sBUILTIN_JPEG=true -sBUILTIN_PNG=true -sBUILTIN_Z=true -sBUILTIN_SSL=true install
|
||||
export MINGW=$(cygpath -m /mingw64)
|
||||
jam -q -fJambase -j1 -sBUILTIN_TIFF=true -sBUILTIN_JPEG=true -sBUILTIN_PNG=true -sBUILTIN_Z=true -sBUILTIN_SSL=true install
|
||||
|
||||
- name: Smoke Tests
|
||||
env:
|
||||
@@ -62,6 +61,7 @@ jobs:
|
||||
env:
|
||||
COMPILER: MINGW64
|
||||
run: |
|
||||
export MINGW=$(cygpath -m /mingw64)
|
||||
./makepackagebin.sh
|
||||
|
||||
- name: Upload Artifact
|
||||
|
||||
@@ -747,6 +747,8 @@ void usage(char *diag) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa, nfa; /* argument we're looking at */
|
||||
|
||||
@@ -86,6 +86,8 @@ double sl[65][4] = {
|
||||
|
||||
#define GAMRES 5.0 /* Default surface resolution */
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int i, j, e;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -55,6 +55,8 @@ void usage(char *diag) {
|
||||
}
|
||||
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa,nfa; /* argument we're looking at */
|
||||
|
||||
+36
-18
@@ -3531,7 +3531,7 @@ double *in /* input point (absolute)*/
|
||||
) {
|
||||
gtri *tp;
|
||||
int j;
|
||||
double ss, rv;
|
||||
double ss, rv = -1.0;
|
||||
double nin[3]; /* Normalised input vector */
|
||||
|
||||
//printf("~1 radial called with %f %f %f\n", in[0], in[1], in[2]);
|
||||
@@ -3541,9 +3541,15 @@ double *in /* input point (absolute)*/
|
||||
/* Compute vector length to center point */
|
||||
for (ss = 0.0, j = 0; j < 3; j++)
|
||||
ss += (in[j] - s->cent[j]) * (in[j] - s->cent[j]);
|
||||
ss = 1.0/sqrt(ss); /* Normalising factor */
|
||||
for (ss = 0.0, j = 0; j < 3; j++)
|
||||
nin[j] = s->cent[j] + (in[j] - s->cent[j]) * ss;
|
||||
ss = sqrt(ss);
|
||||
if (ss > 1e-9) { /* Normalise to 1.0 */
|
||||
for (j = 0; j < 3; j++)
|
||||
nin[j] = s->cent[j] + (in[j] - s->cent[j]) / ss;
|
||||
} else {
|
||||
nin[0] = s->cent[0] + 1.0;
|
||||
nin[1] = s->cent[1];
|
||||
nin[2] = s->cent[2];
|
||||
}
|
||||
|
||||
tp = s->tris;
|
||||
FOR_ALL_ITEMS(gtri, tp) {
|
||||
@@ -3600,8 +3606,15 @@ double *in /* input point (absolute)*/
|
||||
//if (trace) printf("~1 Normalised in = %f %f %f\n", nin[0], nin[1], nin[2]);
|
||||
rv = radial_point(s, s->lutree, nin);
|
||||
|
||||
if (rv < 0.0) {
|
||||
error("gamut: radial internal error - failed to find triangle (rv %f)\n",rv);
|
||||
if (rv < -1e-4 || rv > 1e6 || rv != rv) {
|
||||
/* Failed to find a valid triangle via BSP (likely floating point fuzz
|
||||
on parallel planes). Fall back to robust brute force search. */
|
||||
double dummy_out[3];
|
||||
rv = radial_bf(s, out ? out : dummy_out, in);
|
||||
if (rv < 0.0 || rv != rv)
|
||||
rv = 0.0;
|
||||
} else if (rv < 0.0 || rv != rv) {
|
||||
rv = 0.0;
|
||||
}
|
||||
|
||||
if (out != NULL) {
|
||||
@@ -3943,6 +3956,8 @@ double *nin /* Normalised center relative point */
|
||||
) {
|
||||
gtri *rv;
|
||||
//if (trace) printf("~1 rad_pnt_tri: BSP 0x%x tag = %d, point %f %f %f\n", np,np->tag,nin[0],nin[1],nin[2]);
|
||||
if (np == NULL)
|
||||
return NULL;
|
||||
if (np->tag == 1) { /* It's a BSP node */
|
||||
gbspn *n = (gbspn *)np;
|
||||
double ds;
|
||||
@@ -3965,12 +3980,14 @@ double *nin /* Normalised center relative point */
|
||||
return NULL; /* Hmm */
|
||||
|
||||
} else { /* It's a triangle or list of triangles */
|
||||
int nt; /* Number of triangles in list */
|
||||
gtri **tpp; /* Pointer to list of triangles */
|
||||
int nt = 0; /* Number of triangles in list */
|
||||
gtri **tpp = NULL; /* Pointer to list of triangles */
|
||||
gtri *t_single;
|
||||
int i, j;
|
||||
|
||||
if (np->tag == 2) { /* It's a triangle */
|
||||
tpp = (gtri **)&np;
|
||||
t_single = (gtri *)np;
|
||||
tpp = &t_single;
|
||||
nt = 1;
|
||||
} else if (np->tag == 3) { /* It's a triangle list */
|
||||
gbspl *n = (gbspl *)np;
|
||||
@@ -4024,7 +4041,7 @@ double *nin /* Normalised center relative point */
|
||||
/* If we failed to find a triangle, or the result was incorrect, do a */
|
||||
/* brute force search to be sure of the result. */
|
||||
if (t == NULL) {
|
||||
error("rspl.radial: failed to find radial triangle\n");
|
||||
return -1.0; /* Signal failure to caller for fallback */
|
||||
}
|
||||
|
||||
/* Compute the intersection of the input vector with the triangle plane */
|
||||
@@ -4032,10 +4049,7 @@ double *nin /* Normalised center relative point */
|
||||
num = -(t->pe[0] * s->cent[0] + t->pe[1] * s->cent[1] + t->pe[2] * s->cent[2] + t->pe[3]);
|
||||
denom = (t->pe[0] * nin[0] + t->pe[1] * nin[1] + t->pe[2] * nin[2]);
|
||||
|
||||
if (fabs(denom) < 1e-9) {
|
||||
/* Hmm. The ray is paralell to the triangle ? */
|
||||
error("radial_point: failed to intersect radial triangle, num %e, denom %e\n",num,denom);
|
||||
}
|
||||
|
||||
rv = num/denom;
|
||||
|
||||
#ifdef ASSERTS
|
||||
@@ -5064,6 +5078,8 @@ int *lu /* Number used in list */
|
||||
}
|
||||
#endif
|
||||
|
||||
if (np == NULL)
|
||||
return;
|
||||
if (np->tag == 1) { /* It's a BSP node */
|
||||
int j;
|
||||
gbspn *n = (gbspn *)np;
|
||||
@@ -5208,13 +5224,15 @@ int *lu /* Number used in list */
|
||||
return;
|
||||
|
||||
/* It's a list of triangles */
|
||||
} else {
|
||||
int nt; /* Number of triangles in list */
|
||||
gtri **tpp; /* Pointer to list of triangles */
|
||||
} else { /* It's a triangle or list of triangles */
|
||||
int nt = 0; /* Number of triangles in list */
|
||||
gtri **tpp = NULL; /* Pointer to list of triangles */
|
||||
gtri *t_single;
|
||||
int i, j;
|
||||
|
||||
if (np->tag == 2) { /* It's a triangle */
|
||||
tpp = (gtri **)&np;
|
||||
t_single = (gtri *)np;
|
||||
tpp = &t_single;
|
||||
nt = 1;
|
||||
} else if (np->tag == 3) { /* It's a triangle list */
|
||||
gbspl *n = (gbspl *)np;
|
||||
|
||||
@@ -169,6 +169,8 @@ static void set_default(gamdisp *gds, int n) {
|
||||
|
||||
static int g_vect_isect(gamut *s, double *p, double *p1, double *p2);
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa, nfa, mfa; /* argument we're looking at */
|
||||
|
||||
@@ -975,6 +975,8 @@ J_COLOR_SPACE cspace
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa, nfa; /* argument we're looking at */
|
||||
|
||||
@@ -429,6 +429,8 @@ static void output_curves(
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa,nfa; /* argument we're looking at */
|
||||
|
||||
@@ -186,6 +186,8 @@ void output_curve(
|
||||
out_vals[e] = in_vals[e];
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa,nfa; /* argument we're looking at */
|
||||
|
||||
@@ -136,6 +136,7 @@ void usage(void) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa,nfa; /* argument we're looking at */
|
||||
|
||||
@@ -79,6 +79,8 @@ struct _tagsigpair {
|
||||
int dir; /* 0 = none or out, 1 = in */
|
||||
}; typedef struct _tagsigpair tagsigpair;
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa,nfa; /* argument we're looking at */
|
||||
|
||||
@@ -47,6 +47,8 @@ usage(void) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -52,6 +52,8 @@ void usage(char *diag, ...) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(int argc, char *argv[]) {
|
||||
int fa,nfa,mfa; /* argument we're looking at */
|
||||
|
||||
@@ -107,6 +107,8 @@ void usage(void) {
|
||||
|
||||
static void DE2RGB(double *out, double in);
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int
|
||||
main(
|
||||
int argc,
|
||||
|
||||
@@ -58,6 +58,8 @@ FILE *open_pat(char *filename);
|
||||
int next_pat(FILE *fp, double *Lab);
|
||||
void close_pat(FILE *fp);
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -173,6 +173,8 @@ void calc_bc(edatas *ed) {
|
||||
|
||||
void usage(void);
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i,j,k;
|
||||
|
||||
@@ -60,6 +60,8 @@ usage(void) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int fa,nfa; /* current argument we're looking at */
|
||||
int verb = 0;
|
||||
|
||||
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
Executable → Regular
@@ -78,6 +78,8 @@ struct _inpinfo {
|
||||
cgats *c;
|
||||
}; typedef struct _inpinfo inpinfo;
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int fa,nfa; /* current argument we're looking at */
|
||||
int verb = 0;
|
||||
|
||||
@@ -44,6 +44,8 @@ static void usage(char *diag, ...) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int fa, nfa;
|
||||
int verb = 0;
|
||||
|
||||
@@ -72,6 +72,8 @@ usage(int level) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int fa,nfa; /* current argument we're looking at */
|
||||
|
||||
@@ -121,6 +121,8 @@ static void domodel(synthmodel *p, double *out, double *in) {
|
||||
}
|
||||
}
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int i, j, rv = 0;
|
||||
int fa,nfa; /* current argument we're looking at */
|
||||
|
||||
Reference in New Issue
Block a user