Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/intern/gpu_shader.cc
| Show First 20 Lines • Show All 388 Lines • ▼ Show 20 Lines | if (!info.geometry_source_.is_empty()) { | ||||
| free(code); | free(code); | ||||
| } | } | ||||
| if (!info.compute_source_.is_empty()) { | if (!info.compute_source_.is_empty()) { | ||||
| uint32_t builtins = 0; | uint32_t builtins = 0; | ||||
| char *code = gpu_shader_dependency_get_resolved_source(info.compute_source_.c_str(), | char *code = gpu_shader_dependency_get_resolved_source(info.compute_source_.c_str(), | ||||
| &builtins); | &builtins); | ||||
| std::string layout = shader->compute_layout_declare(info); | |||||
| Vector<const char *> sources; | Vector<const char *> sources; | ||||
| standard_defines(sources); | standard_defines(sources); | ||||
| sources.append("#define GPU_COMPUTE_SHADER\n"); | sources.append("#define GPU_COMPUTE_SHADER\n"); | ||||
| sources.append(defines.c_str()); | sources.append(defines.c_str()); | ||||
| if (!typedefs.is_empty()) { | if (!typedefs.is_empty()) { | ||||
| sources.append(shader_shared_utils); | sources.append(shader_shared_utils); | ||||
| } | } | ||||
| for (auto *types : typedefs) { | for (auto *types : typedefs) { | ||||
| sources.append(types); | sources.append(types); | ||||
| } | } | ||||
| sources.append(resources.c_str()); | sources.append(resources.c_str()); | ||||
| sources.append(layout.c_str()); | |||||
| sources.append(code); | sources.append(code); | ||||
| shader->compute_shader_from_glsl(sources); | shader->compute_shader_from_glsl(sources); | ||||
| free(code); | free(code); | ||||
| } | } | ||||
| for (auto *types : typedefs) { | for (auto *types : typedefs) { | ||||
| ▲ Show 20 Lines • Show All 378 Lines • Show Last 20 Lines | |||||