Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5323 in orxonox.OLD for trunk/src/util/resource_manager.cc


Ignore:
Timestamp:
Oct 8, 2005, 5:27:22 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: Shaders can now be loaded via the ResourceManager

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/util/resource_manager.cc

    r5308 r5323  
    3636#include "ogg_player.h"
    3737#endif /* NO_AUDIO */
     38#ifndef NO_SHADERS
     39#include "shader.h"
     40#endif /* NO_SHADERS */
    3841
    3942#include "list.h"
     
    190193#ifndef NO_MODEL
    191194#define __IF_OK
    192   if (!strncmp(fileName+(strlen(fileName)-4), ".obj", 4))
     195  if (!strncasecmp(fileName+(strlen(fileName)-4), ".obj", 4))
    193196    tmpType = OBJ;
    194197  else if (!strncmp(fileName+(strlen(fileName)-4), ".md2", 4))
    195198    tmpType = MD2;
    196   else if (!strcmp(fileName, "cube") ||
    197            !strcmp(fileName, "sphere") ||
    198            !strcmp(fileName, "plane") ||
    199            !strcmp(fileName, "cylinder") ||
    200            !strcmp(fileName, "cone"))
     199  else if (!strcasecmp(fileName, "cube") ||
     200           !strcasecmp(fileName, "sphere") ||
     201           !strcasecmp(fileName, "plane") ||
     202           !strcasecmp(fileName, "cylinder") ||
     203           !strcasecmp(fileName, "cone"))
    201204    tmpType = PRIM;
    202205#endif /* NO_MODEL */
     
    206209#endif
    207210#define __IF_OK
    208   if (!strncmp(fileName+(strlen(fileName)-4), ".wav", 4))
     211  if (!strncasecmp(fileName+(strlen(fileName)-4), ".wav", 4))
    209212    tmpType = WAV;
    210   else if (!strncmp(fileName+(strlen(fileName)-4), ".mp3", 4))
     213  else if (!strncasecmp(fileName+(strlen(fileName)-4), ".mp3", 4))
    211214    tmpType = MP3;
    212   else if (!strncmp(fileName+(strlen(fileName)-4), ".ogg", 4))
     215  else if (!strncasecmp(fileName+(strlen(fileName)-4), ".ogg", 4))
    213216    tmpType = OGG;
    214217#endif /* NO_AUDIO */
     
    218221#endif
    219222#define __IF_OK
    220  if (!strncmp(fileName+(strlen(fileName)-4), ".ttf", 4))
     223 if (!strncasecmp(fileName+(strlen(fileName)-4), ".ttf", 4))
    221224    tmpType = TTF;
    222225#endif /* NO_TEXT */
     226#ifndef NO_SHADERS
     227#ifdef __IF_OK
     228  else
     229#endif
     230#define __IF_OK
     231 if (!strncasecmp(fileName+(strlen(fileName)-5), ".vert", 5))
     232    tmpType = SHADER;
     233#endif /* NO_SHADERS */
    223234#ifndef NO_TEXTURES
    224235#ifdef __IF_OK
     
    308319              if (param1 != NULL)
    309320                {
    310                   tmpResource->skinFileName = new char[strlen((const char*)param1)+1];
    311                   strcpy(tmpResource->skinFileName, (const char*) param1);
     321                  tmpResource->secFileName = new char[strlen((const char*)param1)+1];
     322                  strcpy(tmpResource->secFileName, (const char*) param1);
    312323                }
    313324              else
    314                 tmpResource->skinFileName = NULL;
    315               tmpResource->pointer = new MD2Data(fullName, tmpResource->skinFileName);
     325                tmpResource->secFileName = NULL;
     326              tmpResource->pointer = new MD2Data(fullName, tmpResource->secFileName);
    316327            }
    317328              break;
     
    372383          break;
    373384#endif /* NO_TEXTURES */
     385#ifndef NO_SHADERS
     386          case SHADER:
     387            if(ResourceManager::isFile(fullName))
     388            {
     389              char* secFullName = NULL;
     390              if (param1 != NULL)
     391              {
     392                secFullName = ResourceManager::getFullName((const char*)param1);
     393                printf("%s\n", secFullName);
     394                if (ResourceManager::isFile(secFullName))
     395                {
     396                  printf("ok:: %s\n", secFullName);
     397                  tmpResource->secFileName = new char[strlen((const char*)param1)+1];
     398                  strcpy(tmpResource->secFileName, (const char*) param1);
     399                }
     400                else
     401                {
     402                  delete[] secFullName;
     403                  secFullName = NULL;
     404                  tmpResource->secFileName = NULL;
     405                }
     406              }
     407              else
     408                tmpResource->secFileName = NULL;
     409              printf("%s::%s\n", fullName, secFullName);
     410              tmpResource->pointer = new Shader(fullName, secFullName);
     411              if (secFullName != NULL)
     412                delete[] secFullName;
     413            }
     414            break;
     415#endif /* NO_SHADERS */
    374416        default:
    375417          tmpResource->pointer = NULL;
     
    458500              break;
    459501#endif /* NO_TEXTURES */
     502#ifndef NO_SHADERS
     503            case SHADER:
     504              delete (Shader*)resource->pointer;
     505              break;
     506#endif /* NO_SHADERS */
    460507            default:
    461508              PRINTF(2)("NOT YET IMPLEMENTED !!FIX FIX!!\n");
     
    537584              if (!param1)
    538585                {
    539                   if (enumRes->skinFileName == NULL)
     586                  if (enumRes->secFileName == NULL)
    540587                    match = true;
    541588                }
    542               else if (!strcmp(enumRes->skinFileName, (const char*)param1))
     589              else if (!strcmp(enumRes->secFileName, (const char*)param1))
    543590                match = true;
    544591              break;
     
    555602              break;
    556603#endif /* NO_TEXT */
     604#ifndef NO_SHADERS
     605              case SHADER:
     606                if (!param1)
     607                {
     608                  if (enumRes->secFileName == NULL)
     609                    match = true;
     610                }
     611                else if (!strcmp(enumRes->secFileName, (const char*)param1))
     612                  match = true;
     613#endif /* NO_SHADERS */
    557614            default:
    558615              match = true;
     
    862919      break;
    863920#endif
     921#ifndef NO_SHADERS
     922    case SHADER:
     923      return "Shader";
     924      break;
     925#endif
    864926    default:
    865927      return "unknown Format";
Note: See TracChangeset for help on using the changeset viewer.