| 119 | /////////////////////////////////////////// |
| 120 | |
| 121 | bool defaults_init() { |
| 122 | // Textures |
| 123 | sk_default_tex = defaults_texture(default_id_tex, {1,1,1,1} ); |
| 124 | sk_default_tex_black = defaults_texture(default_id_tex_black, {0,0,0,1} ); |
| 125 | sk_default_tex_gray = defaults_texture(default_id_tex_gray, {0.5f,0.5f,0.5f,1}); |
| 126 | sk_default_tex_flat = defaults_texture(default_id_tex_flat, {0.5f,0.5f,1,1} ); // Default for normal maps |
| 127 | sk_default_tex_rough = defaults_texture(default_id_tex_rough, {1,1,0,1} ); // Default for metal/roughness maps |
| 128 | |
| 129 | sk_default_tex_devtex = dev_texture(default_id_tex_devtex, { 1,1, 1, 1 }, 1); |
| 130 | sk_default_tex_error = dev_texture(default_id_tex_error, { 1,0.7f,0.7f,1 }, 1); |
| 131 | |
| 132 | if (sk_default_tex == nullptr || |
| 133 | sk_default_tex_black == nullptr || |
| 134 | sk_default_tex_gray == nullptr || |
| 135 | sk_default_tex_flat == nullptr || |
| 136 | sk_default_tex_rough == nullptr || |
| 137 | sk_default_tex_devtex== nullptr || |
| 138 | sk_default_tex_error == nullptr) |
| 139 | return false; |
| 140 | |
| 141 | tex_set_loading_fallback(sk_default_tex_devtex); |
| 142 | tex_set_error_fallback (sk_default_tex_error); |
| 143 | |
| 144 | // Cubemap |
| 145 | spherical_harmonics_t lighting = sk_default_lighting; |
| 146 | sh_brightness(lighting, 0.75f); |
| 147 | sk_default_cubemap = tex_gen_cubemap_sh(lighting, 16, 0.3f); |
| 148 | tex_set_id(sk_default_cubemap, default_id_cubemap); |
| 149 | |
| 150 | // Default quad mesh |
| 151 | sk_default_quad = mesh_create(); |
| 152 | vert_t verts[4] = { |
| 153 | { vec3{-0.5f,-0.5f,0}, vec3{0,0,-1}, vec2{1,1}, color32{255,255,255,255} }, |
| 154 | { vec3{ 0.5f,-0.5f,0}, vec3{0,0,-1}, vec2{0,1}, color32{255,255,255,255} }, |
| 155 | { vec3{ 0.5f, 0.5f,0}, vec3{0,0,-1}, vec2{0,0}, color32{255,255,255,255} }, |
| 156 | { vec3{-0.5f, 0.5f,0}, vec3{0,0,-1}, vec2{1,0}, color32{255,255,255,255} }, }; |
| 157 | vind_t inds[6] = { 2,1,0, 3,2,0 }; |
| 158 | mesh_set_data(sk_default_quad, verts, 4, inds, 6); |
| 159 | |
| 160 | // Default rendering quad |
| 161 | sk_default_screen_quad = mesh_create(); |
| 162 | vert_t sq_verts[4] = { |
| 163 | { vec3{-1,-1,0}, vec3{0,0,1}, vec2{0,1}, color32{255,255,255,255} }, |
| 164 | { vec3{ 1,-1,0}, vec3{0,0,1}, vec2{1,1}, color32{255,255,255,255} }, |
| 165 | { vec3{ 1, 1,0}, vec3{0,0,1}, vec2{1,0}, color32{255,255,255,255} }, |
| 166 | { vec3{-1, 1,0}, vec3{0,0,1}, vec2{0,0}, color32{255,255,255,255} }, }; |
| 167 | vind_t sq_inds[6] = { 0,1,2, 0,2,3 }; |
| 168 | mesh_set_data(sk_default_screen_quad, sq_verts, 4, sq_inds, 6); |
| 169 | |
| 170 | sk_default_cube = mesh_gen_cube(vec3_one); |
| 171 | sk_default_sphere = mesh_gen_sphere(1); |
| 172 | |
| 173 | mesh_set_id(sk_default_quad, default_id_mesh_quad); |
| 174 | mesh_set_id(sk_default_screen_quad, default_id_mesh_screen_quad); |
| 175 | mesh_set_id(sk_default_cube, default_id_mesh_cube); |
| 176 | mesh_set_id(sk_default_sphere, default_id_mesh_sphere); |
| 177 | |
| 178 | // Shaders |
nothing calls this directly
no test coverage detected