예제 #1
0
파일: hmd_openhmd.cpp 프로젝트: tweakoz/vrx
void Context::GfxUpdate()
{
    this->Update();

    if( gGFXINIT )
    {
        gGFXINIT = false;

        auto fxi = gfxtarget.FXI();

        fx_distort = new lev2::FxShader;
        fxstring256 shader_path;
        shader_path.format("data/distort.glfx");
        fxi->LoadFxShader( shader_path.c_str(), fx_distort );

        tek_distort = fxi->GetTechnique(fx_distort,"tek_distort");

        assert( tek_distort!=nullptr );
        bool ok = fxi->BindTechnique(fx_distort,tek_distort);
        assert(ok);

        par_mvp = fxi->GetParameterH( fx_distort, "mtx_wvp" );
        par_texms = fxi->GetParameterH( fx_distort, "ImageMS" );

        par_llctr = fxi->GetParameterH( fx_distort, "LeftLensCenter" );
        par_rlctr = fxi->GetParameterH( fx_distort, "RightLensCenter" );
        par_lsctr = fxi->GetParameterH( fx_distort, "LeftScreenCenter" );
        par_rsctr = fxi->GetParameterH( fx_distort, "RightScreenCenter" );


        par_fbosiz = fxi->GetParameterH( fx_distort, "FboSize" );
        par_cbufsiz = fxi->GetParameterH( fx_distort, "CompbufferSize" );
        par_chromab = fxi->GetParameterH( fx_distort, "chromab" );

        assert( par_mvp!=nullptr );
        assert( par_texms!=nullptr );
        assert( par_llctr!=nullptr );
        assert( par_rlctr!=nullptr );
        assert( par_lsctr!=nullptr );
        assert( par_rsctr!=nullptr );

        assert( par_fbosiz!=nullptr );
        assert( par_cbufsiz!=nullptr );
        assert( par_chromab!=nullptr );

        //////////////////////////////////////////

        mrt_l = new RtGroup(&gfxtarget,fbo_w,fbo_h,8);
        mrt_r = new RtGroup(&gfxtarget,fbo_w,fbo_h,8);
        fbo_left = new RtBuffer(mrt_l,ETGTTYPE_MRT0,EBUFFMT_RGBA32,fbo_w,fbo_h);
        fbo_left->mClearColor = fvec4(0,0,.1,1);
        fbo_right = new RtBuffer(mrt_r,ETGTTYPE_MRT0,EBUFFMT_RGBA32,fbo_w,fbo_h);
        fbo_right->mClearColor = fvec4(.1,0,0,1);
        //////////////////////////////////////////
    }
}
 Atom()
 {
   VL_DEBUG_SET_OBJECT_NAME()
   mId       = 0;
   mAtomType = AT_Unknown;
   mCoordinates = fvec3(0,0,0);
   mColor    = fvec4(1.0f,1.0f,1.0f,1.0f);
   mRadius   = 0.25f;
   mVisited  = false;
   mVisible  = true;
   mShowAtomName= false;
   /*mAtomName = nothing*/
 }
namespace vl
{
  inline fvec4 makeColor(unsigned int color)
  {
    fvec4 c;
    c.r() = float(((color >> 24) & 0xFF) / 255.0f);
    c.g() = float(((color >> 16) & 0xFF) / 255.0f);
    c.b() = float(((color >>  8) & 0xFF) / 255.0f);
    c.a() = float(((color >>  0) & 0xFF) / 255.0f);
    return c;    
  }

  inline bool isValidColor( const fvec4& color ) { return color.a() >= 0; }

  static fvec4 invalid_color = fvec4(0, 0, 0, -1);
  static fvec4 black = makeColor(0x000000FF);
  static fvec4 white = makeColor(0xFFFFFFFF);
  static fvec4 red = makeColor(0xFF0000FF);
  static fvec4 crimson = makeColor(0xDC143CFF);
  static fvec4 violet = makeColor(0x9400D3FF);
  static fvec4 orange = makeColor(0xFFA000FF);
  static fvec4 yellow = makeColor(0xFFFF00FF);
  static fvec4 gold = makeColor(0xFFD700FF);
  static fvec4 green = makeColor(0x00FF00FF);
  static fvec4 lightgreen = makeColor(0x90FF90FF);
  static fvec4 darkgreen = makeColor(0x006400FF);
  static fvec4 olivegreen = makeColor(0x556B2FFF);
  static fvec4 blue = makeColor(0x0000FFFF);
  static fvec4 darkblue = makeColor(0x00008BFF);
  static fvec4 royalblue = makeColor(0x4169E1FF);
예제 #4
0
namespace vl
{
  inline fvec4 makeColor(unsigned int color)
  {
    fvec4 c;
    c.r() = float(((color >> 24) & 0xFF) / 255.0f);
    c.g() = float(((color >> 16) & 0xFF) / 255.0f);
    c.b() = float(((color >>  8) & 0xFF) / 255.0f);
    c.a() = float(((color >>  0) & 0xFF) / 255.0f);
    return c;    
  }

  inline bool isValidColor( const fvec4& color ) { return color.a() >= 0; }

  static const fvec4 invalid_color = fvec4(0, 0, 0, -1);
  
  static const fvec4 black = makeColor(0x000000FF);
  
  static const fvec4 white = makeColor(0xFFFFFFFF);
  
  static const fvec4 red = makeColor(0xFF0000FF);
  
  static const fvec4 crimson = makeColor(0xDC143CFF);
  
  static const fvec4 violet = makeColor(0x9400D3FF);
  
  static const fvec4 orange = makeColor(0xFFA000FF);
  
  static const fvec4 yellow = makeColor(0xFFFF00FF);
  
예제 #5
0
 operator fvec4(void) const { return fvec4(v[0][0], v[0][1], v[1][0], v[1][1]); }