Ignore:
Timestamp:
08/25/14 02:43:30 (11 years ago)
Author:
epyon
Message:
  • updated all tests to new nova
  • cleaned up tests paths
  • general cleanup of tests and test data
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/tests/md5_test/nv_md5_test.cc

    r261 r321  
    1 #include <nv/common.hh>
     1#include <nv/core/common.hh>
    22#include <iomanip>
    33#include <nv/gfx/keyframed_mesh.hh>
    4 #include <nv/interface/vertex_buffer.hh>
    54#include <nv/gl/gl_device.hh>
    65#include <nv/gfx/image.hh>
    76#include <nv/interface/context.hh>
    87#include <nv/interface/window.hh>
    9 #include <nv/interface/program.hh>
    10 #include <nv/interface/texture2d.hh>
    118#include <nv/interface/mesh_loader.hh>
    129#include <nv/io/c_file_system.hh>
    1310#include <nv/formats/md5_loader.hh>
    14 #include <nv/profiler.hh>
    15 #include <nv/logging.hh>
    16 #include <nv/logger.hh>
    17 #include <nv/math.hh>
    18 #include <nv/time.hh>
    19 #include <nv/string.hh>
     11#include <nv/core/profiler.hh>
     12#include <nv/core/logging.hh>
     13#include <nv/core/logger.hh>
     14#include <nv/core/math.hh>
     15#include <nv/core/time.hh>
     16#include <nv/core/string.hh>
    2017#include <nv/gfx/skeletal_mesh.hh>
    2118#include <glm/gtx/rotate_vector.hpp>
     
    3734        nv::device*       m_device;
    3835        nv::window*       m_window;
    39         nv::texture2d*    m_diffuse;
    40         nv::texture2d*    m_specular;
    41         nv::texture2d*    m_normal;
     36        nv::context*      m_context;
     37        nv::texture       m_diffuse;
     38        nv::texture       m_specular;
     39        nv::texture       m_normal;
    4240        nv::clear_state   m_clear_state;
    4341        nv::render_state  m_render_state;
     
    4543
    4644        nv::skeletal_mesh* m_mesh;
    47         nv::program*       m_program;
    48         nv::md5_mesh_data* m_mesh_data;
    49         nv::md5_animation* m_animation;
     45        nv::program        m_program;
     46        nv::mesh_data*      m_mesh_data;
     47        nv::animation_entry* m_animation;
    5048
    5149};
     
    5452{
    5553        NV_PROFILE( "app_construct" );
    56         m_device = new nv::gl_device();
    57         m_window = m_device->create_window( 800, 600, false );
     54        m_device  = new nv::gl_device();
     55        m_window  = m_device->create_window( 800, 600, false );
     56        m_context = m_window->get_context();
    5857        m_animation = nullptr;
    5958
    6059        nv::sampler sampler( nv::sampler::LINEAR, nv::sampler::REPEAT );
    6160        nv::image_data* data = m_device->create_image_data( "data/qshambler_d.png" );
    62         m_diffuse  = m_device->create_texture2d( data->get_size(), nv::RGBA, nv::UBYTE, sampler, (void*)data->get_data() );
     61        m_diffuse  = m_device->create_texture( data, sampler );
    6362        delete data;
    6463        data = m_device->create_image_data( "data/qshambler_s.png" );
    65         m_specular = m_device->create_texture2d( data->get_size(), nv::RGBA, nv::UBYTE, sampler, (void*)data->get_data() );
     64        m_specular = m_device->create_texture( data, sampler );
    6665        delete data;
    6766
    6867        data = m_device->create_image_data( "data/qshambler_local.png" );
    69         m_normal = m_device->create_texture2d( data->get_size(), nv::RGBA, nv::UBYTE, sampler, (void*)data->get_data() );
     68        m_normal = m_device->create_texture( data, sampler );
    7069        delete data;
    7170
     
    9897        {
    9998                NV_PROFILE("create_mesh");
    100                 m_mesh_data = (nv::md5_mesh_data*)loader->release_mesh_data();
    101                 m_mesh = new nv::skeletal_mesh( m_window->get_context(), m_mesh_data );
     99                m_mesh_data = loader->release_mesh_data();
     100                m_mesh = new nv::skeletal_mesh_cpu( m_context, m_mesh_data, loader->release_mesh_nodes_data() );
    102101                delete loader;
    103102        }
     
    125124                last_ticks = ticks;
    126125                ticks      = m_device->get_ticks();
    127                 nv::uint32 elapsed = ticks - last_ticks;
    128                 m_mesh->update( elapsed );
    129                 {
    130                         NV_PROFILE( "clear" );
    131                         m_window->get_context()->clear( m_clear_state );
    132                 }
     126                m_mesh->update_animation( m_animation, ticks );
     127                m_context->clear( m_clear_state );
    133128
    134129                {
     
    141136                        m_scene_state.get_camera().set_perspective(60.0f, 1.0f*800.0f/600.0f, 0.1f, 1000.0f);
    142137
    143                         m_diffuse ->bind( 0 );
    144                         m_specular->bind( 1 );
    145                         m_normal  ->bind( 2 );
    146                         m_program->set_opt_uniform( "light_position", glm::vec3(180.0, 180.0, 0) );
    147                         m_program->set_opt_uniform( "light_diffuse",  glm::vec4(0.7,0.7,0.7,1.0) );
    148                         m_program->set_opt_uniform( "light_specular", glm::vec4(1.0,1.0,1.0,1.0) );
     138                        m_context->bind( m_diffuse,  nv::TEX_DIFFUSE );
     139                        m_context->bind( m_specular, nv::TEX_SPECULAR );
     140                        m_context->bind( m_normal,   nv::TEX_NORMAL );
     141                        m_device->set_opt_uniform( m_program, "light_position", glm::vec3(180.0, 180.0, 0) );
     142                        m_device->set_opt_uniform( m_program, "light_diffuse",  glm::vec4(0.7,0.7,0.7,1.0) );
     143                        m_device->set_opt_uniform( m_program, "light_specular", glm::vec4(1.0,1.0,1.0,1.0) );
    149144                }
    150145
     
    158153                        ) );
    159154
    160                         m_window->get_context()->draw( m_render_state, m_scene_state, m_program, m_mesh );
     155                        m_mesh->update( m_program );
     156                        m_context->draw( nv::TRIANGLES, m_render_state, m_scene_state, m_program, m_mesh->get_vertex_array(), m_mesh->get_index_count() );
    161157                }
    162158
     
    206202        if ( anim_file != nullptr )
    207203        {
    208                 m_animation = new nv::md5_animation();
    209                 if ( !m_animation->load_animation(*anim_file) )
    210                 {
    211                         delete m_animation;
    212                         m_animation = nullptr;
    213                 }
    214                 m_mesh->setup_animation( m_animation );
     204                nv::md5_loader* loader = new nv::md5_loader();
     205                loader->load( *anim_file );
    215206                delete anim_file;
     207                m_animation = new nv::skeletal_animation_entry_cpu( "", loader->release_mesh_nodes_data(), true );
     208                m_mesh->run_animation( m_animation );
     209                delete loader;
    216210        }
    217211}
     
    220214application::~application()
    221215{
    222         delete m_program;
     216        m_device->release( m_program );
    223217        delete m_mesh;
    224         delete m_diffuse;
     218        m_device->release( m_diffuse );
    225219        delete m_window;
    226220        delete m_device;
Note: See TracChangeset for help on using the changeset viewer.