Skip to content

Commit fdf8b54

Browse files
Merge pull request #49 from CedricGuillemet/dev-0.10
start of dev 0.10
2 parents ad9b3cf + f2ea3f4 commit fdf8b54

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+5294
-4307
lines changed

bin/Imogen.exe

119 KB
Binary file not shown.

bin/Nodes/C/Crop.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ typedef struct Crop_t
55
float quad[4];
66
} Crop;
77

8-
int main(Crop *param, Evaluation *evaluation)
8+
int main(Crop *param, Evaluation *evaluation, void *context)
99
{
1010
int imageWidth, imageHeight;
1111
int croppedWidth = 256, croppedHeight = 256;
12-
if (GetEvaluationSize(evaluation->inputIndices[0], &imageWidth, &imageHeight) == EVAL_OK)
12+
if (GetEvaluationSize(context, evaluation->inputIndices[0], &imageWidth, &imageHeight) == EVAL_OK)
1313
{
1414
croppedWidth = imageWidth * fabsf(param->quad[2] - param->quad[0]);
1515
croppedHeight = imageHeight * fabsf(param->quad[3] - param->quad[1]);
@@ -18,9 +18,9 @@ int main(Crop *param, Evaluation *evaluation)
1818
//if (croppedHeight<8) { croppedHeight = 8; }
1919

2020
if (evaluation->uiPass)
21-
SetEvaluationSize(evaluation->targetIndex, imageWidth, imageHeight);
21+
SetEvaluationSize(context, evaluation->targetIndex, imageWidth, imageHeight);
2222
else
23-
SetEvaluationSize(evaluation->targetIndex, croppedWidth, croppedHeight);
23+
SetEvaluationSize(context, evaluation->targetIndex, croppedWidth, croppedHeight);
2424

2525
return EVAL_OK;
2626
}

bin/Nodes/C/CubemapFilter.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ typedef struct JobData_t
1515
int targetIndex;
1616
Image image;
1717
CubemapFilterData param;
18+
void *context;
1819
} JobData;
1920

2021

2122
int UploadImageJob(JobData *data)
2223
{
23-
SetEvaluationImage(data->targetIndex, &data->image);
24+
SetEvaluationImage(data->context, data->targetIndex, &data->image);
2425
FreeImage(&data->image);
25-
SetProcessing(data->targetIndex, 0);
26+
SetProcessing(data->context, data->targetIndex, 0);
2627
return EVAL_OK;
2728
}
2829

@@ -31,23 +32,24 @@ int FilterJob(JobData *data)
3132
if (CubemapFilter(&data->image, 32<<data->param.faceSize, data->param.lightingModel, data->param.excludeBase, data->param.glossScale, data->param.glossBias) == EVAL_OK)
3233
{
3334
JobData dataUp = *data;
34-
JobMain(UploadImageJob, &dataUp, sizeof(JobData));
35+
JobMain(data->context, UploadImageJob, &dataUp, sizeof(JobData));
3536
}
3637
return EVAL_OK;
3738
}
3839

39-
int main(CubemapFilterData *param, Evaluation *evaluation)
40+
int main(CubemapFilterData *param, Evaluation *evaluation, void *context)
4041
{
4142
Image image;
4243

43-
if (GetEvaluationImage(evaluation->inputIndices[0], &image) == EVAL_OK)
44+
if (GetEvaluationImage(context, evaluation->inputIndices[0], &image) == EVAL_OK)
4445
{
4546
JobData data;
4647
data.image = image;
4748
data.targetIndex = evaluation->targetIndex;
4849
data.param = *param;
49-
SetProcessing(evaluation->targetIndex, 1);
50-
Job(FilterJob, &data, sizeof(JobData));
50+
data.context = context;
51+
SetProcessing(context, evaluation->targetIndex, 1);
52+
Job(context, FilterJob, &data, sizeof(JobData));
5153
}
5254

5355
return EVAL_ERR;

bin/Nodes/C/EquirectConverter.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ typedef struct EquirectConverter_t
77
} EquirectConverter;
88

99

10-
int main(EquirectConverter *param, Evaluation *evaluation)
10+
int main(EquirectConverter *param, Evaluation *evaluation, void *context)
1111
{
1212
int size = 256 << param->size;
1313
if (param->mode == 0)
1414
{
15-
SetEvaluationCubeSize(evaluation->targetIndex, size);
15+
SetEvaluationCubeSize(context, evaluation->targetIndex, size);
1616
}
1717
else
1818
{
19-
SetEvaluationSize(evaluation->targetIndex, size, size);
19+
SetEvaluationSize(context, evaluation->targetIndex, size, size);
2020
}
2121
return EVAL_OK;
2222
}

bin/Nodes/C/FurDisplay.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "Imogen.h"
22

3-
int main(void *param, Evaluation *evaluation)
3+
int main(void *param, Evaluation *evaluation, void *context)
44
{
5-
EnableDepthBuffer(evaluation->targetIndex, 1);
5+
EnableDepthBuffer(context, evaluation->targetIndex, 1);
66
return EVAL_OK;
77
}

bin/Nodes/C/FurGenerator.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ typedef struct FurGenerator_t
66
float lengthFactor;
77
} FurGenerator;
88

9-
int main(FurGenerator *param, Evaluation *evaluation)
9+
int main(FurGenerator *param, Evaluation *evaluation, void *context)
1010
{
11-
return AllocateComputeBuffer(evaluation->targetIndex, param->hairCount, 4 * 4 *sizeof(float) );
11+
return AllocateComputeBuffer(context, evaluation->targetIndex, param->hairCount, 4 * 4 *sizeof(float) );
1212
}

bin/Nodes/C/GradientBuilder.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "Imogen.h"
22

3-
int main(void *param, Evaluation *evaluation)
3+
int main(void *param, Evaluation *evaluation, void *context)
44
{
5-
SetEvaluationSize(evaluation->targetIndex, 512, 64);
5+
SetEvaluationSize(context, evaluation->targetIndex, 512, 64);
66
return EVAL_OK;
77
}

bin/Nodes/C/ImageRead.c

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,51 +18,53 @@ typedef struct JobData_t
1818
int targetIndex;
1919
int face;
2020
int isCube;
21+
void *context;
2122
Image image;
2223
} JobData;
2324

2425
int UploadImageJob(JobData *data)
2526
{
2627
if (data->isCube)
2728
{
28-
SetEvaluationImageCube(data->targetIndex, &data->image, data->face);
29+
SetEvaluationImageCube(data->context, data->targetIndex, &data->image, data->face);
2930
}
3031
else
3132
{
32-
SetEvaluationImage(data->targetIndex, &data->image);
33+
SetEvaluationImage(data->context, data->targetIndex, &data->image);
3334
}
3435
FreeImage(&data->image);
35-
SetProcessing(data->targetIndex, 0);
36+
SetProcessing(data->context, data->targetIndex, 0);
3637
return EVAL_OK;
3738
}
3839

3940
int ReadJob(JobData *data)
4041
{
41-
if (ReadImage(data->filename, &data->image) == EVAL_OK)
42+
if (ReadImage(data->context, data->filename, &data->image) == EVAL_OK)
4243
{
4344
JobData dataUp = *data;
44-
JobMain(UploadImageJob, &dataUp, sizeof(JobData));
45+
JobMain(data->context, UploadImageJob, &dataUp, sizeof(JobData));
4546
}
4647
else
47-
SetProcessing(data->targetIndex, 0);
48+
SetProcessing(data->context, data->targetIndex, 0);
4849
return EVAL_OK;
4950
}
5051

51-
int main(ImageRead *param, Evaluation *evaluation)
52+
int main(ImageRead *param, Evaluation *evaluation, void *context)
5253
{
5354
int i;
5455
char *files[6] = {param->posxfile, param->negxfile, param->negyfile, param->posyfile, param->poszfile, param->negzfile};
5556

5657
if (strlen(param->filename))
5758
{
58-
SetProcessing(evaluation->targetIndex, 1);
59+
SetProcessing(context, evaluation->targetIndex, 1);
5960
JobData data;
6061
strcpy(data.filename, param->filename);
6162
data.targetIndex = evaluation->targetIndex;
6263
data.face = 0;
6364
data.isCube = 0;
6465
data.image.bits = 0;
65-
Job(ReadJob, &data, sizeof(JobData));
66+
data.context = context;
67+
Job(context, ReadJob, &data, sizeof(JobData));
6668
}
6769
else
6870
{
@@ -71,7 +73,7 @@ int main(ImageRead *param, Evaluation *evaluation)
7173
if (!strlen(files[i]))
7274
return EVAL_OK;
7375
}
74-
SetProcessing(evaluation->targetIndex, 1);
76+
SetProcessing(context, evaluation->targetIndex, 1);
7577
for (i = 0;i<6;i++)
7678
{
7779
JobData data;
@@ -80,7 +82,8 @@ int main(ImageRead *param, Evaluation *evaluation)
8082
data.face = CUBEMAP_POSX + i;
8183
data.isCube = 1;
8284
data.image.bits = 0;
83-
Job(ReadJob, &data, sizeof(JobData));
85+
data.context = context;
86+
Job(context, ReadJob, &data, sizeof(JobData));
8487
}
8588
}
8689

bin/Nodes/C/ImageWrite.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,23 @@ typedef struct ImageWrite_t
1010
int mode;
1111
}ImageWrite;
1212

13-
int main(ImageWrite *param, Evaluation *evaluation)
13+
int main(ImageWrite *param, Evaluation *evaluation, void *context)
1414
{
1515
char *stockImages[8] = {"Stock/jpg-icon.png", "Stock/png-icon.png", "Stock/tga-icon.png", "Stock/bmp-icon.png", "Stock/hdr-icon.png", "Stock/dds-icon.png", "Stock/ktx-icon.png", "Stock/mp4-icon.png"};
1616
Image image;
1717
int imageWidth, imageHeight;
1818

1919
image.bits = 0;
2020
// set info stock image
21-
if (ReadImage(stockImages[param->format], &image) == EVAL_OK)
21+
if (ReadImage(context, stockImages[param->format], &image) == EVAL_OK)
2222
{
23-
if (SetEvaluationImage(evaluation->targetIndex, &image) == EVAL_OK)
23+
if (SetEvaluationImage(context, evaluation->targetIndex, &image) == EVAL_OK)
2424
{
2525
FreeImage(&image);
2626
}
2727
}
2828

29-
if (param->mode && GetEvaluationSize(evaluation->inputIndices[0], &imageWidth, &imageHeight) == EVAL_OK)
29+
if (param->mode && GetEvaluationSize(context, evaluation->inputIndices[0], &imageWidth, &imageHeight) == EVAL_OK)
3030
{
3131
float ratio = (float)imageWidth / (float)imageHeight;
3232
if (param->mode == 1)
@@ -45,9 +45,9 @@ int main(ImageWrite *param, Evaluation *evaluation)
4545
return EVAL_OK;
4646

4747
image.bits = 0;
48-
if (Evaluate(evaluation->inputIndices[0], param->width, param->height, &image) == EVAL_OK)
48+
if (Evaluate(context, evaluation->inputIndices[0], param->width, param->height, &image) == EVAL_OK)
4949
{
50-
if (WriteImage(param->filename, &image, param->format, param->quality) == EVAL_OK)
50+
if (WriteImage(context, param->filename, &image, param->format, param->quality) == EVAL_OK)
5151
{
5252
FreeImage(&image);
5353
Log("Image %s saved.\n", param->filename);

bin/Nodes/C/Imogen.h

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ typedef struct Evaluation_t
2020
float inv_view_rot[16];
2121
float viewProjection[16];
2222
float viewInverse[16];
23+
float viewport[4];
2324

2425
int targetIndex;
2526
int forcedDirty;
2627
int uiPass;
27-
int padding;
28+
int passNumber;
2829
float mouse[4];
2930
int inputIndices[8];
3031

31-
float viewport[2];
3232
int frame;
3333
int localFrame;
3434
} Evaluation;
@@ -84,14 +84,14 @@ enum CubeMapFace
8484
};
8585

8686
// call FreeImage when done
87-
int ReadImage(char *filename, Image *image);
87+
int ReadImage(void* context, char *filename, Image *image);
8888
// writes an allocated image
89-
int WriteImage(char *filename, Image *image, int format, int quality);
89+
int WriteImage(void* context, char *filename, Image *image, int format, int quality);
9090
// call FreeImage when done
91-
int GetEvaluationImage(int target, Image *image);
91+
int GetEvaluationImage(void* context, int target, Image *image);
9292
//
93-
int SetEvaluationImage(int target, Image *image);
94-
int SetEvaluationImageCube(int target, Image *image, int cubeFace);
93+
int SetEvaluationImage(void* context, int target, Image *image);
94+
int SetEvaluationImageCube(void* context, int target, Image *image, int cubeFace);
9595
// call FreeImage when done
9696
// set the bits pointer with an allocated memory
9797
int AllocateImage(Image *image);
@@ -100,36 +100,36 @@ int LoadSVG(const char *filename, Image *image, float dpi);
100100

101101
// Image resize
102102
// Image thumbnail
103-
int SetThumbnailImage(Image *image);
103+
int SetThumbnailImage(void *context, Image *image);
104104

105105
// force evaluation of a target with a specified size
106106
// no guarantee that the resulting Image will have that size.
107-
int Evaluate(int target, int width, int height, Image *image);
107+
int Evaluate(void *context, int target, int width, int height, Image *image);
108108

109-
void SetBlendingMode(int target, int blendSrc, int blendDst);
110-
void EnableDepthBuffer(int target, int enable);
111-
int GetEvaluationSize(int target, int *imageWidth, int *imageHeight);
112-
int SetEvaluationSize(int target, int imageWidth, int imageHeight);
113-
int SetEvaluationCubeSize(int target, int faceWidth);
109+
void SetBlendingMode(void *context, int target, int blendSrc, int blendDst);
110+
void EnableDepthBuffer(void *context, int target, int enable);
111+
int GetEvaluationSize(void *context, int target, int *imageWidth, int *imageHeight);
112+
int SetEvaluationSize(void *context, int target, int imageWidth, int imageHeight);
113+
int SetEvaluationCubeSize(void *context, int target, int faceWidth);
114114
int CubemapFilter(Image *image, int faceSize, int lightingModel, int excludeBase, int glossScale, int glossBias);
115115

116-
int Job(int(*jobFunction)(void*), void *ptr, unsigned int size);
117-
int JobMain(int(*jobMainFunction)(void*), void *ptr, unsigned int size);
116+
int Job(void *context, int(*jobFunction)(void*), void *ptr, unsigned int size);
117+
int JobMain(void *context, int(*jobMainFunction)(void*), void *ptr, unsigned int size);
118118
// processing values:
119119
// 0 : no more processing, display node as normal
120120
// 1 : processing with an animation for node display
121121
// 2 : display node as normal despite it processing
122-
void SetProcessing(int target, int processing);
122+
void SetProcessing(void *context, int target, int processing);
123123

124124
// compute shader memory allocation
125-
int AllocateComputeBuffer(int target, int elementCount, int elementSize);
125+
int AllocateComputeBuffer(void *context, int target, int elementCount, int elementSize);
126126

127127
int LoadScene(const char *filename, void **scene);
128-
int SetEvaluationScene(int target, void *scene);
129-
int GetEvaluationScene(int target, void **scene);
130-
int GetEvaluationRenderer(int target, void **renderer);
131-
int InitRenderer(int target, int mode, void *scene);
132-
int UpdateRenderer(int target);
128+
int SetEvaluationScene(void *context, int target, void *scene);
129+
int GetEvaluationScene(void *context, int target, void **scene);
130+
int GetEvaluationRenderer(void *context, int target, void **renderer);
131+
int InitRenderer(void *context, int target, int mode, void *scene);
132+
int UpdateRenderer(void *context, int target);
133133

134134
#define EVAL_OK 0
135135
#define EVAL_ERR 1

0 commit comments

Comments
 (0)