Fix: GPU_shader_export fails /w some lamp attrs
first/last vars missed some values. D1309 by @NHA
This commit is contained in:
@@ -121,47 +121,62 @@ typedef struct GPUNodeStack {
|
|||||||
short sockettype;
|
short sockettype;
|
||||||
} GPUNodeStack;
|
} GPUNodeStack;
|
||||||
|
|
||||||
typedef enum GPUDynamicType {
|
|
||||||
GPU_DYNAMIC_NONE = 0,
|
|
||||||
GPU_DYNAMIC_OBJECT_VIEWMAT = 1,
|
|
||||||
GPU_DYNAMIC_OBJECT_MAT = 2,
|
|
||||||
GPU_DYNAMIC_OBJECT_VIEWIMAT = 3,
|
|
||||||
GPU_DYNAMIC_OBJECT_IMAT = 4,
|
|
||||||
GPU_DYNAMIC_OBJECT_COLOR = 5,
|
|
||||||
GPU_DYNAMIC_OBJECT_AUTOBUMPSCALE = 15,
|
|
||||||
|
|
||||||
GPU_DYNAMIC_LAMP_FIRST = 6,
|
#define GPU_DYNAMIC_GROUP_FROM_TYPE(f) ((f) & 0xFFFF0000)
|
||||||
GPU_DYNAMIC_LAMP_DYNVEC = 6,
|
|
||||||
GPU_DYNAMIC_LAMP_DYNCO = 7,
|
#define GPU_DYNAMIC_GROUP_MISC 0x00010000
|
||||||
GPU_DYNAMIC_LAMP_DYNIMAT = 8,
|
#define GPU_DYNAMIC_GROUP_LAMP 0x00020000
|
||||||
GPU_DYNAMIC_LAMP_DYNPERSMAT = 9,
|
#define GPU_DYNAMIC_GROUP_OBJECT 0x00030000
|
||||||
GPU_DYNAMIC_LAMP_DYNENERGY = 10,
|
#define GPU_DYNAMIC_GROUP_SAMPLER 0x00040000
|
||||||
GPU_DYNAMIC_LAMP_DYNCOL = 11,
|
#define GPU_DYNAMIC_GROUP_MIST 0x00050000
|
||||||
GPU_DYNAMIC_LAMP_LAST = 11,
|
#define GPU_DYNAMIC_GROUP_WORLD 0x00060000
|
||||||
GPU_DYNAMIC_SAMPLER_2DBUFFER = 12,
|
#define GPU_DYNAMIC_GROUP_MAT 0x00070000
|
||||||
GPU_DYNAMIC_SAMPLER_2DIMAGE = 13,
|
|
||||||
GPU_DYNAMIC_SAMPLER_2DSHADOW = 14,
|
typedef enum GPUDynamicType {
|
||||||
GPU_DYNAMIC_LAMP_DISTANCE = 16,
|
|
||||||
GPU_DYNAMIC_LAMP_ATT1 = 17,
|
GPU_DYNAMIC_NONE = 0,
|
||||||
GPU_DYNAMIC_LAMP_ATT2 = 18,
|
|
||||||
GPU_DYNAMIC_LAMP_SPOTSIZE = 19,
|
GPU_DYNAMIC_OBJECT_VIEWMAT = 1 | GPU_DYNAMIC_GROUP_OBJECT,
|
||||||
GPU_DYNAMIC_LAMP_SPOTBLEND = 20,
|
GPU_DYNAMIC_OBJECT_MAT = 2 | GPU_DYNAMIC_GROUP_OBJECT,
|
||||||
GPU_DYNAMIC_MIST_ENABLE = 21,
|
GPU_DYNAMIC_OBJECT_VIEWIMAT = 3 | GPU_DYNAMIC_GROUP_OBJECT,
|
||||||
GPU_DYNAMIC_MIST_START = 22,
|
GPU_DYNAMIC_OBJECT_IMAT = 4 | GPU_DYNAMIC_GROUP_OBJECT,
|
||||||
GPU_DYNAMIC_MIST_DISTANCE = 23,
|
GPU_DYNAMIC_OBJECT_COLOR = 5 | GPU_DYNAMIC_GROUP_OBJECT,
|
||||||
GPU_DYNAMIC_MIST_INTENSITY = 24,
|
GPU_DYNAMIC_OBJECT_AUTOBUMPSCALE = 6 | GPU_DYNAMIC_GROUP_OBJECT,
|
||||||
GPU_DYNAMIC_MIST_TYPE = 25,
|
|
||||||
GPU_DYNAMIC_MIST_COLOR = 26,
|
GPU_DYNAMIC_LAMP_DYNVEC = 1 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_HORIZON_COLOR = 27,
|
GPU_DYNAMIC_LAMP_DYNCO = 2 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_AMBIENT_COLOR = 28,
|
GPU_DYNAMIC_LAMP_DYNIMAT = 3 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_DIFFRGB = 29,
|
GPU_DYNAMIC_LAMP_DYNPERSMAT = 4 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_REF = 30,
|
GPU_DYNAMIC_LAMP_DYNENERGY = 5 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_SPECRGB = 31,
|
GPU_DYNAMIC_LAMP_DYNCOL = 6 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_SPEC = 32,
|
GPU_DYNAMIC_LAMP_DISTANCE = 7 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_HARD = 33,
|
GPU_DYNAMIC_LAMP_ATT1 = 8 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_EMIT = 34,
|
GPU_DYNAMIC_LAMP_ATT2 = 9 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_AMB = 35,
|
GPU_DYNAMIC_LAMP_SPOTSIZE = 10 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
GPU_DYNAMIC_MAT_ALPHA = 36,
|
GPU_DYNAMIC_LAMP_SPOTBLEND = 11 | GPU_DYNAMIC_GROUP_LAMP,
|
||||||
|
|
||||||
|
GPU_DYNAMIC_SAMPLER_2DBUFFER = 1 | GPU_DYNAMIC_GROUP_SAMPLER,
|
||||||
|
GPU_DYNAMIC_SAMPLER_2DIMAGE = 2 | GPU_DYNAMIC_GROUP_SAMPLER,
|
||||||
|
GPU_DYNAMIC_SAMPLER_2DSHADOW = 3 | GPU_DYNAMIC_GROUP_SAMPLER,
|
||||||
|
|
||||||
|
GPU_DYNAMIC_MIST_ENABLE = 1 | GPU_DYNAMIC_GROUP_MIST,
|
||||||
|
GPU_DYNAMIC_MIST_START = 2 | GPU_DYNAMIC_GROUP_MIST,
|
||||||
|
GPU_DYNAMIC_MIST_DISTANCE = 3 | GPU_DYNAMIC_GROUP_MIST,
|
||||||
|
GPU_DYNAMIC_MIST_INTENSITY = 4 | GPU_DYNAMIC_GROUP_MIST,
|
||||||
|
GPU_DYNAMIC_MIST_TYPE = 5 | GPU_DYNAMIC_GROUP_MIST,
|
||||||
|
GPU_DYNAMIC_MIST_COLOR = 6 | GPU_DYNAMIC_GROUP_MIST,
|
||||||
|
|
||||||
|
GPU_DYNAMIC_HORIZON_COLOR = 1 | GPU_DYNAMIC_GROUP_WORLD,
|
||||||
|
GPU_DYNAMIC_AMBIENT_COLOR = 2 | GPU_DYNAMIC_GROUP_WORLD,
|
||||||
|
|
||||||
|
GPU_DYNAMIC_MAT_DIFFRGB = 1 | GPU_DYNAMIC_GROUP_MAT,
|
||||||
|
GPU_DYNAMIC_MAT_REF = 2 | GPU_DYNAMIC_GROUP_MAT,
|
||||||
|
GPU_DYNAMIC_MAT_SPECRGB = 3 | GPU_DYNAMIC_GROUP_MAT,
|
||||||
|
GPU_DYNAMIC_MAT_SPEC = 4 | GPU_DYNAMIC_GROUP_MAT,
|
||||||
|
GPU_DYNAMIC_MAT_HARD = 5 | GPU_DYNAMIC_GROUP_MAT,
|
||||||
|
GPU_DYNAMIC_MAT_EMIT = 6 | GPU_DYNAMIC_GROUP_MAT,
|
||||||
|
GPU_DYNAMIC_MAT_AMB = 7 | GPU_DYNAMIC_GROUP_MAT,
|
||||||
|
GPU_DYNAMIC_MAT_ALPHA = 8 | GPU_DYNAMIC_GROUP_MAT
|
||||||
} GPUDynamicType;
|
} GPUDynamicType;
|
||||||
|
|
||||||
GPUNodeLink *GPU_attribute(CustomDataType type, const char *name);
|
GPUNodeLink *GPU_attribute(CustomDataType type, const char *name);
|
||||||
|
@@ -2305,7 +2305,7 @@ GPUShaderExport *GPU_shader_export(struct Scene *scene, struct Material *ma)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uniform->type >= GPU_DYNAMIC_LAMP_FIRST && uniform->type <= GPU_DYNAMIC_LAMP_LAST)
|
if (GPU_DYNAMIC_GROUP_FROM_TYPE(uniform->type) == GPU_DYNAMIC_GROUP_LAMP)
|
||||||
uniform->lamp = input->dynamicdata;
|
uniform->lamp = input->dynamicdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -79,7 +79,17 @@ static PyObject *PyInit_gpu(void)
|
|||||||
if (m == NULL)
|
if (m == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
/* device constant groups */
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_GROUP_MISC);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_GROUP_LAMP);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_GROUP_OBJECT);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_GROUP_SAMPLER);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_GROUP_MIST);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_GROUP_WORLD);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_GROUP_MAT);
|
||||||
|
|
||||||
/* device constants */
|
/* device constants */
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_NONE);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_VIEWMAT);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_VIEWMAT);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_MAT);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_MAT);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_VIEWIMAT);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_OBJECT_VIEWIMAT);
|
||||||
@@ -92,6 +102,11 @@ static PyObject *PyInit_gpu(void)
|
|||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_DYNPERSMAT);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_DYNPERSMAT);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_DYNENERGY);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_DYNENERGY);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_DYNCOL);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_DYNCOL);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_ATT1);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_ATT2);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_DISTANCE);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_SPOTBLEND);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_LAMP_SPOTSIZE);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_SAMPLER_2DBUFFER);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_SAMPLER_2DBUFFER);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_SAMPLER_2DIMAGE);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_SAMPLER_2DIMAGE);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_SAMPLER_2DSHADOW);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_SAMPLER_2DSHADOW);
|
||||||
@@ -103,6 +118,14 @@ static PyObject *PyInit_gpu(void)
|
|||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MIST_COLOR);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MIST_COLOR);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_HORIZON_COLOR);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_HORIZON_COLOR);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_AMBIENT_COLOR);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_AMBIENT_COLOR);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_ALPHA);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_AMB);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_DIFFRGB);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_EMIT);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_HARD);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_REF);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_SPEC);
|
||||||
|
PY_MODULE_ADD_CONSTANT(m, GPU_DYNAMIC_MAT_SPECRGB);
|
||||||
|
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DATA_1I);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DATA_1I);
|
||||||
PY_MODULE_ADD_CONSTANT(m, GPU_DATA_1F);
|
PY_MODULE_ADD_CONSTANT(m, GPU_DATA_1F);
|
||||||
|
Reference in New Issue
Block a user