--- deliantra/Deliantra-Client/Client.xs 2009/12/22 01:37:41 1.299 +++ deliantra/Deliantra-Client/Client.xs 2010/02/04 20:01:08 1.301 @@ -1678,7 +1678,7 @@ CODE: { glEnable (GL_BLEND); - glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + glBlendFunc (intensity ? GL_SRC_ALPHA : GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glEnable (GL_TEXTURE_2D); glBindTexture (GL_TEXTURE_2D, name1); @@ -1704,7 +1704,7 @@ /* rgb == rgb(glcolor) */ glTexEnvi (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE); - glTexEnvi (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_CONSTANT); + glTexEnvi (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PRIMARY_COLOR); glTexEnvi (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR); /* alpha = interpolate t0, t1 by env_alpha */ @@ -2872,6 +2872,18 @@ PROTOTYPES: DISABLE +void +decoders () + PPCODE: +#if SDL_MIXER_MAJOR_VERSION > 1 || SDL_MIXER_MINOR_VERSION > 2 || SDL_MIXER_PATCHLEVEL >= 10 + int i, num = Mix_GetNumChunkDecoders (); + EXTEND (SP, num); + for (i = 0; i < num; ++i) + PUSHs (sv_2mortal (newSVpv (Mix_GetChunkDecoder (i), 0))); +#else + XPUSHs (sv_2mortal (newSVpv ("(sdl mixer too old)", 0))); +#endif + DC::MixChunk new (SV *class, DC::RW rwops) CODE: @@ -2913,6 +2925,18 @@ MODULE = Deliantra::Client PACKAGE = DC::MixMusic +void +decoders () + PPCODE: +#if SDL_MIXER_MAJOR_VERSION > 1 || SDL_MIXER_MINOR_VERSION > 2 || SDL_MIXER_PATCHLEVEL >= 10 + int i, num = Mix_GetNumMusicDecoders (); + EXTEND (SP, num); + for (i = 0; i < num; ++i) + PUSHs (sv_2mortal (newSVpv (Mix_GetMusicDecoder (i), 0))); +#else + XPUSHs (sv_2mortal (newSVpv ("(sdl mixer too old)", 0))); +#endif + int volume (int volume = -1) PROTOTYPE: ;$ @@ -2933,6 +2957,13 @@ CODE: Mix_HaltMusic (); +int +playing () + CODE: + RETVAL = Mix_PlayingMusic (); + OUTPUT: + RETVAL + DC::MixMusic new (SV *class, DC::RW rwops) CODE: