Show
Ignore:
Timestamp:
12/17/14 20:21:32 (12 hours ago)
Author:
robert
Message:

Added support for using SDL2 to the osgmovie to enable it to handle floating point audio formats

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/branches/OpenSceneGraph-3.2/src/osgPlugins/3ds/lib3ds/lib3ds_file.c

    r12292 r14038  
    22    Copyright (C) 1996-2008 by Jan Eric Kyprianidis <www.kyprianidis.com> 
    33    All rights reserved. 
    4      
    5     This program is free  software: you can redistribute it and/or modify  
    6     it under the terms of the GNU Lesser General Public License as published  
    7     by the Free Software Foundation, either version 2.1 of the License, or  
     4 
     5    This program is free  software: you can redistribute it and/or modify 
     6    it under the terms of the GNU Lesser General Public License as published 
     7    by the Free Software Foundation, either version 2.1 of the License, or 
    88    (at your option) any later version. 
    99 
    10     Thisprogram  is  distributed in the hope that it will be useful,  
    11     but WITHOUT ANY WARRANTY; without even the implied warranty of  
    12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  
     10    Thisprogram  is  distributed in the hope that it will be useful, 
     11    but WITHOUT ANY WARRANTY; without even the implied warranty of 
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
    1313    GNU Lesser General Public License for more details. 
    14      
     14 
    1515    You should  have received a copy of the GNU Lesser General Public License 
    16     along with  this program; If not, see <http://www.gnu.org/licenses/>.  
     16    along with  this program; If not, see <http://www.gnu.org/licenses/>. 
    1717*/ 
    1818#include "lib3ds_impl.h" 
     
    232232 
    233233    lib3ds_chunk_read_start(&c, CHK_NAMED_OBJECT, io); 
    234      
     234 
    235235    lib3ds_io_read_string(io, name, 64); 
    236236    lib3ds_io_log(io, LIB3DS_LOG_INFO, "  NAME=%s", name); 
     
    445445 
    446446 
    447 static int  
     447static int 
    448448compare_node_id( const void *a, const void *b ) { 
    449449   return (int)((*((Lib3dsNode**)a))->node_id) - (int)((*((Lib3dsNode**)b))->node_id); 
     
    451451 
    452452 
    453 static int  
     453static int 
    454454compare_node_id2( const void *a, const void *b ) { 
    455455   // not a is a pointer in the calling bsearch routine the user_id is an unsigned, while the node_id is an unsigned short?! 
     
    495495            } 
    496496 
    497             case CHK_AMBIENT_NODE_TAG:  
    498             case CHK_OBJECT_NODE_TAG:  
    499             case CHK_CAMERA_NODE_TAG:  
    500             case CHK_TARGET_NODE_TAG:  
    501             case CHK_LIGHT_NODE_TAG:  
    502             case CHK_SPOTLIGHT_NODE_TAG:  
     497            case CHK_AMBIENT_NODE_TAG: 
     498            case CHK_OBJECT_NODE_TAG: 
     499            case CHK_CAMERA_NODE_TAG: 
     500            case CHK_TARGET_NODE_TAG: 
     501            case CHK_LIGHT_NODE_TAG: 
     502            case CHK_SPOTLIGHT_NODE_TAG: 
    503503            case CHK_L_TARGET_NODE_TAG: { 
    504504                Lib3dsNodeType type = 0; 
     
    506506 
    507507                switch (chunk) { 
    508                     case CHK_AMBIENT_NODE_TAG:  
     508                    case CHK_AMBIENT_NODE_TAG: 
    509509                        type = LIB3DS_NODE_AMBIENT_COLOR; 
    510510                        break; 
    511                     case CHK_OBJECT_NODE_TAG:  
     511                    case CHK_OBJECT_NODE_TAG: 
    512512                        type = LIB3DS_NODE_MESH_INSTANCE; 
    513513                        break; 
    514                     case CHK_CAMERA_NODE_TAG:  
     514                    case CHK_CAMERA_NODE_TAG: 
    515515                        type = LIB3DS_NODE_CAMERA; 
    516516                        break; 
    517                     case CHK_TARGET_NODE_TAG:  
     517                    case CHK_TARGET_NODE_TAG: 
    518518                        type = LIB3DS_NODE_CAMERA_TARGET; 
    519519                        break; 
    520                     case CHK_LIGHT_NODE_TAG:  
     520                    case CHK_LIGHT_NODE_TAG: 
    521521                        type = LIB3DS_NODE_OMNILIGHT; 
    522522                        break; 
    523                     case CHK_SPOTLIGHT_NODE_TAG:  
     523                    case CHK_SPOTLIGHT_NODE_TAG: 
    524524                        type = LIB3DS_NODE_SPOTLIGHT; 
    525525                        break; 
     
    566566                parent = *(Lib3dsNode**)bsearch(&p->user_id, nodes, num_nodes, sizeof(Lib3dsNode*), compare_node_id2); 
    567567                if (parent) { 
    568                     q->next = p->next;     
     568                    q->next = p->next; 
    569569                    p->next = parent->childs; 
    570570                    p->parent = parent; 
     
    928928void lib3ds_file_reserve_materials(Lib3dsFile *file, int size, int force) { 
    929929    assert(file); 
    930     lib3ds_util_reserve_array((void***)&file->materials, &file->nmaterials, &file->materials_size,  
     930    lib3ds_util_reserve_array((void***)&file->materials, &file->nmaterials, &file->materials_size, 
    931931                              size, force, (Lib3dsFreeFunc)lib3ds_material_free); 
    932932} 
     
    961961 
    962962 
    963 void  
     963void 
    964964lib3ds_file_reserve_cameras(Lib3dsFile *file, int size, int force) { 
    965965    assert(file); 
    966     lib3ds_util_reserve_array((void***)&file->cameras, &file->ncameras, &file->cameras_size,  
     966    lib3ds_util_reserve_array((void***)&file->cameras, &file->ncameras, &file->cameras_size, 
    967967                              size, force, (Lib3dsFreeFunc)lib3ds_camera_free); 
    968968} 
     
    997997 
    998998 
    999 void  
     999void 
    10001000lib3ds_file_reserve_lights(Lib3dsFile *file, int size, int force) { 
    10011001    assert(file); 
    1002     lib3ds_util_reserve_array((void***)&file->lights, &file->nlights, &file->lights_size,  
     1002    lib3ds_util_reserve_array((void***)&file->lights, &file->nlights, &file->lights_size, 
    10031003                              size, force, (Lib3dsFreeFunc)lib3ds_light_free); 
    10041004} 
     
    10331033 
    10341034 
    1035 void  
     1035void 
    10361036lib3ds_file_reserve_meshes(Lib3dsFile *file, int size, int force) { 
    10371037    assert(file); 
    1038     lib3ds_util_reserve_array((void***)&file->meshes, &file->nmeshes, &file->meshes_size,  
     1038    lib3ds_util_reserve_array((void***)&file->meshes, &file->nmeshes, &file->meshes_size, 
    10391039                               size, force, (Lib3dsFreeFunc)lib3ds_mesh_free); 
    10401040} 
     
    10691069 
    10701070 
    1071 Lib3dsMesh*  
     1071Lib3dsMesh* 
    10721072lib3ds_file_mesh_for_node(Lib3dsFile *file, Lib3dsNode *node) { 
    10731073    int index; 
     
    11631163        } else { 
    11641164            file->nodes = node; 
    1165         }  
     1165        } 
    11661166    } 
    11671167    node->parent = parent; 
     
    12501250file_minmax_node_id_impl(Lib3dsFile *file, Lib3dsNode *node, uint16_t *min_id, uint16_t *max_id) { 
    12511251    Lib3dsNode *p; 
    1252      
     1252 
    12531253    if (min_id && (*min_id > node->node_id)) 
    12541254        *min_id = node->node_id; 
    12551255    if (max_id && (*max_id < node->node_id)) 
    12561256        *max_id = node->node_id; 
    1257      
     1257 
    12581258    p = node->childs; 
    12591259    while (p) { 
     
    12641264 
    12651265 
    1266 void  
     1266void 
    12671267lib3ds_file_minmax_node_id(Lib3dsFile *file, uint16_t *min_id, uint16_t *max_id) { 
    12681268    Lib3dsNode *p; 
    1269      
     1269 
    12701270    if (min_id) 
    12711271        *min_id = 65535; 
     
    12821282 
    12831283void 
    1284 lib3ds_file_bounding_box_of_objects(Lib3dsFile *file, int  
     1284lib3ds_file_bounding_box_of_objects(Lib3dsFile *file, int 
    12851285                                    include_meshes, int include_cameras, int include_lights, 
    12861286                                    float bmin[3], float bmax[3]) { 
     
    13211321 
    13221322static void 
    1323 file_bounding_box_of_nodes_impl(Lib3dsNode *node, Lib3dsFile *file,  
     1323file_bounding_box_of_nodes_impl(Lib3dsNode *node, Lib3dsFile *file, 
    13241324                                int include_meshes, int include_cameras, int include_lights, 
    13251325                                float bmin[3], float bmax[3], float matrix[4][4]) { 
    13261326    switch (node->type) { 
     1327        case LIB3DS_NODE_AMBIENT_COLOR: 
     1328            break; 
     1329             
    13271330        case LIB3DS_NODE_MESH_INSTANCE: 
    13281331            if (include_meshes) { 
     
    13931396 
    13941397void 
    1395 lib3ds_file_bounding_box_of_nodes(Lib3dsFile *file,  
     1398lib3ds_file_bounding_box_of_nodes(Lib3dsFile *file, 
    13961399                                  int include_meshes, int include_cameras,int include_lights, 
    13971400                                  float bmin[3], float bmax[3], float matrix[4][4]) {