void FEdModeGeometry::Render(const FSceneView* View,FViewport* Viewport,FPrimitiveDrawInterface* PDI) { FEdMode::Render(View,Viewport,PDI); RenderVertex( View, PDI ); RenderEdge( View, PDI ); RenderPoly( View, Viewport, PDI ); }
int DrawEffekseer2D_Begin() { if (g_manager2d == nullptr) return -1; // 頂点バッファに溜まった頂点データを吐き出す。 RenderVertex(); // 歪みの処理を行う if (g_isDistortionEnabled) { Effekseer_Distort(); } // エフェクトの描画開始処理を行う。 g_renderer2d->BeginRendering(); return 0; }
void Texture::Draw(const Vertex &bottomLeft, const Vertex &topRight) { Render &r = Render::GetInstance(); r.BindTexture(_texid); r.Triangle( RenderVertex(bottomLeft, RenderUV(0, 1)), RenderVertex(topRight, RenderUV(1, 0)), RenderVertex(Vertex(bottomLeft.x(), topRight.y()), RenderUV(0, 0))); r.Triangle( RenderVertex(topRight, RenderUV(1, 0)), RenderVertex(bottomLeft, RenderUV(0, 1)), RenderVertex(Vertex(topRight.x(), bottomLeft.y()), RenderUV(1, 1))); }
int DrawEffekseer2D() { if (g_manager2d == nullptr) return -1; // 頂点バッファに溜まった頂点データを吐き出す。 RenderVertex(); // 歪みの処理を行う if (g_isDistortionEnabled) { Effekseer_Distort(); } // エフェクトの描画開始処理を行う。 g_renderer2d->BeginRendering(); // エフェクトの描画を行う。 g_manager2d->DrawBack(); if (g_isDistortionEnabled) { g_renderer2d->EndRendering(); Effekseer_Distort(); g_renderer2d->BeginRendering(); } g_manager2d->DrawFront(); // エフェクトの描画終了処理を行う。 g_renderer2d->EndRendering(); // DXライブラリの設定を戻す。 RefreshDxLibDirect3DSetting(); return 0; }
//-------------------------------------------------------------- // Name: CGEOMIPMAPPING::RenderFan - private // Description: Update the geomipmapping system // Arguments: -cX, cZ: center of the triangle fan to render // -fSize: half of the fan's entire size // -neightbor: the fan's neighbor structure (used to avoid cracking) // -bMultitex: use multitexturing or not // -bDetail: render with a detail map or not // Return Value: None //-------------------------------------------------------------- void CGEOMIPMAPPING::RenderFan( float cX, float cZ, float fSize, SGEOMM_NEIGHBOR neighbor, bool bMultiTex, bool bDetail ) { float fTexLeft, fTexBottom, fMidX, fMidZ, fTexRight, fTexTop; float fHalfSize= fSize/2.0f; //calculate the texture coordinates if we're not doing multitexturing, but still detail mapping if( bDetail && !bMultiTex ) { //calculate the texture coordinates fTexLeft = ( ( float )fabs( cX-fHalfSize )/m_iSize )*m_iRepeatDetailMap; fTexBottom= ( ( float )fabs( cZ-fHalfSize )/m_iSize )*m_iRepeatDetailMap; fTexRight = ( ( float )fabs( cX+fHalfSize )/m_iSize )*m_iRepeatDetailMap; fTexTop = ( ( float )fabs( cZ+fHalfSize )/m_iSize )*m_iRepeatDetailMap; fMidX= ( ( fTexLeft+fTexRight )/2 ); fMidZ= ( ( fTexBottom+fTexTop )/2 ); } //calculate the texture coordinates otherwise else { //calculate the texture coordinates fTexLeft = ( ( float )fabs( cX-fHalfSize )/m_iSize ); fTexBottom= ( ( float )fabs( cZ-fHalfSize )/m_iSize ); fTexRight = ( ( float )fabs( cX+fHalfSize )/m_iSize ); fTexTop = ( ( float )fabs( cZ+fHalfSize )/m_iSize ); fMidX= ( ( fTexLeft+fTexRight )/2 ); fMidZ= ( ( fTexBottom+fTexTop )/2 ); } //begin a new triangle strip glBegin( GL_TRIANGLE_FAN ); //render the CENTER vertex RenderVertex( cX, cZ, fMidX, fMidZ, bMultiTex ); //render the LOWER-LEFT vertex RenderVertex( cX-fHalfSize, cZ-fHalfSize, fTexLeft, fTexBottom, bMultiTex ); //only render the next vertex if the left patch is NOT of a lower LOD if( neighbor.m_bLeft ) { RenderVertex( cX-fHalfSize, cZ, fTexLeft, fMidZ, bMultiTex ); m_iTrisPerFrame++; } //render the UPPER-LEFT vertex RenderVertex( cX-fHalfSize, cZ+fHalfSize, fTexLeft, fTexTop, bMultiTex ); m_iTrisPerFrame++; //only render the next vertex if the upper patch is NOT of a lower LOD if( neighbor.m_bUp ) { RenderVertex( cX, cZ+fHalfSize, fMidX, fTexTop, bMultiTex ); m_iTrisPerFrame++; } //render the UPPER-RIGHT vertex RenderVertex( cX+fHalfSize, cZ+fHalfSize, fTexRight, fTexTop, bMultiTex ); m_iTrisPerFrame++; //only render the next vertex if the right patch is NOT of a lower LOD if( neighbor.m_bRight ) { //render the MID-RIGHT vertex RenderVertex( cX+fHalfSize, cZ, fTexRight, fMidZ, bMultiTex ); m_iTrisPerFrame++; } //render the LOWER-RIGHT vertex RenderVertex( cX+fHalfSize, cZ-fHalfSize, fTexRight, fTexBottom, bMultiTex ); m_iTrisPerFrame++; //only render the next vertex if the bottom patch is NOT of a lower LOD if( neighbor.m_bDown ) { //render the LOWER-MID vertex RenderVertex( cX, cZ-fHalfSize, fMidX, fTexBottom, bMultiTex ); m_iTrisPerFrame++; } //render the LOWER-LEFT vertex RenderVertex( cX-fHalfSize, cZ-fHalfSize, fTexLeft, fTexBottom, bMultiTex ); m_iTrisPerFrame++; //end the triangle strip glEnd( ); }