Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/intern/gpu_material.c
| Show All 36 Lines | |||||
| #include "GL/glew.h" | #include "GL/glew.h" | ||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| #include "DNA_lamp_types.h" | #include "DNA_lamp_types.h" | ||||
| #include "DNA_material_types.h" | #include "DNA_material_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_group_types.h" | |||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_world_types.h" | #include "DNA_world_types.h" | ||||
| #include "BLI_math.h" | #include "BLI_math.h" | ||||
| #include "BLI_blenlib.h" | #include "BLI_blenlib.h" | ||||
| #include "BLI_utildefines.h" | #include "BLI_utildefines.h" | ||||
| #include "BKE_anim.h" | #include "BKE_anim.h" | ||||
| #include "BKE_colortools.h" | #include "BKE_colortools.h" | ||||
| #include "BKE_DerivedMesh.h" | #include "BKE_DerivedMesh.h" | ||||
| #include "BKE_global.h" | #include "BKE_global.h" | ||||
| #include "BKE_image.h" | #include "BKE_image.h" | ||||
| #include "BKE_main.h" | #include "BKE_main.h" | ||||
| #include "BKE_node.h" | #include "BKE_node.h" | ||||
| #include "BKE_scene.h" | #include "BKE_scene.h" | ||||
| #include "BKE_texture.h" | #include "BKE_texture.h" | ||||
| #include "BKE_group.h" | |||||
| #include "IMB_imbuf_types.h" | #include "IMB_imbuf_types.h" | ||||
| #include "GPU_extensions.h" | #include "GPU_extensions.h" | ||||
| #include "GPU_material.h" | #include "GPU_material.h" | ||||
| #include "gpu_codegen.h" | #include "gpu_codegen.h" | ||||
| ▲ Show 20 Lines • Show All 191 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| void GPU_material_bind(GPUMaterial *material, int oblay, int viewlay, double time, int mipmap, float viewmat[4][4], float viewinv[4][4]) | void GPU_material_bind(GPUMaterial *material, int oblay, int viewlay, double time, int mipmap, float viewmat[4][4], float viewinv[4][4]) | ||||
| { | { | ||||
| if (material->pass) { | if (material->pass) { | ||||
| LinkData *nlink; | LinkData *nlink; | ||||
| GPULamp *lamp; | GPULamp *lamp; | ||||
| GPUShader *shader = GPU_pass_shader(material->pass); | GPUShader *shader = GPU_pass_shader(material->pass); | ||||
| SceneRenderLayer *srl = BLI_findlink(&material->scene->r.layers, material->scene->r.actlay); | |||||
| if (srl) | |||||
| viewlay &= srl->lay; | |||||
| /* handle layer lamps */ | /* handle layer lamps */ | ||||
| for (nlink=material->lamps.first; nlink; nlink=nlink->next) { | for (nlink=material->lamps.first; nlink; nlink=nlink->next) { | ||||
| lamp= nlink->data; | lamp= nlink->data; | ||||
| if (!lamp->hide && (lamp->lay & viewlay) && (!(lamp->mode & LA_LAYER) || (lamp->lay & oblay))) { | if (!lamp->hide && (lamp->lay & viewlay) && (!(lamp->mode & LA_LAYER) || (lamp->lay & oblay)) | ||||
| && ((srl && srl->light_override) ? BKE_group_object_exists(srl->light_override, lamp->ob) | |||||
| : (!material->ma->group || BKE_group_object_exists(material->ma->group, lamp->ob)))) { | |||||
| lamp->dynenergy = lamp->energy; | lamp->dynenergy = lamp->energy; | ||||
| copy_v3_v3(lamp->dyncol, lamp->col); | copy_v3_v3(lamp->dyncol, lamp->col); | ||||
| } | } | ||||
| else { | else { | ||||
| lamp->dynenergy = 0.0f; | lamp->dynenergy = 0.0f; | ||||
| lamp->dyncol[0]= lamp->dyncol[1]= lamp->dyncol[2] = 0.0f; | lamp->dyncol[0]= lamp->dyncol[1]= lamp->dyncol[2] = 0.0f; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 1,921 Lines • Show Last 20 Lines | |||||