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/objload_test/nv_objload_test.cc

    r239 r321  
    1 #include <nv/interface/vertex_buffer.hh>
    21#include <nv/gl/gl_device.hh>
    32#include <nv/gfx/image.hh>
    43#include <nv/interface/context.hh>
    54#include <nv/interface/window.hh>
    6 #include <nv/interface/program.hh>
    7 #include <nv/interface/texture2d.hh>
    85#include <nv/interface/mesh_loader.hh>
    96#include <nv/io/c_file_system.hh>
    107#include <nv/formats/obj_loader.hh>
    11 #include <nv/logging.hh>
    12 #include <nv/logger.hh>
    13 #include <nv/math.hh>
    14 #include <nv/string.hh>
     8#include <nv/core/logging.hh>
     9#include <nv/core/logger.hh>
     10#include <nv/core/math.hh>
     11#include <nv/core/string.hh>
    1512
    1613class application
     
    2320protected:
    2421        nv::device*       m_device;
     22        nv::context*      m_context;
    2523        nv::window*       m_window;
    26         nv::texture2d*    m_diffuse;
    27         nv::texture2d*    m_specular;
     24        nv::texture       m_diffuse;
     25        nv::texture       m_specular;
     26        nv::scene_state   m_scene_state;
    2827        nv::clear_state   m_clear_state;
    2928        nv::render_state  m_render_state;
    3029
    31         nv::vertex_array* m_va;
    32         nv::program*      m_program;
     30        nv::vertex_array  m_va;
     31        nv::program       m_program;
    3332        nv::mesh_data*    m_mesh;
    3433};
     
    3837        m_device = new nv::gl_device();
    3938        m_window = m_device->create_window( 800, 600, false );
     39        m_context = m_window->get_context();
     40
    4041        nv::sampler sampler( nv::sampler::LINEAR, nv::sampler::REPEAT );
    41        
    42         nv::image_data* sprites = m_device->create_image_data( "diffuse.png" );
    43         m_diffuse  = m_device->create_texture2d( sprites->get_size(), nv::RGBA, nv::UBYTE, sampler, (void*)sprites->get_data() );
    44         delete sprites;
    4542
    46         sprites    = m_device->create_image_data( "specular.png" );
    47         m_specular = m_device->create_texture2d( sprites->get_size(), nv::RGBA, nv::UBYTE, sampler, (void*)sprites->get_data() );
    48         delete sprites;
     43        nv::image_data* image = m_device->create_image_data( "diffuse.png" );
     44        m_diffuse  = m_device->create_texture( image, sampler );
     45        delete image;
     46
     47        image      = m_device->create_image_data( "specular.png" );
     48        m_specular = m_device->create_texture( image, sampler );
     49        delete image;
    4950
    5051        m_clear_state.buffers = nv::clear_state::COLOR_AND_DEPTH_BUFFER;
     
    6364        nv::stream* mesh_file = fs.open( "mesh.obj" );
    6465
    65 //              nv::mesh_loader* loader = new nv::obj_loader();
    66 //              loader->load( *mesh_file );
    67 //              nv::mesh_data_old* mesh = loader->release_mesh_data();
    68 //              m_count = loader->get_size();
    69 //              delete mesh_file;
    70 //              delete loader;
    71 
    7266        nv::obj_loader* loader = new nv::obj_loader();
    7367        loader->load( *mesh_file );
     
    7771
    7872        m_program = m_device->create_program( nv::slurp( "obj.vert" ), nv::slurp( "obj.frag" ) );
    79 
    80 //      nv::vertex_buffer* vb = nullptr;
    81         m_va = m_device->create_vertex_array( m_mesh, nv::STATIC_DRAW );
     73        m_va = m_context->create_vertex_array( m_mesh, nv::STATIC_DRAW );
    8274
    8375        return true;
     
    9385        {
    9486                m_window->get_context()->clear( m_clear_state );
     87                m_scene_state.set_model( glm::mat4() );
     88                m_scene_state.get_camera().set_perspective(60.0f, 1.0f*800.0f/600.0f, 0.1f, 1000.0f);
     89                m_scene_state.get_camera().set_lookat(glm::vec3(6.0f, 8.0f, 6.0f) + move, glm::vec3(0.0f, 4.0f, 0.0f) + move, glm::vec3(0.0, 1.0, 0.0));
    9590
    96                 glm::mat4 model = glm::translate(glm::mat4(1.0f), glm::vec3(0.0f, 0.0f, 0.0f));
    97                 glm::mat4 view  = glm::lookAt(glm::vec3(6.0f, 8.0f, 6.0f) + move, glm::vec3(0.0f, 4.0f, 0.0f) + move, glm::vec3(0.0, 1.0, 0.0));
    98                 glm::mat4 projection = glm::perspective(60.0f, 1.0f*800.0f/600.0f, 0.1f, 1000.0f);
    99                 glm::mat4 mv         = view * model;
    100                 glm::mat3 normal_matrix = glm::transpose(glm::inverse(glm::mat3(mv)));
    101 
    102                 m_diffuse->bind( 0 );
    103                 m_specular->bind( 1 );
    104                 m_program->set_opt_uniform( "nv_m_modelview", mv );
    105                 m_program->set_opt_uniform( "nv_m_projection", projection );
    106                 m_program->set_opt_uniform( "nv_m_normal", normal_matrix );
    107                 m_program->set_uniform( "matrix_mvp", projection * mv );
    108                 m_program->set_uniform( "light_position", glm::vec3(12.0, 12.0, 0) );
    109                 m_program->set_uniform( "light_diffuse",  glm::vec4(0.7,0.7,0.7,1.0) );
    110                 m_program->set_uniform( "light_specular", glm::vec4(1.0,1.0,1.0,1.0) );
    111                 m_program->set_uniform( "custom_color_1", glm::vec3(1.0,0.0,0.0) );
    112                 m_program->set_uniform( "custom_color_2", glm::vec3(0.0,0.0,1.0) );
    113                 m_program->set_uniform( "diffuse", 0 );
    114                 m_program->set_uniform( "specular", 1 );
    115                 m_window->get_context()->draw( nv::TRIANGLES, m_render_state, m_program, m_va, m_mesh->get_count() );
     91                m_context->bind( m_diffuse, nv::TEX_DIFFUSE );
     92                m_context->bind( m_specular, nv::TEX_SPECULAR );
     93                m_device->set_uniform( m_program, "light_position", glm::vec3(12.0, 12.0, 0) );
     94                m_device->set_uniform( m_program, "light_diffuse",  glm::vec4(0.7,0.7,0.7,1.0) );
     95                m_device->set_uniform( m_program, "light_specular", glm::vec4(1.0,1.0,1.0,1.0) );
     96                m_device->set_uniform( m_program, "custom_color_1", glm::vec3(1.0,0.0,0.0) );
     97                m_device->set_uniform( m_program, "custom_color_2", glm::vec3(0.0,0.0,1.0) );
     98                m_context->draw( nv::TRIANGLES, m_render_state, m_scene_state, m_program, m_va, m_mesh->get_count() );
    11699                m_window->swap_buffers();
    117100
     
    148131{
    149132        delete m_mesh;
    150         delete m_program;
    151         delete m_diffuse;
    152         delete m_specular;
     133        m_device->release( m_program );
     134        m_device->release( m_diffuse );
     135        m_device->release( m_specular );
    153136        delete m_window;
    154137        delete m_device;
Note: See TracChangeset for help on using the changeset viewer.