本文整理汇总了C++中UpdateSurface函数的典型用法代码示例。如果您正苦于以下问题:C++ UpdateSurface函数的具体用法?C++ UpdateSurface怎么用?C++ UpdateSurface使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了UpdateSurface函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CA_ASSERT
/////////////////////////////////////////////////////////////
/// Met à jour les pixels de la texture
///
/// \param Rect : Rectangle à mettre à jour dans la texture
///
////////////////////////////////////////////////////////////
void DX9Texture::Update(const CRectangle& Rect)
{
CA_ASSERT(CRectangle(0, 0, m_Size.x, m_Size.y).Intersects(Rect) == INT_IN, "DX9Texture::Update() : rectangle out of bounds");
// Si le format des pixels à copier est le même que celui de la texture on fait une simple copie,
// sinon on effectue une conversion
if (m_Format == m_Data.GetFormat())
{
// Verrouillage de la texture
D3DLOCKED_RECT LockedRect;
RECT Lock = {Rect.Left(), Rect.Top(), Rect.Right(), Rect.Bottom()};
DXCheck(m_Texture->LockRect(0, &LockedRect, &Lock, 0));
// Copie des pixels
UpdateSurface(LockedRect, Rect);
// Déverrouillage de la texture
m_Texture->UnlockRect(0);
}
else
{
// Récupération du device
SmartPtr<IDirect3DDevice9, CResourceCOM> Device;
m_Texture->GetDevice(&GetPtr(Device));
// Création d'une texture en mémoire système pour y copier les pixels
SmartPtr<IDirect3DSurface9, CResourceCOM> Src;
if (FAILED(Device->CreateOffscreenPlainSurface(Rect.Width(), Rect.Height(), DX9Enum::Get(m_Data.GetFormat()), D3DPOOL_SYSTEMMEM, &GetPtr(Src), nullptr)))
throw DX9Exception("CreateOffscreenPlainSurface", "DX9Texture::Update");
// Verrouillage de la texture temporaire
D3DLOCKED_RECT LockedRect;
Src->LockRect(&LockedRect, nullptr, 0);
// Copie des pixels
UpdateSurface(LockedRect, Rect);
// Déverrouillage de la texture temporaire
Src->UnlockRect();
// Récupération de la surface de niveau 0 de la texture
SmartPtr<IDirect3DSurface9, CResourceCOM> Dest;
m_Texture->GetSurfaceLevel(0, &GetPtr(Dest));
// Copie de la surface Src sur la surface Dest (c'est ici qu'est effectuée la conversion de format)
RECT DestRect = {Rect.Left(), Rect.Top(), Rect.Right(), Rect.Bottom()};
if (FAILED(D3DXLoadSurfaceFromSurface(Dest, nullptr, &DestRect, Src, nullptr, nullptr, D3DX_DEFAULT, 0)))
throw DX9Exception("D3DXLoadSurfaceFromSurface", "DX9Texture::Update");
}
// Génération des niveaux de mipmapping si nécessaire
if (m_HasMipmaps)
{
if (m_AutoMipmaps)
m_Texture->GenerateMipSubLevels();
else
D3DXFilterTexture(m_Texture, nullptr, D3DX_DEFAULT, D3DX_DEFAULT);
}
}
示例2: ReconstructFont
//////////////////////////////////////////////////////////////////////////
//
// Function: CTCGroupBox::SetFontBold
//
// Description: Sets Font Style
//
// INPUTS: TRUE of FALSE
//
// RETURNS: Reference to 'this' object
//
//
// Name Date Version Comments
// Jack Jin 2003-12-03 1.0 Origin
//////////////////////////////////////////////////////////////////////////
CTCGroupBox& CTCGroupBox::SetFontBold(BOOL bBold)
{
m_lf.lfWeight = bBold ? FW_BOLD : FW_NORMAL;
ReconstructFont();
UpdateSurface();
return *this;
}
示例3: UpdateSurface
//////////////////////////////////////////////////////////////////////////
//
// Function: CTCGroupBox::SetBackgroundColor
//
// Description: Set groupbox backgroup color when group style is XPGB_WINDOW
//
// INPUTS: COLORREF clrBKTilte, COLORREF clrBKClient
//
// RETURNS: Reference to 'this' object
//
//
// Name Date Version Comments
// Jack Jin 2003-12-03 1.0 Origin
//////////////////////////////////////////////////////////////////////////
CTCGroupBox& CTCGroupBox::SetBackgroundColor(COLORREF clrBKTilte, COLORREF clrBKClient)
{
m_clrTitleBackground = clrBKTilte;
m_clrClientBackground = clrBKClient;
UpdateSurface();
return *this;
}
示例4: CopyMemory
//////////////////////////////////////////////////////////////////////////
//
// Function: CTCGroupBox::SetFont
//
// Description: Sets font with LOGFONT structure
//
// INPUTS: LOGFONT structure
//
// RETURNS: Reference to 'this' object
//
//
// Name Date Version Comments
// Jack Jin 2003-12-03 1.0 Origin
//////////////////////////////////////////////////////////////////////////
CTCGroupBox& CTCGroupBox::SetFont(LOGFONT lf)
{
CopyMemory(&m_lf, &lf, sizeof(m_lf));
ReconstructFont();
UpdateSurface();
return *this;
}
示例5: ReconstructFont
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabelStatic::SetFontBold
//
// Description: Sets the font ot bold
//
// INPUTS: True or false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 22/10/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabelStatic& CLabelStatic::SetFontBold(BOOL bBold)
{
m_lf.lfWeight = bBold ? FW_BOLD : FW_NORMAL;
ReconstructFont();
UpdateSurface();
return *this;
}
示例6: CopyMemory
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabelStatic::SetFont
//
// Description: Sets font with LOGFONT structure
//
// INPUTS:
//
// RETURNS:
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 02072002 1.6 Origin
//////////////////////////////////////////////////////////////////////////
CLabelStatic& CLabelStatic::SetFont(LOGFONT lf)
{
CopyMemory(&m_lf, &lf, sizeof(m_lf));
ReconstructFont();
UpdateSurface();
return *this;
}
示例7: UpdateSurface
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetTextColor
//
// Description: Sets the text color
//
// INPUTS: True or false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 22/10/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetTextColor(COLORREF crText)
{
m_crText = crText;
UpdateSurface();
return *this;
}
示例8: ReconstructFont
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetFontUnderline
//
// Description: Sets font underline attribue
//
// INPUTS: True of false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetFontUnderline(BOOL bSet)
{
m_lf.lfUnderline = bSet;
ReconstructFont();
UpdateSurface();
return *this;
}
示例9: SetWindowText
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetText
//
// Description: Short cut to set window text - caption - label
//
// INPUTS: Text to use
//
// RETURNS: Reference to this
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetText(const CString& strText)
{
SetWindowText(strText);
UpdateSurface();
return *this;
}
示例10: ModifyStyleEx
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetTransparent
//
// Description: Sets the Label window to be transpaent
//
// INPUTS: True or false
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 22/10/98 1.0 Origin
//
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetTransparent(BOOL bSet)
{
m_bTransparent = bSet;
ModifyStyleEx(0,WS_EX_TRANSPARENT); // Fix for transparency
UpdateSurface();
return *this;
}
示例11: SetWindowText
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetText
//
// Description: Short cut to set window text - caption - label
//
// INPUTS: Text to use
//
// RETURNS: Reference to this
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26081998 1.0 Origin
// NT ALMOND 02072002 1.6 Crash Fix
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetText(const CString& strText)
{
if(IsWindow(this->GetSafeHwnd()))
{
SetWindowText(strText);
UpdateSurface();
}
return *this;
}
示例12: _tcscpy
//////////////////////////////////////////////////////////////////////////
//
// Function: CTCGroupBox::SetFontName
//
// Description: Sets the fonts face name
//
// INPUTS: String containing font name
//
// RETURNS: Reference to 'this' object
//
//
// Name Date Version Comments
// Jack Jin 2003-12-03 1.0 Origin
//////////////////////////////////////////////////////////////////////////
CTCGroupBox& CTCGroupBox::SetFontName(const CString& strFont, BYTE byCharSet)
{
m_lf.lfCharSet = byCharSet;
_tcscpy(m_lf.lfFaceName,strFont);
ReconstructFont();
UpdateSurface();
return *this;
}
示例13: FirePreTransactionCallback
void
CanvasLayerD3D9::RenderLayer()
{
FirePreTransactionCallback();
UpdateSurface();
if (mD3DManager->CompositingDisabled()) {
return;
}
FireDidTransactionCallback();
if (!mTexture)
return;
/*
* We flip the Y axis here, note we can only do this because we are in
* CULL_NONE mode!
*/
ShaderConstantRect quad(0, 0, mBounds.width, mBounds.height);
const bool needsYFlip = (mOriginPos == gl::OriginPos::BottomLeft);
if (needsYFlip) {
quad.mHeight = (float)-mBounds.height;
quad.mY = (float)mBounds.height;
}
device()->SetVertexShaderConstantF(CBvLayerQuad, quad, 1);
SetShaderTransformAndOpacity();
if (mHasAlpha) {
mD3DManager->SetShaderMode(DeviceManagerD3D9::RGBALAYER, GetMaskLayer());
} else {
mD3DManager->SetShaderMode(DeviceManagerD3D9::RGBLAYER, GetMaskLayer());
}
if (mFilter == GraphicsFilter::FILTER_NEAREST) {
device()->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
device()->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
}
if (!mDataIsPremultiplied) {
device()->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
device()->SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, TRUE);
}
device()->SetTexture(0, mTexture);
device()->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
if (!mDataIsPremultiplied) {
device()->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
device()->SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, FALSE);
}
if (mFilter == GraphicsFilter::FILTER_NEAREST) {
device()->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
device()->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
}
}
示例14: _T
//////////////////////////////////////////////////////////////////////////
//
// Function: CUltimateGroupBox::SetText
//
// Description: Set groupbox title
//
// INPUTS: Text to use
//
// RETURNS: Reference to 'this' object
//
//
// Name Date Version Comments
// Jack Jin 2003-12-03 1.0 Origin
//////////////////////////////////////////////////////////////////////////
CUltimateGroupBox& CUltimateGroupBox::SetText(LPCTSTR lpszText)
{
if(IsWindow(this->GetSafeHwnd()))
{
m_strTitle = lpszText;
m_strTitle = _T(" ") + m_strTitle + _T(" ");
UpdateSurface();
}
return *this;
}
示例15: _tcscpy
//////////////////////////////////////////////////////////////////////////
//
// Function: CLabel::SetFontName
//
// Description: Sets the fonts face name
//
// INPUTS: String containing font name
//
// RETURNS: Reference to 'this' object
//
// NOTES:
//
// MODIFICATIONS:
//
// Name Date Version Comments
// NT ALMOND 26/08/98 1.0 Origin
// NT ALMOND 15092000 1.5 Support internation windows
//////////////////////////////////////////////////////////////////////////
CLabel& CLabel::SetFontName(const CString& strFont, BYTE byCharSet /* Default = ANSI_CHARSET */)
{
m_lf.lfCharSet = byCharSet;
_tcscpy(m_lf.lfFaceName,strFont);
ReconstructFont();
UpdateSurface();
return *this;
}