CRenderTarget 類別
ID2D1RenderTarget 的包裝函式。
語法
class CRenderTarget : public CObject;
成員
公用建構函式
名稱 | 描述 |
---|---|
CRenderTarget::CRenderTarget | 建構 CRenderTarget 物件。 |
CRenderTarget::~CRenderTarget | 解構函式。 正在終結轉譯目標物件時呼叫。 |
公用方法
受保護的方法
名稱 | 描述 |
---|---|
CRenderTarget::VerifyResource | 驗證 CD2DResource 物件有效性;如果物件不存在,就會建立物件。 |
公用運算子
名稱 | 描述 |
---|---|
CRenderTarget::operator ID2D1RenderTarget* | 傳回ID2D1RenderTarget介面 |
受保護的資料成員
名稱 | 描述 |
---|---|
CRenderTarget::m_lstResources | CD2DResource 物件的指標清單。 |
CRenderTarget::m_pRenderTarget | ID2D1RenderTarget 物件的指標。 |
CRenderTarget::m_pTextFormatDefault | 包含預設文字格式之 CD2DTextFormat 物件的指標。 |
繼承階層架構
需求
標頭: afxrendertarget.h
CRenderTarget::~CRenderTarget
解構函式。 正在終結轉譯目標物件時呼叫。
virtual ~CRenderTarget();
CRenderTarget::Attach
將現有的轉譯目標介面附加至 物件
void Attach(ID2D1RenderTarget* pRenderTarget);
參數
pRenderTarget
現有的轉譯目標介面。 不可以是 NULL
CRenderTarget::BeginDraw
起始此轉譯目標上的繪圖。
void BeginDraw();
CRenderTarget::Clear
將繪圖區域清除為指定的色彩。
void Clear(D2D1_COLOR_F color);
參數
color
清除繪圖區域的色彩。
CRenderTarget::COLORREF_TO_D2DCOLOR
將 GDI 色彩和 Alpha 值轉換為 D2D1_COLOR_F 物件。
static D2D1_COLOR_F COLORREF_TO_D2DCOLOR(
COLORREF color,
int nAlpha = 255);
參數
color
RGB 值。
nAlpha
傳回值
D2D1_COLOR_F值。
CRenderTarget::CreateCompatibleRenderTarget
建立新的點陣圖轉譯目標,以在與目前轉譯目標相容的中繼離螢幕繪圖期間使用。
BOOL CreateCompatibleRenderTarget(
CBitmapRenderTarget& bitmapTarget,
CD2DSizeF sizeDesired = CD2DSizeF(0., 0.),
CD2DSizeU sizePixelDesired = CD2DSizeU(0, 0),
D2D1_PIXEL_FORMAT* desiredFormat = NULL,
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options = D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE);
參數
bitmapTarget
當這個方法傳回時,會包含新位圖轉譯目標的指標位址。 這個參數會以未初始化的狀態傳遞。
sizeDesired
如果新轉譯目標的大小應該與原始轉譯目標不同,則為與裝置無關的圖元,或 NULL。 如需詳細資訊,請參閱備註一節。
sizePixelDesired
如果新轉譯目標與原始轉譯目標或 NULL 不同,則以像素為單位所需的大小。 如需詳細資訊,請參閱備註一節。
desiredFormat
新轉譯目標的所需圖元格式和 Alpha 模式,或 NULL。 如果圖元格式設定為 DXGI_FORMAT_UNKNOWN,或此參數為 null,則新的轉譯目標會使用與原始轉譯目標相同的圖元格式。 如果alpha模式是D2D1_ALPHA_MODE_UNKNOWN或此參數為NULL,則新轉譯目標的Alpha模式預設為D2D1_ALPHA_MODE_PREMULTIPLIED。 如需支援圖元格式的詳細資訊,請參閱支援的圖元格式和 Alpha 模式。
options
值,指定新的轉譯目標是否必須與 GDI 相容。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE。
CRenderTarget::CRenderTarget
建構 CRenderTarget 物件。
CRenderTarget();
CRenderTarget::D estroy
刪除一或多個資源
BOOL Destroy(BOOL bDeleteResources = TRUE);
參數
bDeleteResources
如果 bDeleteResources 為 TRUE,則位於m_lstResources中的所有資源都會自動終結。
傳回值
如果方法成功,則會傳回 TRUE。 否則會傳回 FALSE
CRenderTarget::D etach
從物件中斷鏈接轉譯目標介面
ID2D1RenderTarget* Detach ();
傳回值
卸離轉譯目標介面的指標。
CRenderTarget::D rawBitmap
繪製指定的IDWriteTextLayout物件所描述的格式化文字。
void DrawBitmap(
CD2DBitmap* pBitmap,
const CD2DRectF& rectDest,
float fOpacity = 1.0,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
const CD2DRectF* pRectSrc = NULL);
參數
pBitmap
要轉譯的點陣圖。
rectDest
在轉譯目標座標空間中與裝置無關的圖元中,繪製位圖的區域大小和位置。 如果矩形順序不佳,則不會繪製任何專案,但轉譯目標不會進入錯誤狀態。
fOpacity
介於 0.0f 和 1.0f 之間的值,包含指定要套用至點陣圖的不透明度值;此值會與位圖內容的Alpha值相乘。
interpolationMode
繪製作業縮放或旋轉點陣圖時要使用的插補模式。
pRectSrc
要繪製之位圖內區域的大小和位置,以與裝置無關的圖元為單位。
CRenderTarget::D rawEllipse
使用指定的筆劃樣式繪製指定橢圓形的外框。
void DrawEllipse(
const CD2DEllipse& ellipse,
CD2DBrush* pBrush,
FLOAT fStrokeWidth = 1.0,
ID2D1StrokeStyle* strokeStyle = NULL);
參數
橢圓
要繪製之橢圓形的位置和半徑,以裝置無關的圖元為單位。
pBrush
用來繪製橢圓形外框的筆刷。
fStrokeWidth
橢圓形筆劃的粗細。 筆劃以橢圓形的外框為中心。
strokeStyle
要套用至橢圓形外框的筆劃樣式,或為NULL繪製實心筆劃。
CRenderTarget::D rawGeometry
使用指定的筆劃樣式繪製指定幾何的外框。
void DrawGeometry(
CD2DGeometry* pGeometry,
CD2DBrush* pBrush,
FLOAT fStrokeWidth = 1.0,
ID2D1StrokeStyle* strokeStyle = NULL);
參數
pGeometry
要繪製的幾何。
pBrush
用來繪製幾何筆劃的筆刷。
fStrokeWidth
幾何筆劃的粗細。 筆劃會置中於幾何的外框上。
strokeStyle
要套用至幾何外框的筆劃樣式,或為NULL繪製實心筆劃。
CRenderTarget::D rawGlyphRun
繪製指定的圖像。
void DrawGlyphRun(
const CD2DPointF& ptBaseLineOrigin,
const DWRITE_GLYPH_RUN& glyphRun,
CD2DBrush* pForegroundBrush,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL);
參數
ptBaseLineOrigin
圖像基準的原點,以裝置無關的圖元為單位。
glyphRun
要轉譯的字元。
pForegroundBrush
用來繪製指定圖像的筆刷。
measuringMode
值,指出格式化文字時如何使用字元度量來測量文字。 預設值為 DWRITE_MEASURING_MODE_NATURAL。
CRenderTarget::D rawLine
使用指定的筆劃樣式,在指定的點之間繪製線條。
void DrawLine(
const CD2DPointF& ptFrom,
const CD2DPointF& ptTo,
CD2DBrush* pBrush,
FLOAT fStrokeWidth = 1.0,
ID2D1StrokeStyle* strokeStyle = NULL);
參數
ptFrom
線條的起點,以裝置無關的圖元為單位。
ptTo
線條的終點,以裝置無關的圖元為單位。
pBrush
用來繪製線條筆劃的筆刷。
fStrokeWidth
大於或等於 0.0f 的值,指定筆劃的寬度。 如果未指定此參數,則預設為1.0f。 筆劃會置中於線條上。
strokeStyle
要繪製的筆劃樣式,或繪製實線的NULL。
CRenderTarget::D rawRectangle
繪製具有指定維度和筆劃樣式之矩形的外框。
void DrawRectangle(
const CD2DRectF& rectangle,
CD2DBrush* pBrush,
FLOAT fStrokeWidth = 1.0,
ID2D1StrokeStyle* strokeStyle = NULL);
參數
矩形
要繪製之矩形的維度,以裝置無關的圖元為單位
pBrush
用來繪製矩形筆劃的筆刷
fStrokeWidth
大於或等於 0.0f 的值,指定矩形筆劃的寬度。 筆劃會置中矩形的外框。
strokeStyle
要繪製的筆劃樣式,或繪製實心筆劃的NULL。
CRenderTarget::D rawRoundedRectangle
使用指定的筆劃樣式繪製指定圓角矩形的外框。
void DrawRoundedRectangle(
const CD2DRoundedRect& rectRounded,
CD2DBrush* pBrush,
FLOAT fStrokeWidth = 1.0,
ID2D1StrokeStyle* strokeStyle = NULL);
參數
rectRounded
要繪製之圓角矩形的維度,以裝置無關的圖元為單位。
pBrush
用來繪製圓角矩形外框的筆刷。
fStrokeWidth
圓角矩形筆劃的寬度。 筆劃會置中於圓角矩形的外框上。 預設值為 1.0f。
strokeStyle
圓角矩形筆劃的樣式,或繪製實心筆劃的NULL。 預設值是 NULL。
CRenderTarget::D rawText
使用IDWriteTextFormat物件所提供的格式資訊來繪製指定的文字。
void DrawText(
const CString& strText,
const CD2DRectF& rectangle,
CD2DBrush* pForegroundBrush,
CD2DTextFormat* textFormat = NULL,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE,
DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL);
參數
strText
要繪製之 Unicode 字元陣列的指標。
矩形
繪製文字的區域大小和位置。
pForegroundBrush
用來繪製文字的筆刷。
textFormat
物件,描述要繪製之文字的格式詳細數據,例如字型、字型和流程方向。
options
值,指出文字是否應該貼齊到圖元界限,以及文字是否應該裁剪到版面配置矩形。 默認值為 D2D1_DRAW_TEXT_OPTIONS_NONE,表示文字應貼齊圖元界限,且不應裁剪到版面配置矩形。
measuringMode
值,指出格式化文字時如何使用字元度量來測量文字。 預設值為 DWRITE_MEASURING_MODE_NATURAL。
CRenderTarget::D rawTextLayout
繪製指定的IDWriteTextLayout物件所描述的格式化文字。
void DrawTextLayout(
const CD2DPointF& ptOrigin,
CD2DTextLayout* textLayout,
CD2DBrush* pBrushForeground,
D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE);
參數
ptOrigin
以裝置無關圖元描述的點,其中會繪製 textLayout 所描述文字的左上角。
textLayout
要繪製的格式化文字。 不會繼承自ID2D1Resource的任何繪圖效果都會被忽略。 如果有繼承自不是筆刷的ID2D1Resource的繪圖效果,這個方法會失敗,轉譯目標會處於錯誤狀態。
pBrushForeground
筆刷,用來在 textLayout 中繪製任何尚未建立關聯筆刷的文字做為繪圖效果(由 IDWriteTextLayout::SetDrawingEffect 方法指定)。
options
值,指出文字是否應該貼齊到圖元界限,以及文字是否應該裁剪到版面配置矩形。 默認值為 D2D1_DRAW_TEXT_OPTIONS_NONE,表示文字應貼齊圖元界限,且不應裁剪到版面配置矩形。
CRenderTarget::EndDraw
結束轉譯目標上的繪圖作業,並指出目前的錯誤狀態和相關聯的標記。
HRESULT EndDraw();
傳回值
如果方法成功,則會傳回S_OK。 否則,它會傳回 HRESULT 錯誤碼。
CRenderTarget::FillEllipse
繪製指定橢圓形的內部。
void FillEllipse(
const CD2DEllipse& ellipse,
CD2DBrush* pBrush);
參數
橢圓
要繪製之橢圓形的位置和半徑,以裝置無關的圖元為單位。
pBrush
用來繪製橢圓內部的筆刷。
CRenderTarget::FillGeometry
繪製指定幾何的內部。
void FillGeometry(
CD2DGeometry* pGeometry,
CD2DBrush* pBrush,
CD2DBrush* pOpacityBrush = NULL);
參數
pGeometry
要繪製的幾何。
pBrush
用來繪製幾何內部的筆刷。
pOpacityBrush
要套用至幾何的不透明度遮罩;無不透明度遮罩的 NULL。 如果指定不透明度遮罩(不透明度Brush 參數),筆刷必須是ID2D1BitmapBrush,其 x和 y-extend 模式設定為 D2D1_EXTEND_MODE_CLAMP。 如需詳細資訊,請參閱備註一節。
CRenderTarget::FillMesh
繪製指定網格的內部。
void FillMesh(
CD2DMesh* pMesh,
CD2DBrush* pBrush);
參數
pMesh
要繪製的網格。
pBrush
用來繪製網格的筆刷。
CRenderTarget::FillOpacityMask
將指定位圖所描述的不透明度遮罩套用至筆刷,並使用該筆刷繪製轉譯目標的區域。
void FillOpacityMask(
CD2DBitmap* pOpacityMask,
CD2DBrush* pBrush,
D2D1_OPACITY_MASK_CONTENT content,
const CD2DRectF& rectDest,
const CD2DRectF& rectSrc);
參數
pOpacityMask
要繪製之橢圓形的位置和半徑,以裝置無關的圖元為單位。
pBrush
筆刷,用來繪製 destinationRectangle 所指定之轉譯目標的區域。
內容
不透明度遮罩所包含的內容類型。 值是用來判斷混合不透明度遮罩的色彩空間。
rectDest
要以裝置無關圖元繪製之轉譯目標的區域。
rectSrc
要作為不透明度遮罩的點陣圖區域,以裝置無關的圖元為單位。
CRenderTarget::FillRectangle
繪製指定矩形的內部。
void FillRectangle(
const CD2DRectF& rectangle,
CD2DBrush* pBrush);
參數
矩形
要繪製之矩形的維度,以裝置無關的圖元為單位。
pBrush
用來繪製矩形內部的筆刷。
CRenderTarget::FillRoundedRectangle
繪製指定圓角矩形的內部。
void FillRoundedRectangle(
const CD2DRoundedRect& rectRounded,
CD2DBrush* pBrush);
參數
rectRounded
要以裝置獨立圖元繪製之圓角矩形的維度。
pBrush
用來繪製圓角矩形內部的筆刷。
CRenderTarget::Flush
執行所有暫止的繪圖命令。
void Flush(
D2D1_TAG* tag1 = NULL,
D2D1_TAG* tag2 = NULL);
參數
tag1
包含繪製作業的標籤,如果沒有任何錯誤,則為 0。 這個參數會以未初始化的狀態傳遞。
tag2
包含繪製作業的標籤,如果沒有任何錯誤,則為 0。 這個參數會以未初始化的狀態傳遞。
CRenderTarget::GetAntialiasMode
擷取非文字繪圖作業的目前反鋸齒模式。
D2D1_ANTIALIAS_MODE GetAntialiasMode() const;
傳回值
非文字繪圖作業的目前反鋸齒模式。
CRenderTarget::GetDpi
傳迴轉譯目標的每英吋點數 (DPI)
CD2DSizeF GetDpi() const;
傳回值
轉譯目標的每英吋點數(DPI)。
CRenderTarget::GetMaximumBitmapSize
取得轉譯目標所支援之任何點陣圖維度的大小上限,以裝置相依單位 (圖元) 為單位
UINT32 GetMaximumBitmapSize() const;
傳回值
轉譯目標所支援的任何點陣圖維度大小上限,以像素為單位
CRenderTarget::GetPixelFormat
擷取轉譯目標的圖元格式和 Alpha 模式
D2D1_PIXEL_FORMAT GetPixelFormat() const;
傳回值
轉譯目標的圖元格式和 Alpha 模式
CRenderTarget::GetPixelSize
傳回裝置圖元中轉譯目標的大小
CD2DSizeU GetPixelSize() const;
傳回值
裝置圖元中轉譯目標的大小
CRenderTarget::GetRenderTarget
傳回ID2D1RenderTarget介面
ID2D1RenderTarget* GetRenderTarget();
傳回值
如果物件尚未初始化,則為ID2D1RenderTarget介面的指標或 NULL。
CRenderTarget::GetSize
傳回與裝置無關圖元的轉譯目標大小
CD2DSizeF GetSize() const;
傳回值
裝置獨立圖元中轉譯目標的目前大小
CRenderTarget::GetTags
取得後續繪圖作業的標籤。
void GetTags(
D2D1_TAG* tag1 = NULL,
D2D1_TAG* tag2 = NULL) const;
參數
tag1
包含後續繪圖作業的第一個標籤。 這個參數會以未初始化的狀態傳遞。 如果指定 NULL,則不會擷取此參數的值。
tag2
包含後續繪圖作業的第二個標籤。 這個參數會以未初始化的狀態傳遞。 如果指定 NULL,則不會擷取此參數的值。
CRenderTarget::GetTextAntialiasMode
取得文字和圖像繪圖作業的目前反鋸齒模式。
D2D1_TEXT_ANTIALIAS_MODE GetTextAntialiasMode() const;
傳回值
文字和圖像繪圖作業的目前反鋸齒模式。
CRenderTarget::GetTextRenderingParams
擷取轉譯目標的目前文字轉譯選項。
void GetTextRenderingParams(IDWriteRenderingParams** textRenderingParams);
參數
textRenderingParams
當這個方法傳回時,textRenderingParamscontains 會指向轉譯目標目前文字轉譯選項的指標位址。
CRenderTarget::GetTransform
取得轉譯目標的目前轉換。
void GetTransform(D2D1_MATRIX_3X2_F* transform);
參數
transform
當這個 傳回時,包含轉譯目標的目前轉換。 這個參數會以未初始化的狀態傳遞。
CRenderTarget::IsSupported
指出轉譯目標是否支援指定的屬性
BOOL IsSupported(const D2D1_RENDER_TARGET_PROPERTIES& renderTargetProperties) const;
參數
renderTargetProperties
要測試的轉譯目標屬性
傳回值
如果這個轉譯目標支援指定的轉譯目標屬性,則為TRUE;否則為 FALSE
CRenderTarget::IsValid
檢查資源有效性
BOOL IsValid() const;
傳回值
如果資源有效,則為TRUE;否則為 FALSE。
CRenderTarget::m_lstResources
CD2DResource 物件的指標清單。
CObList m_lstResources;
CRenderTarget::m_pRenderTarget
ID2D1RenderTarget 物件的指標。
ID2D1RenderTarget* m_pRenderTarget;
CRenderTarget::m_pTextFormatDefault
包含預設文字格式之 CD2DTextFormat 物件的指標。
CD2DTextFormat* m_pTextFormatDefault;
CRenderTarget::operator ID2D1RenderTarget*
傳回ID2D1RenderTarget介面
operator ID2D1RenderTarget*();
傳回值
如果物件尚未初始化,則為ID2D1RenderTarget介面的指標或 NULL。
CRenderTarget::P opAxisAlignedClip
從轉譯目標移除最後一個軸對齊的剪輯。 呼叫這個方法之後,剪輯就不會再套用至後續的繪圖作業。
void PopAxisAlignedClip();
CRenderTarget::P opLayer
停止將繪圖作業重新導向至最後一個 PushLayer 呼叫所指定的層次。
void PopLayer();
CRenderTarget::P ushAxisAlignedClip
從轉譯目標移除最後一個軸對齊的剪輯。 呼叫這個方法之後,剪輯就不會再套用至後續的繪圖作業。
void PushAxisAlignedClip(
const CD2DRectF& rectClip,
D2D1_ANTIALIAS_MODE mode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE);
參數
rectClip
裁剪區域的大小和位置,以裝置無關的圖元為單位。
mode
反鋸齒模式,用來繪製具有子圖元界限的裁剪矩形邊緣,以及將剪輯與場景內容混合。 呼叫 PopAxisAlignedClip 方法時,會執行混合一次,而且不適用於圖層中的每個基本類型。
CRenderTarget::P ushLayer
將指定的圖層新增至轉譯目標,使其接收所有後續的繪圖作業,直到呼叫 PopLayer 為止。
void PushLayer(
const D2D1_LAYER_PARAMETERS& layerParameters,
CD2DLayer& layer);
參數
layerParameters
圖層的內容界限、幾何遮罩、不透明度、不透明度遮罩和反鋸齒選項。
層
接收後續繪圖作業的圖層。
CRenderTarget::RestoreDrawingState
將轉譯目標的繪圖狀態設定為指定的ID2D1DrawingStateBlock。
void RestoreDrawingState(ID2D1DrawingStateBlock& drawingStateBlock);
參數
drawingStateBlock
轉譯目標的新繪圖狀態。
CRenderTarget::SaveDrawingState
將目前的繪圖狀態儲存至指定的ID2D1DrawingStateBlock。
void SaveDrawingState(ID2D1DrawingStateBlock& drawingStateBlock) const;
參數
drawingStateBlock
當這個方法傳回時,會包含轉譯目標目前的繪圖狀態。 此參數必須先初始化,才能將它傳遞至 方法。
CRenderTarget::SetAntialiasMode
設定轉譯目標的反鋸齒模式。 反鋸齒模式會套用至所有後續的繪圖作業,不包括文字和圖像繪圖作業。
void SetAntialiasMode(D2D1_ANTIALIAS_MODE antialiasMode);
參數
antialiasMode
未來繪圖作業的反鋸齒模式。
CRenderTarget::SetDpi
設定轉譯目標的每英吋 (DPI) 點。
void SetDpi(const CD2DSizeF& sizeDPI);
參數
sizeDPI
大於或等於零的值,指定轉譯目標的水準/verticalDPI。
CRenderTarget::SetTags
指定後續繪圖作業的標籤。
void SetTags(
D2D1_TAG tag1,
D2D1_TAG tag2);
參數
tag1
要套用至後續繪圖作業的標籤。
tag2
要套用至後續繪圖作業的標籤。
CRenderTarget::SetTextAntialiasMode
指定用於後續文字和圖像繪圖作業的反鋸齒模式。
void SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode);
參數
textAntialiasMode
用於後續文字和圖像繪圖作業的反鋸齒模式。
CRenderTarget::SetTextRenderingParams
指定要套用至所有後續文字和圖像繪圖作業的文字轉譯選項。
void SetTextRenderingParams(IDWriteRenderingParams* textRenderingParams = NULL);
參數
textRenderingParams
要套用至所有後續文字和圖像繪圖作業的文字轉譯選項;NULL 可清除目前的文字轉譯選項。
CRenderTarget::SetTransform
將指定的轉換套用至轉譯目標,取代現有的轉換。 所有後續的繪圖作業都會發生在轉換的空間中。
void SetTransform(const D2D1_MATRIX_3X2_F* transform);
void SetTransform(const D2D1_MATRIX_3X2_F& transform);
參數
transform
要套用至轉譯目標的轉換。
CRenderTarget::VerifyResource
驗證 CD2DResource 物件有效性;如果物件不存在,就會建立物件。
BOOL VerifyResource(CD2DResource* pResource);
參數
pResource
CD2DResource 物件的指標。
傳回值
如果有效,則為TRUE;否則為 FALSE。