| 2232 | } |
| 2233 | |
| 2234 | void RenderWorld::MeshManager::set_instance_data(u32 ii, SceneGraph &scene_graph) |
| 2235 | { |
| 2236 | if (_data.skeleton[ii] != NULL) { |
| 2237 | AnimationSkeletonInstance *skeleton = (AnimationSkeletonInstance *)_data.skeleton[ii]; |
| 2238 | |
| 2239 | for (u32 b = 0; b < skeleton->num_bones; ++b) { |
| 2240 | TransformId bone_ti = scene_graph.instance(skeleton->bone_lookup[b]); |
| 2241 | skeleton->bones[b] = skeleton->offsets[b] * scene_graph.world_pose(bone_ti); |
| 2242 | } |
| 2243 | |
| 2244 | TransformId ti = scene_graph.instance(_data.unit[ii]); |
| 2245 | Matrix4x4 world_pose = scene_graph.world_pose(ti); |
| 2246 | skeleton->bones[0] = world_pose; |
| 2247 | |
| 2248 | bgfx::setTransform(skeleton->bones, skeleton->num_bones); |
| 2249 | } else { |
| 2250 | bgfx::setTransform(to_float_ptr(_data.world[ii])); |
| 2251 | } |
| 2252 | |
| 2253 | bgfx::setVertexBuffer(0, _data.mesh[ii].vbh); |
| 2254 | bgfx::setIndexBuffer(_data.mesh[ii].ibh); |
| 2255 | } |
| 2256 | |
| 2257 | void RenderWorld::MeshManager::draw_shadow_casters(u8 view_id, SceneGraph &scene_graph, u32 stencil) |
| 2258 | { |
no test coverage detected