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);
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);
operator fvec4(void) const { return fvec4(v[0][0], v[0][1], v[1][0], v[1][1]); }