@@ -927,76 +927,12 @@ load_texture(TextureDef &def, const EggTexture *egg_tex) {
927927// //////////////////////////////////////////////////////////////////
928928void EggLoader::
929929apply_texture_attributes (Texture *tex, const EggTexture *egg_tex) {
930- switch (egg_tex->determine_wrap_u ()) {
931- case EggTexture::WM_repeat:
932- tex->set_wrap_u (Texture::WM_repeat);
933- break ;
934-
935- case EggTexture::WM_clamp:
936- if (egg_ignore_clamp) {
937- egg2pg_cat.warning ()
938- << " Ignoring clamp request\n " ;
939- tex->set_wrap_u (Texture::WM_repeat);
940- } else {
941- tex->set_wrap_u (Texture::WM_clamp);
942- }
943- break ;
944-
945- case EggTexture::WM_unspecified:
946- break ;
947-
948- default :
949- egg2pg_cat.warning ()
950- << " Unexpected texture wrap flag: "
951- << (int )egg_tex->determine_wrap_u () << " \n " ;
952- }
953-
954- switch (egg_tex->determine_wrap_v ()) {
955- case EggTexture::WM_repeat:
956- tex->set_wrap_v (Texture::WM_repeat);
957- break ;
958-
959- case EggTexture::WM_clamp:
960- if (egg_ignore_clamp) {
961- egg2pg_cat.warning ()
962- << " Ignoring clamp request\n " ;
963- tex->set_wrap_v (Texture::WM_repeat);
964- } else {
965- tex->set_wrap_v (Texture::WM_clamp);
966- }
967- break ;
968-
969- case EggTexture::WM_unspecified:
970- break ;
971-
972- default :
973- egg2pg_cat.warning ()
974- << " Unexpected texture wrap flag: "
975- << (int )egg_tex->determine_wrap_v () << " \n " ;
976- }
977-
978- switch (egg_tex->determine_wrap_w ()) {
979- case EggTexture::WM_repeat:
980- tex->set_wrap_w (Texture::WM_repeat);
981- break ;
930+ tex->set_wrap_u (convert_wrap_mode (egg_tex->determine_wrap_u ()));
931+ tex->set_wrap_v (convert_wrap_mode (egg_tex->determine_wrap_v ()));
932+ tex->set_wrap_w (convert_wrap_mode (egg_tex->determine_wrap_w ()));
982933
983- case EggTexture::WM_clamp:
984- if (egg_ignore_clamp) {
985- egg2pg_cat.warning ()
986- << " Ignoring clamp request\n " ;
987- tex->set_wrap_w (Texture::WM_repeat);
988- } else {
989- tex->set_wrap_w (Texture::WM_clamp);
990- }
991- break ;
992-
993- case EggTexture::WM_unspecified:
994- break ;
995-
996- default :
997- egg2pg_cat.warning ()
998- << " Unexpected texture wrap flag: "
999- << (int )egg_tex->determine_wrap_w () << " \n " ;
934+ if (egg_tex->has_border_color ()) {
935+ tex->set_border_color (egg_tex->get_border_color ());
1000936 }
1001937
1002938 switch (egg_tex->get_minfilter ()) {
@@ -1234,6 +1170,40 @@ apply_texture_attributes(Texture *tex, const EggTexture *egg_tex) {
12341170 }
12351171}
12361172
1173+ // //////////////////////////////////////////////////////////////////
1174+ // Function: EggLoader::convert_wrap_mode
1175+ // Access: Private
1176+ // Description: Returns the Texture::WrapMode enum corresponding to
1177+ // the EggTexture::WrapMode. Returns WM_repeat if the
1178+ // wrap mode is unspecified.
1179+ // //////////////////////////////////////////////////////////////////
1180+ Texture::WrapMode EggLoader::
1181+ convert_wrap_mode (EggTexture::WrapMode wrap_mode) const {
1182+ switch (wrap_mode) {
1183+ case EggTexture::WM_clamp:
1184+ return Texture::WM_clamp;
1185+
1186+ case EggTexture::WM_repeat:
1187+ return Texture::WM_repeat;
1188+
1189+ case EggTexture::WM_mirror:
1190+ return Texture::WM_mirror;
1191+
1192+ case EggTexture::WM_mirror_once:
1193+ return Texture::WM_mirror_once;
1194+
1195+ case EggTexture::WM_border_color:
1196+ return Texture::WM_border_color;
1197+
1198+ case EggTexture::WM_unspecified:
1199+ return Texture::WM_repeat;
1200+ }
1201+
1202+ egg2pg_cat.warning ()
1203+ << " Unexpected texture wrap flag: " << (int )wrap_mode << " \n " ;
1204+ return Texture::WM_repeat;
1205+ }
1206+
12371207// //////////////////////////////////////////////////////////////////
12381208// Function: EggLoader::make_texture_stage
12391209// Access: Private
0 commit comments