#include <C4Surface.h>
Public Member Functions | |
C4Surface () | |
~C4Surface () | |
C4Surface (int iWdt, int iHgt, int iFlags) | |
C4Surface (C4AbstractApp *pApp, C4Window *pWindow) | |
void | MoveFrom (C4Surface *psfcFrom) |
bool | IsRenderTarget () |
void | SetBackground () |
int | IsLocked () const |
void | ClearBoxDw (int iX, int iY, int iWdt, int iHgt) |
bool | Unlock () |
bool | Lock () |
DWORD | GetPixDw (int iX, int iY, bool fApplyModulation) |
bool | IsPixTransparent (int iX, int iY) |
bool | SetPixDw (int iX, int iY, DWORD dwCol) |
bool | BltPix (int iX, int iY, C4Surface *sfcSource, int iSrcX, int iSrcY, bool fTransparency) |
bool | Create (int iWdt, int iHgt, int iFlags=0) |
bool | Copy (C4Surface &fromSfc) |
bool | CreateColorByOwner (C4Surface *pBySurface) |
bool | SetAsClrByOwnerOf (C4Surface *pOfSurface) |
bool | CreatePrimaryGLTextures () |
bool | UpdateSize (int wdt, int hgt) |
bool | PageFlip (C4Rect *pSrcRt=nullptr, C4Rect *pDstRt=nullptr) |
void | Clear () |
void | Default () |
void | Clip (int iX, int iY, int iX2, int iY2) |
void | NoClip () |
bool | LoadAny (C4Group &hGroup, const char *szFilename, bool fOwnPal, bool fNoErrIfNotFound, int iFlags) |
bool | LoadAny (C4GroupSet &hGroupset, const char *szFilename, bool fOwnPal, bool fNoErrIfNotFound, int iFlags) |
bool | Load (C4Group &hGroup, const char *szFilename, bool fOwnPal, bool fNoErrIfNotFound, int iFlags) |
bool | Save (C4Group &hGroup, const char *szFilename) |
bool | SavePNG (C4Group &hGroup, const char *szFilename, bool fSaveAlpha=true, bool fSaveOverlayOnly=false) |
bool | SavePNG (const char *szFilename, bool fSaveAlpha, bool fSaveOverlayOnly, bool use_background_thread) |
bool | Read (CStdStream &hGroup, const char *extension, int iFlags) |
bool | ReadPNG (CStdStream &hGroup, int iFlags) |
bool | ReadJPEG (CStdStream &hGroup, int iFlags) |
bool | ReadBMP (CStdStream &hGroup, int iFlags) |
bool | AttachPalette () |
bool | GetSurfaceSize (int &irX, int &irY) |
void | SetClr (DWORD toClr) |
DWORD | GetClr () |
Public Attributes | |
int | Wdt |
int | Hgt |
int | Scale |
int | PrimarySurfaceLockPitch |
BYTE * | PrimarySurfaceLockBits |
int | iTexSize |
int | ClipX |
int | ClipY |
int | ClipX2 |
int | ClipY2 |
bool | fIsBackground {false} |
unsigned int | Format |
CStdGLCtx * | pCtx |
std::unique_ptr< C4TexRef > | texture |
C4Surface * | pMainSfc |
C4Surface * | pNormalSfc |
DWORD | ClrByOwnerClr |
Protected Attributes | |
C4Window * | pWindow |
int | Locked |
bool | Attached |
bool | fPrimary |
Friends | |
class | C4Draw |
class | C4Pattern |
class | CStdGL |
Definition at line 53 of file C4Surface.h.
C4Surface::C4Surface | ( | ) |
Definition at line 37 of file C4Surface.cpp.
References Default().
C4Surface::~C4Surface | ( | ) |
Definition at line 63 of file C4Surface.cpp.
References Clear().
C4Surface::C4Surface | ( | int | iWdt, |
int | iHgt, | ||
int | iFlags | ||
) |
Definition at line 42 of file C4Surface.cpp.
References Create(), and Default().
C4Surface::C4Surface | ( | C4AbstractApp * | pApp, |
C4Window * | pWindow | ||
) |
Definition at line 49 of file C4Surface.cpp.
References CStdGL::CreateContext(), Default(), fPrimary, NoClip(), pCtx, pGL, and pWindow.
bool C4Surface::AttachPalette | ( | ) |
Definition at line 434 of file C4Surface.cpp.
bool C4Surface::BltPix | ( | int | iX, |
int | iY, | ||
C4Surface * | sfcSource, | ||
int | iSrcX, | ||
int | iSrcY, | ||
bool | fTransparency | ||
) |
Definition at line 591 of file C4Surface.cpp.
References BltAlpha(), BltAlphaAdd(), C4GFXBLIT_ADDITIVE, C4Draw::dwBlitMode, GetPixDw(), pDraw, and texture.
Referenced by C4Draw::Blit8(), and C4Draw::BlitSimple().
void C4Surface::Clear | ( | ) |
Definition at line 126 of file C4Surface.cpp.
References Locked, pCtx, texture, and Unlock().
Referenced by C4FacetSurface::Clear(), C4GraphicsResource::Clear(), Copy(), Create(), MoveFrom(), ReadBMP(), and ~C4Surface().
void C4Surface::ClearBoxDw | ( | int | iX, |
int | iY, | ||
int | iWdt, | ||
int | iHgt | ||
) |
Definition at line 616 of file C4Surface.cpp.
void C4Surface::Clip | ( | int | iX, |
int | iY, | ||
int | iX2, | ||
int | iY2 | ||
) |
bool C4Surface::Copy | ( | C4Surface & | fromSfc | ) |
Definition at line 184 of file C4Surface.cpp.
References C4Draw::BlitSurface(), Clear(), Create(), Default(), Hgt, pDraw, and Wdt.
Referenced by C4FacetSurface::CopyFromSfcMaxSize().
bool C4Surface::Create | ( | int | iWdt, |
int | iHgt, | ||
int | iFlags = 0 |
||
) |
Definition at line 161 of file C4Surface.cpp.
References Clear(), Default(), C4Draw::DeviceReady(), Format, Hgt, iTexSize, NoClip(), pDraw, pGL, CStdGL::sfcFmt, texture, and Wdt.
Referenced by C4Surface(), Copy(), C4FacetSurface::Create(), CreateColorByOwner(), ReadBMP(), and ReadPNG().
bool C4Surface::CreateColorByOwner | ( | C4Surface * | pBySurface | ) |
Definition at line 255 of file C4Surface.cpp.
References ClrByOwner(), Create(), GetPixDw(), Hgt, Lock(), pMainSfc, Scale, SetPixDw(), texture, Unlock(), and Wdt.
Referenced by C4FacetSurface::CreateClrByOwner().
bool C4Surface::CreatePrimaryGLTextures | ( | ) |
void C4Surface::Default | ( | ) |
Definition at line 71 of file C4Surface.cpp.
References Attached, ClipX, ClipX2, ClipY, ClipY2, ClrByOwnerClr, fIsBackground, fPrimary, Hgt, iTexSize, Locked, pCtx, pMainSfc, pNormalSfc, PrimarySurfaceLockBits, PrimarySurfaceLockPitch, pWindow, Scale, and Wdt.
Referenced by C4Surface(), Copy(), Create(), C4FacetSurface::Create(), C4FacetSurface::Default(), C4GraphicsResource::Default(), and MoveFrom().
|
inline |
Definition at line 133 of file C4Surface.h.
References ClrByOwnerClr.
Referenced by C4MenuItem::GrabSymbol(), and C4MenuItem::RefSymbol().
DWORD C4Surface::GetPixDw | ( | int | iX, |
int | iY, | ||
bool | fApplyModulation | ||
) |
Definition at line 491 of file C4Surface.cpp.
References C4Draw::BlitModulateClr, C4Draw::BlitModulated, BltAlpha(), C4GFXBLIT_CLRSFC_MOD2, C4GFXBLIT_CLRSFC_OWNCLR, C4GFXBLIT_MOD2, ClrByOwnerClr, C4Draw::dwBlitMode, fPrimary, GetPixDw(), Hgt, ModulateClr(), ModulateClrMOD2(), pDraw, pMainSfc, PrimarySurfaceLockBits, PrimarySurfaceLockPitch, texture, and Wdt.
Referenced by C4TextureMap::AddTexture(), BltPix(), CreateColorByOwner(), C4GraphicsSystem::DoSaveScreenshot(), GetPixDw(), C4Draw::Grayscale(), IsPixTransparent(), C4ScenarioListLoader::Entry::Load(), SavePNG(), and C4Pattern::Set().
bool C4Surface::GetSurfaceSize | ( | int & | irX, |
int & | irY | ||
) |
Definition at line 444 of file C4Surface.cpp.
Referenced by C4Draw::GetSurfaceSize().
|
inline |
Definition at line 93 of file C4Surface.h.
References Locked.
Referenced by CStdFont::AddSurface().
bool C4Surface::IsPixTransparent | ( | int | iX, |
int | iY | ||
) |
Definition at line 568 of file C4Surface.cpp.
References GetPixDw().
bool C4Surface::IsRenderTarget | ( | ) |
Definition at line 144 of file C4Surface.cpp.
References fPrimary.
Referenced by C4Draw::Blit8Fast(), C4Draw::BlitSimple(), C4Draw::BlitSurfaceTile(), C4Draw::BlitUnscaled(), C4Draw::DrawBoxDw(), C4Draw::DrawPatternedCircle(), CStdGL::PerformMultiBlt(), CStdGL::PrepareRendering(), and C4Draw::RenderMesh().
bool C4Surface::Load | ( | C4Group & | hGroup, |
const char * | szFilename, | ||
bool | fOwnPal, | ||
bool | fNoErrIfNotFound, | ||
int | iFlags | ||
) |
Definition at line 76 of file C4SurfaceLoaders.cpp.
References _MAX_FNAME, _MAX_FNAME_LEN, _MAX_PATH_LEN, C4Group::AccessEntry(), StdStrBuf::Copy(), DirectorySeparator, C4Group::FindEntry(), C4Group::FindNextEntry(), StdStrBuf::getData(), GetExtension(), C4Group::GetFullName(), LoadResStr(), LogF(), Read(), RemoveExtension(), Scale, SCharLastPos(), and SCopy().
Referenced by C4FacetSurface::Load(), and LoadAny().
bool C4Surface::LoadAny | ( | C4Group & | hGroup, |
const char * | szFilename, | ||
bool | fOwnPal, | ||
bool | fNoErrIfNotFound, | ||
int | iFlags | ||
) |
Definition at line 28 of file C4SurfaceLoaders.cpp.
References _MAX_FNAME, _MAX_FNAME_LEN, EnforceExtension(), C4Group::FindEntry(), GetExtension(), Load(), and SCopy().
Referenced by C4Sky::Init().
bool C4Surface::LoadAny | ( | C4GroupSet & | hGroupset, |
const char * | szFilename, | ||
bool | fOwnPal, | ||
bool | fNoErrIfNotFound, | ||
int | iFlags | ||
) |
Definition at line 50 of file C4SurfaceLoaders.cpp.
References _MAX_FNAME, _MAX_FNAME_LEN, EnforceExtension(), C4GroupSet::FindEntry(), GetExtension(), Load(), and SCopy().
bool C4Surface::Lock | ( | ) |
Definition at line 453 of file C4Surface.cpp.
References fPrimary, Lock(), Locked, pMainSfc, and texture.
Referenced by CStdFont::AddRenderedChar(), C4TextureMap::AddTexture(), C4Draw::Blit8(), C4Draw::Blit8Fast(), C4Draw::BlitSimple(), CreateColorByOwner(), C4GraphicsSystem::DoSaveScreenshot(), C4Draw::DrawBoxDw(), C4Draw::DrawPatternedCircle(), C4Draw::Grayscale(), CStdFont::Init(), C4ScenarioListLoader::Entry::Load(), Lock(), C4Pattern::operator=(), ReadBMP(), ReadPNG(), SavePNG(), and C4Pattern::Set().
void C4Surface::MoveFrom | ( | C4Surface * | psfcFrom | ) |
Definition at line 94 of file C4Surface.cpp.
References Attached, Clear(), ClipX, ClipX2, ClipY, ClipY2, ClrByOwnerClr, Default(), fIsBackground, Format, fPrimary, Hgt, iTexSize, Locked, pMainSfc, pNormalSfc, PrimarySurfaceLockBits, PrimarySurfaceLockPitch, texture, and Wdt.
Referenced by C4FacetSurface::GrabFrom().
void C4Surface::NoClip | ( | ) |
Definition at line 310 of file C4Surface.cpp.
References C4AbstractApp::AssertMainThread(), fPrimary, CStdGLCtx::PageFlip(), C4Draw::pApp, pCtx, and pDraw.
Referenced by C4GraphicsSystem::DoSaveScreenshot(), C4GUI::Dialog::Draw(), C4GraphicsSystem::FinishDrawing(), and C4MessageBoard::LogNotify().
bool C4Surface::Read | ( | CStdStream & | hGroup, |
const char * | extension, | ||
int | iFlags | ||
) |
Definition at line 136 of file C4SurfaceLoaders.cpp.
References ReadBMP(), ReadJPEG(), ReadPNG(), and SEqualNoCase().
Referenced by Load(), C4DefAdditionalResourcesLoader::LoadTexture(), and C4TextureMap::LoadTextures().
bool C4Surface::ReadBMP | ( | CStdStream & | hGroup, |
int | iFlags | ||
) |
Definition at line 323 of file C4Surface.cpp.
References CStdStream::Advance(), tagBITMAPINFOHEADER::biBitCount, tagBITMAPINFOHEADER::biHeight, tagBITMAPINFOHEADER::biWidth, C4RGB, Clear(), C4BMP256Info::Colors, Create(), DWordAligned(), Hgt, C4BMPInfo::Info, Lock(), CStdStream::Read(), tagRGBQUAD::rgbBlue, tagRGBQUAD::rgbGreen, tagRGBQUAD::rgbRed, SetPixDw(), and Unlock().
Referenced by Read().
bool C4Surface::ReadJPEG | ( | CStdStream & | hGroup, |
int | iFlags | ||
) |
Definition at line 284 of file C4SurfaceLoaders.cpp.
Referenced by Read().
bool C4Surface::ReadPNG | ( | CStdStream & | hGroup, |
int | iFlags | ||
) |
Definition at line 150 of file C4SurfaceLoaders.cpp.
References CStdStream::AccessedEntrySize(), Create(), CPNGFile::GetPix(), CPNGFile::GetRow(), Hgt, CPNGFile::iClrType, CPNGFile::iHgt, iSize, iTexSize, CPNGFile::iWdt, CPNGFile::Load(), Lock(), CStdStream::Read(), texture, Unlock(), and Wdt.
Referenced by Read().
bool C4Surface::Save | ( | C4Group & | hGroup, |
const char * | szFilename | ||
) |
bool C4Surface::SavePNG | ( | C4Group & | hGroup, |
const char * | szFilename, | ||
bool | fSaveAlpha = true , |
||
bool | fSaveOverlayOnly = false |
||
) |
Definition at line 213 of file C4SurfaceLoaders.cpp.
References _MAX_PATH_LEN, C4Group_GetTempPath(), GetFilename(), MakeTempFilename(), C4Group::Move(), SAppend(), and SCopy().
Referenced by C4GraphicsSystem::DoSaveScreenshot(), C4MapFolderData::Load(), C4StartupPlrPropertiesDlg::OnClosed(), C4ObjectInfo::Save(), and C4Game::SaveGameTitle().
bool C4Surface::SavePNG | ( | const char * | szFilename, |
bool | fSaveAlpha, | ||
bool | fSaveOverlayOnly, | ||
bool | use_background_thread | ||
) |
Definition at line 381 of file C4Surface.cpp.
References fPrimary, GetPixDw(), Hgt, Lock(), pMainSfc, CPNGFile::ScheduleSaving(), Unlock(), and Wdt.
bool C4Surface::SetAsClrByOwnerOf | ( | C4Surface * | pOfSurface | ) |
|
inline |
Definition at line 92 of file C4Surface.h.
References fIsBackground.
Referenced by C4LoaderScreen::Init().
|
inline |
Definition at line 132 of file C4Surface.h.
References ClrByOwnerClr.
Referenced by C4FacetSurface::CopyFromSfcMaxSize(), C4GraphicsOverlay::Draw(), C4Facet::DrawClr(), C4GUI::IconButton::DrawElement(), C4Facet::DrawValue2Clr(), C4Facet::DrawXClr(), and C4DefGraphics::GetBitmap().
bool C4Surface::SetPixDw | ( | int | iX, |
int | iY, | ||
DWORD | dwCol | ||
) |
Definition at line 576 of file C4Surface.cpp.
References ClipX, ClipX2, ClipY, ClipY2, and texture.
Referenced by CStdFont::AddRenderedChar(), CreateColorByOwner(), C4Draw::DrawBoxDw(), C4Draw::DrawPatternedCircle(), C4Draw::Grayscale(), C4ScenarioListLoader::Entry::Load(), and ReadBMP().
bool C4Surface::Unlock | ( | ) |
Definition at line 464 of file C4Surface.cpp.
References fPrimary, Locked, pMainSfc, PrimarySurfaceLockBits, texture, and Unlock().
Referenced by CStdFont::AddRenderedChar(), CStdFont::AddSurface(), C4TextureMap::AddTexture(), C4Draw::Blit8(), C4Draw::Blit8Fast(), C4Draw::BlitSimple(), C4Pattern::Clear(), Clear(), CreateColorByOwner(), C4GraphicsSystem::DoSaveScreenshot(), C4Draw::DrawBoxDw(), C4Draw::DrawPatternedCircle(), C4Draw::Grayscale(), CStdFont::Init(), C4ScenarioListLoader::Entry::Load(), ReadBMP(), ReadPNG(), SavePNG(), and Unlock().
bool C4Surface::UpdateSize | ( | int | wdt, |
int | hgt | ||
) |
Definition at line 301 of file C4Surface.cpp.
References fPrimary, Hgt, and Wdt.
Referenced by C4Application::OnResolutionChanged().
|
friend |
Definition at line 138 of file C4Surface.h.
|
friend |
Definition at line 139 of file C4Surface.h.
|
friend |
Definition at line 140 of file C4Surface.h.
|
protected |
Definition at line 88 of file C4Surface.h.
Referenced by Default(), and MoveFrom().
int C4Surface::ClipX |
Definition at line 69 of file C4Surface.h.
Referenced by Clip(), Default(), MoveFrom(), NoClip(), and SetPixDw().
int C4Surface::ClipX2 |
Definition at line 69 of file C4Surface.h.
Referenced by Clip(), Default(), MoveFrom(), NoClip(), and SetPixDw().
int C4Surface::ClipY |
Definition at line 69 of file C4Surface.h.
Referenced by Clip(), Default(), MoveFrom(), NoClip(), and SetPixDw().
int C4Surface::ClipY2 |
Definition at line 69 of file C4Surface.h.
Referenced by Clip(), Default(), MoveFrom(), NoClip(), and SetPixDw().
DWORD C4Surface::ClrByOwnerClr |
Definition at line 81 of file C4Surface.h.
Referenced by C4Draw::BlitUnscaled(), Default(), GetClr(), GetPixDw(), MoveFrom(), and SetClr().
bool C4Surface::fIsBackground {false} |
Definition at line 70 of file C4Surface.h.
Referenced by Default(), MoveFrom(), and SetBackground().
unsigned int C4Surface::Format |
Definition at line 75 of file C4Surface.h.
Referenced by Create(), and MoveFrom().
|
protected |
Definition at line 89 of file C4Surface.h.
Referenced by C4Draw::Blit8Fast(), C4Draw::BlitUnscaled(), C4Surface(), Default(), GetPixDw(), IsRenderTarget(), Lock(), MoveFrom(), PageFlip(), SavePNG(), Unlock(), and UpdateSize().
int C4Surface::Hgt |
Definition at line 65 of file C4Surface.h.
Referenced by C4TextureMap::AddTexture(), C4Draw::Blit8(), C4Draw::BlitSimple(), C4Draw::BlitSurface(), C4Draw::BlitSurfaceTile(), ClearBoxDw(), Clip(), Copy(), C4FacetSurface::CopyFromSfcMaxSize(), Create(), C4FacetSurface::Create(), C4FacetSurface::CreateClrByOwner(), CreateColorByOwner(), Default(), C4GraphicsSystem::DoSaveScreenshot(), C4PXSSystem::Draw(), C4DefGraphics::DrawClr(), C4Draw::GetClipRect(), C4Draw::GetOutRect(), C4Facet::GetPhaseNum(), GetPixDw(), GetSurfaceSize(), C4Draw::Grayscale(), C4GraphicsResource::Init(), C4StartupGraphics::Init(), C4FacetSurface::Load(), C4TextureMap::LoadTextures(), MoveFrom(), NoClip(), C4Pattern::operator=(), CStdGL::PerformMultiBlt(), C4GUI::DialogWindow::PerformUpdate(), ReadBMP(), ReadPNG(), SavePNG(), C4Facet::Set(), C4Pattern::Set(), SetAsClrByOwnerOf(), C4GUI::DynBarFacet::SetHorizontal(), CStdGL::UpdateClipper(), and UpdateSize().
int C4Surface::iTexSize |
Definition at line 68 of file C4Surface.h.
Referenced by Create(), Default(), MoveFrom(), and ReadPNG().
|
protected |
Definition at line 87 of file C4Surface.h.
Referenced by Clear(), ClearBoxDw(), Default(), IsLocked(), Lock(), MoveFrom(), CStdGL::PrepareRendering(), and Unlock().
CStdGLCtx* C4Surface::pCtx |
Definition at line 76 of file C4Surface.h.
Referenced by C4Surface(), Clear(), Default(), PageFlip(), and CStdGL::PrepareRendering().
C4Surface* C4Surface::pMainSfc |
Definition at line 79 of file C4Surface.h.
Referenced by C4Draw::BlitSurface(), C4Draw::BlitUnscaled(), ClearBoxDw(), CreateColorByOwner(), Default(), GetPixDw(), Lock(), MoveFrom(), SavePNG(), SetAsClrByOwnerOf(), and Unlock().
C4Surface* C4Surface::pNormalSfc |
Definition at line 80 of file C4Surface.h.
Referenced by C4Draw::BlitUnscaled(), Default(), and MoveFrom().
BYTE* C4Surface::PrimarySurfaceLockBits |
Definition at line 67 of file C4Surface.h.
Referenced by Default(), GetPixDw(), MoveFrom(), and Unlock().
int C4Surface::PrimarySurfaceLockPitch |
Definition at line 67 of file C4Surface.h.
Referenced by Default(), GetPixDw(), and MoveFrom().
|
protected |
Definition at line 86 of file C4Surface.h.
Referenced by C4Surface(), and Default().
int C4Surface::Scale |
Definition at line 66 of file C4Surface.h.
Referenced by C4Draw::Blit(), CreateColorByOwner(), Default(), and Load().
std::unique_ptr<C4TexRef> C4Surface::texture |
Definition at line 78 of file C4Surface.h.
Referenced by C4Draw::BlitSurfaceTile(), C4Draw::BlitUnscaled(), BltPix(), Clear(), ClearBoxDw(), Create(), CreateColorByOwner(), C4PXSSystem::Draw(), C4LandscapeRenderGL::Draw(), GetPixDw(), Lock(), MoveFrom(), ReadPNG(), SetPixDw(), and Unlock().
int C4Surface::Wdt |
Definition at line 65 of file C4Surface.h.
Referenced by C4TextureMap::AddTexture(), C4Draw::Blit8(), C4Draw::BlitSimple(), C4Draw::BlitSurface(), C4Draw::BlitSurfaceTile(), ClearBoxDw(), Clip(), Copy(), C4FacetSurface::CopyFromSfcMaxSize(), Create(), C4FacetSurface::Create(), C4FacetSurface::CreateClrByOwner(), CreateColorByOwner(), Default(), C4PXSSystem::Draw(), C4DefGraphics::DrawClr(), C4Draw::GetClipRect(), C4Draw::GetOutRect(), C4Facet::GetPhaseNum(), GetPixDw(), GetSurfaceSize(), C4Draw::Grayscale(), C4StartupGraphics::Init(), C4MapFolderData::Load(), C4FacetSurface::Load(), C4TextureMap::LoadTextures(), MoveFrom(), NoClip(), C4Pattern::operator=(), CStdGL::PerformMultiBlt(), C4GUI::DialogWindow::PerformUpdate(), ReadPNG(), SavePNG(), C4Facet::Set(), C4Pattern::Set(), SetAsClrByOwnerOf(), C4GUI::DynBarFacet::SetHorizontal(), and UpdateSize().