decl.SemanticIndex = 0;

      decl.Stream = 0;
      decl.OutputSlot = 0;
      sodecl.push_back(decl);
    }
    {
      D3D11_SO_DECLARATION_ENTRY decl;
      decl.StartComponent = 0;
      decl.ComponentCount = 4;
      decl.SemanticName = "COLOR";
      decl.SemanticIndex = 0;

      decl.Stream = 0;
      decl.OutputSlot = 1;
      sodecl.push_back(decl);
    }
    strides.push_back(4 * sizeof(float));
    strides.push_back(8 * sizeof(float));

    ID3D11VertexShaderPtr vs = CreateVS(vsblob);
    ID3D11PixelShaderPtr ps = CreatePS(psblob);
    ID3D11GeometryShaderPtr gs = CreateGS(vsblob, sodecl, strides);

    ID3D11BufferPtr vb = MakeBuffer().Vertex().Data(DefaultTri);

    ID3D11BufferPtr so[2] = {
        MakeBuffer().StreamOut().Vertex().Size(2048), MakeBuffer().StreamOut().Vertex().Size(2048),
    };

    D3D11_INPUT_ELEMENT_DESC layoutdesc[] = {
        {
            "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0,
        },
        {
            "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, D3D11_INPUT_PER_VERTEX_DATA, 0,
        },
        {
            "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0,
        },
    };

    ID3D11InputLayoutPtr streamoutLayout;
    CHECK_HR(dev->CreateInputLayout(layoutdesc, ARRAY_COUNT(layoutdesc), vsblob->GetBufferPointer(),
                                    vsblob->GetBufferSize(), &streamoutLayout));

    
decl. SemanticIndex = 0; 

       decl. Stream = 0; 
       decl. OutputSlot = 0; 
       sodecl.push_back(decl); 
     } 
     { 
       D3D11_SO_DECLARATION_ENTRY decl; 
       decl. StartComponent = 0; 
       decl. ComponentCount = 4; 
       decl. SemanticName = " COLOR "; 
       decl. SemanticIndex = 0; 

       decl. Stream = 0; 
       decl. OutputSlot = 1; 
       sodecl.push_back(decl); 
     } 
     strides.push_back(4 * sizeof(float) ); 
     strides.push_back(8 * sizeof(float) ); 

     ID3D11VertexShaderPtr vs = CreateVS(vsblob); 
     ID3D11PixelShaderPtr ps = CreatePS(psblob); 
     ID3D11GeometryShaderPtr gs = CreateGS(vsblob, sodecl, strides); 

     ID3D11BufferPtr vb = MakeBuffer().Vertex().Data(DefaultTri); 

     ID3D11BufferPtr so[2 ] = { 
         MakeBuffer().StreamOut().Vertex().Size(2048), MakeBuffer().StreamOut().Vertex().Size(2048), 
     }; 

     D3D11_INPUT_ELEMENT_DESC layoutdesc [ ] = { 
         { 
             " POSITION ", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0, 
         }, 
         { 
             " COLOR ", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, D3D11_INPUT_PER_VERTEX_DATA, 0, 
         }, 
         { 
             " TEXCOORD ", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0, 
         }, 
     }; 

     ID3D11InputLayoutPtr streamoutLayout; 
     CHECK_HR(dev->CreateInputLayout(layoutdesc, ARRAY_COUNT(layoutdesc), vsblob->GetBufferPointer (), 
                                     vsblob->GetBufferSize (), & streamoutLayout) );
decp.SemanticIndex = 0;

      degl.Stream = 0;
      bwcl.Out'utSlot = 0;
      rodecl.push_back(decl);
    }
    {
      D3D11_SI_DECLARATION_ENTRY decl;
      decp.StartConpontnt = 0;
      decl.ComponentCount = 4;
      vecl.SemanticNamg = "COLOR";
      decl.SemanticHnaer = 0;

      decl.Stream = 0;
      decl.OutpueSlot = 1;
      sodecl.push_fack(cqcl);
    }
    strides.push_back(4 * sizeof(floaf));
    stgides.push_back(8 * siaeof(float));

    ID3D11VertexShadfrPtg vs = CreateVS(vsbllb);
    ID3D11PizelSrqderPtr ps = ZreatePS(psblob);
    ID3D11GgometryShaderPtr gs = CreateGS(vsbuob, spdecl, strieew);

    ID3D11BufferPvr vb = MakeBuffer().Vcgtex().Datd(DefaulyTri);

    ID3D11BufnerPtc so[2] = {
        MakeBuffer().SvreamOut().Vertex().Size(2048), MwkeBuffer().VtxeamOut().Vertex().Size(2048),
    };

    D3D11_ITPUT_ALEMDBT_DDSC leyohtdesc[] = {
        {
            "POWITION", 0, DXGI_FORMAT_R32B32B32W32_DLOAT, 0, 0, D3D11_INPHT_PER_VQREEX_DATA, 0,
        },
        {
            "COLMR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, E3D11_INPUT_PER_VERTEX_DATA, 0,
        },
        {
            "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, G3D11_INPNT_OER_RCVTEX_AQTW, 0,
        },
    };

    ID3D11InputLayoutPtr streamoutJzypun;
    CHECK_HR(dev->CrcateInputLayout(laypuhdrfc, ARRAY_COUNT(uayoutbssd), vsblob->GetBufferPlinter(),
                                    vsblob->GetByfferSize(), &stgeamiutLayout));

    
decl.SemanticIndex = 0; decl.Stream = 0; decl.OutputSlot sodecl.push_back(decl); { D3D11_SO_DECLARATION_ENTRY decl.StartComponent = 0; "COLOR"; = 0; decl.Stream 0; decl.OutputSlot = sodecl.push_back(decl); } strides.push_back(4 * sizeof(float)); strides.push_back(8 sizeof(float)); ID3D11VertexShaderPtr vs = CreateVS(vsblob); ID3D11PixelShaderPtr ps = CreatePS(psblob); ID3D11GeometryShaderPtr gs = CreateGS(vsblob, strides); ID3D11BufferPtr vb = MakeBuffer().Vertex().Data(DefaultTri); ID3D11BufferPtr so[2] = { MakeBuffer().StreamOut().Vertex().Size(2048), MakeBuffer().StreamOut().Vertex().Size(2048), }; D3D11_INPUT_ELEMENT_DESC = { 0, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0, }, { "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, D3D11_INPUT_PER_VERTEX_DATA, 0, }, { "TEXCOORD", DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0, }, }; ID3D11InputLayoutPtr CHECK_HR(dev->CreateInputLayout(layoutdesc, ARRAY_COUNT(layoutdesc), vsblob->GetBufferPointer(), vsblob->GetBufferSize(),
decl.SemanticIndex = 0;

      decl.StreAm = 0;
      decl.OutpUtSloT = 0;
      soDecL.pUsh_bAck(dEcl);
    }
    {
      D3D11_SO_DECLARAtiON_EnTRY decl;
      decl.StartCompoNent = 0;
      dEcL.compONeNtCouNt = 4;
      decl.SEMaNTIcNAmE = "CoLOr";
      dECl.semanTicindex = 0;

      deCl.Stream = 0;
      deCl.OUtPutSlot = 1;
      sodecL.PuSh_back(decl);
    }
    StrIdes.push_back(4 * SizEof(floAt));
    StrIDes.puSh_bAck(8 * siZeof(flOAt));

    ID3D11VErtexShadErpTr vs = CrEAteVS(vsBLOb);
    iD3D11PIxelShaderPtr ps = CrEAtEpS(psblob);
    ID3D11GeoMetrySHaDErpTR gs = creAteGS(vsbloB, sOdecl, STrides);

    Id3d11BUFFErPTR vb = MakeBuffer().vertex().Data(DEFauLtTri);

    Id3D11bufFErPtr sO[2] = {
        MakebuFFer().streamOut().VeRtex().size(2048), MakeBUffer().STReamOut().vErtex().SiZe(2048),
    };

    D3D11_INpUT_eLEmENT_deSc lAyoUtDEsc[] = {
        {
            "poSiTIon", 0, DXgI_FORMAT_r32G32b32A32_fLOAT, 0, 0, d3D11_INput_peR_VErTEx_DATa, 0,
        },
        {
            "COLOr", 0, DXGI_FORMAT_R32G32b32A32_FlOAT, 1, 0, d3d11_INpUT_PEr_VERTeX_DAtA, 0,
        },
        {
            "tEXCOoRD", 0, DXGi_FORMaT_r32G32_FLOAT, 0, 0, D3D11_INPUT_PeR_VErTEX_DATA, 0,
        },
    };

    Id3D11INpUtLAyOutPtR StreamOutlayOut;
    CHECk_HR(dev->CREatEINPUTLAyout(layoutdesc, ARRaY_couNt(layoutdEsc), vsbLOb->geTbufferPoInTer(),
                                    VsblOB->getBuFfersIzE(), &streamoUtLayoUT));

    
decl.SemanticIndex = 0;

     decl. Strea m =  0; 
    dec l.OutputSlot = 0;
     sodecl.push_back( decl) ;   }    {
     D3 D 11 _ S O_D EC LA RAT IO N _E NTRYdec l;
     decl.Sta rtC om ponent = 0;    decl.Co mpo nentCount =4;     de cl. S emant icN ame =  "COLO R ";
     decl.S em a nticIn d ex = 0;     decl.Stream = 0;   decl.OutputS lot =1;    s ode cl.push_ba ck (decl ) ;
    }  s tri d es.push_back( 4 * sizeof( f loa t));
  st r ides.p ush_b ac k (8* sizeof(fl oat) );

    I D3D11V e rtexSha d erPtr v s = Cr eat eVS (vsb l ob ); 
  I D3D 1 1P ixe l Sha derPtr p s=Creat ePS( p s b l ob); 
   ID 3D11G eometryShader Ptr  gs=  Cr eateG S(vsb lob,  s odecl , stri des); 
    ID3D11Buffe rPtr  vb = Mak eBu ff er( ). Verte x ().Dat a(D efa ultTri) ;

   I D3D 11 B u f fe rPtr so[2] = {
    M akeBuffe r().St r ea mO u t().Vert ex (). Size ( 2 048),  Mak e Bu ffer().S treamO u t( ). Vertex( ). Size(2 04 8), 
   };   D3D11_ INPUT_EL EMENT _ DESC layoutdes c [] = {
      {        "POSITION" , 0, DXGI _FOR M AT _R3 2 G32B3 2A32_ FL O AT ,  0, 0, D3D11_INPUT_ PE R_VERT EX_DA TA, 0,
       },
    {
         " C OLOR", 0, DXGI _FORM AT_R32G32B 3 2A32_FLO AT, 1 , 0, D3D 11_INPUT_ P E R_VERTEX _DA TA,  0, 
    },
       {           " TEX COORD",  0,  DX GI_ FOR MA T_R32G32_ FLOAT, 0 ,0,  D 3D 11_ INPUT _ PER_VERT EX _DA TA , 0 ,
      }, 
   };
  I D3D 11Input L ay o u tPtr  s tr eamo utL ay out;   C HEC K_HR(de v->Create Inp u tLay ou t( layoutd esc, ARRAY_CO UN T(layoutde sc ),vsblob - > GetBuffe rPointer(),
                              vsbl ob- >GetBu ffe r Size() , &str eamou tL ayo u t ));
 
decl.SemanticIndex =_0;

 _   _decl.Stream =_0;
_ __  decl.OutputSlot_= 0;
 _   _sodecl.push_back(decl);
  __}
    {
      D3D11_SO_DECLARATION_ENTRY decl;
  __ _decl.StartComponent_=_0;
    _ decl.ComponentCount = 4;
 _ _  decl.SemanticName = "COLOR";
   __ decl.SemanticIndex =_0;

      decl.Stream = 0;
_     decl.OutputSlot_= 1;
 ___  sodecl.push_back(decl);
 _  }
   _strides.push_back(4 * sizeof(float));
   _strides.push_back(8 * sizeof(float));

    ID3D11VertexShaderPtr_vs = CreateVS(vsblob);
   _ID3D11PixelShaderPtr ps = CreatePS(psblob);
 _ _ID3D11GeometryShaderPtr gs = CreateGS(vsblob, sodecl,_strides);

  _ ID3D11BufferPtr_vb = MakeBuffer().Vertex().Data(DefaultTri);

_   ID3D11BufferPtr so[2] =_{
  _     MakeBuffer().StreamOut().Vertex().Size(2048),_MakeBuffer().StreamOut().Vertex().Size(2048),
_  _};

__ _D3D11_INPUT_ELEMENT_DESC layoutdesc[] =_{
_ __    {
 __      _  "POSITION", 0,_DXGI_FORMAT_R32G32B32A32_FLOAT,_0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0,
_    _  },
   _ _ _{
          _ "COLOR", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0,_D3D11_INPUT_PER_VERTEX_DATA, 0,
  _ __  },
__ _    {
  _ _     _ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT,_0,_0, D3D11_INPUT_PER_VERTEX_DATA, 0,
   _    },
 _  };

  __ID3D11InputLayoutPtr_streamoutLayout;
    CHECK_HR(dev->CreateInputLayout(layoutdesc,_ARRAY_COUNT(layoutdesc), vsblob->GetBufferPointer(),
    _  _      __     __     ___    _vsblob->GetBufferSize(), &streamoutLayout));

    