Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2773)

Unified Diff: core/fpdfapi/fpdf_page/include/cpdf_generalstate.h

Issue 2302683002: Make StateData private (Closed)
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: core/fpdfapi/fpdf_page/include/cpdf_generalstate.h
diff --git a/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h b/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h
index 6d5606431851f501555e840b0154c733e49569f0..c8f65f8927947eee917063e10597dc1c825407bd 100644
--- a/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h
+++ b/core/fpdfapi/fpdf_page/include/cpdf_generalstate.h
@@ -7,8 +7,12 @@
#ifndef CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_GENERALSTATE_H_
#define CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_GENERALSTATE_H_
-#include "core/fpdfapi/fpdf_page/include/cpdf_generalstatedata.h"
+#include "core/fxcrt/include/cfx_count_ref.h"
#include "core/fxcrt/include/fx_basic.h"
+#include "core/fxcrt/include/fx_coordinates.h"
+
+class CPDF_TransferFunc;
+class CPDF_Object;
class CPDF_GeneralState {
public:
@@ -18,122 +22,95 @@ class CPDF_GeneralState {
void Emplace() { m_Ref.Emplace(); }
- void SetRenderIntent(const CFX_ByteString& ri);
-
- int GetBlendType() const {
- const CPDF_GeneralStateData* pData = m_Ref.GetObject();
- return pData ? pData->m_BlendType : FXDIB_BLEND_NORMAL;
- }
-
- void SetBlendType(int type) { m_Ref.GetPrivateCopy()->m_BlendType = type; }
+ int GetBlendType() const;
+ void SetBlendType(int type);
int GetAlpha(FX_BOOL bStroke) const {
return bStroke ? GetStrokeAlpha() : GetFillAlpha();
}
- int GetFillAlpha() const {
- const CPDF_GeneralStateData* pData = m_Ref.GetObject();
- return pData ? FXSYS_round(255 * pData->m_FillAlpha) : 255;
- }
-
- int GetStrokeAlpha() const {
- const CPDF_GeneralStateData* pData = m_Ref.GetObject();
- return pData ? FXSYS_round(255 * pData->m_StrokeAlpha) : 255;
- }
-
- void SetSoftMask(CPDF_Object* pObject) {
- m_Ref.GetPrivateCopy()->m_pSoftMask = pObject;
- }
-
- CPDF_Object* GetSoftMask() const {
- const CPDF_GeneralStateData* pData = m_Ref.GetObject();
- return pData ? pData->m_pSoftMask : nullptr;
- }
-
- void SetTR(CPDF_Object* pObject) { m_Ref.GetPrivateCopy()->m_pTR = pObject; }
-
- CPDF_Object* GetTR() const { return m_Ref.GetObject()->m_pTR; }
-
- void SetTransferFunc(CPDF_TransferFunc* pFunc) {
- m_Ref.GetPrivateCopy()->m_pTransferFunc = pFunc;
- }
-
- CPDF_TransferFunc* GetTransferFunc() const {
- return m_Ref.GetObject()->m_pTransferFunc;
- }
-
- void SetBlendMode(const CFX_ByteStringC& mode) {
- m_Ref.GetPrivateCopy()->SetBlendMode(mode);
- }
+ int GetFillAlpha() const;
+ void SetFillAlpha(FX_FLOAT alpha);
- const FX_FLOAT* GetSMaskMatrix() const {
- return m_Ref.GetObject()->m_SMaskMatrix;
- }
+ int GetStrokeAlpha() const;
+ void SetStrokeAlpha(FX_FLOAT alpha);
- FX_FLOAT* GetMutableSMaskMatrix() {
- return m_Ref.GetPrivateCopy()->m_SMaskMatrix;
- }
-
- void SetStrokeAlpha(FX_FLOAT alpha) {
- m_Ref.GetPrivateCopy()->m_StrokeAlpha = alpha;
- }
+ CPDF_Object* GetSoftMask() const;
+ void SetSoftMask(CPDF_Object* pObject);
- void SetFillAlpha(FX_FLOAT alpha) {
- m_Ref.GetPrivateCopy()->m_FillAlpha = alpha;
- }
+ CPDF_Object* GetTR() const;
+ void SetTR(CPDF_Object* pObject);
- void SetFillOP(int op) { m_Ref.GetPrivateCopy()->m_FillOP = op; }
+ CPDF_TransferFunc* GetTransferFunc() const;
+ void SetTransferFunc(CPDF_TransferFunc* pFunc);
- int GetFillOP() const { return m_Ref.GetObject()->m_FillOP; }
+ void SetBlendMode(const CFX_ByteStringC& mode);
- void SetStrokeOP(int op) { m_Ref.GetPrivateCopy()->m_StrokeOP = op; }
+ const FX_FLOAT* GetSMaskMatrix() const;
+ FX_FLOAT* GetMutableSMaskMatrix();
- int GetStrokeOP() const { return m_Ref.GetObject()->m_StrokeOP; }
+ int GetFillOP() const;
+ void SetFillOP(int op);
- void SetOPMode(int mode) { m_Ref.GetPrivateCopy()->m_OPMode = mode; }
+ int GetStrokeOP() const;
+ void SetStrokeOP(int op);
- int GetOPMode() const { return m_Ref.GetObject()->m_OPMode; }
+ int GetOPMode() const;
+ void SetOPMode(int mode);
- void SetBG(CPDF_Object* pObject) { m_Ref.GetPrivateCopy()->m_pBG = pObject; }
+ void SetBG(CPDF_Object* pObject);
+ void SetUCR(CPDF_Object* pObject);
+ void SetHT(CPDF_Object* pObject);
- void SetUCR(CPDF_Object* pObject) {
- m_Ref.GetPrivateCopy()->m_pUCR = pObject;
- }
+ void SetFlatness(FX_FLOAT flatness);
+ void SetSmoothness(FX_FLOAT smoothness);
- void SetHT(CPDF_Object* pObject) { m_Ref.GetPrivateCopy()->m_pHT = pObject; }
+ void SetStrokeAdjust(FX_FLOAT adjust);
+ FX_FLOAT GetStrokeAdjust() const;
- void SetFlatness(FX_FLOAT flatness) {
- m_Ref.GetPrivateCopy()->m_Flatness = flatness;
- }
+ void SetAlphaSource(int source);
+ void SetTextKnockout(int knockout);
- void SetSmoothness(FX_FLOAT smoothness) {
- m_Ref.GetPrivateCopy()->m_Smoothness = smoothness;
- }
+ CFX_Matrix* GetMutableMatrix();
+ void SetMatrix(const CFX_Matrix& matrix);
- void SetStrokeAdjust(FX_FLOAT adjust) {
- m_Ref.GetPrivateCopy()->m_StrokeAdjust = adjust;
- }
-
- FX_FLOAT GetStrokeAdjust() const { return m_Ref.GetObject()->m_StrokeAdjust; }
-
- void SetAlphaSource(int source) {
- m_Ref.GetPrivateCopy()->m_AlphaSource = source;
- }
-
- void SetTextKnockout(int knockout) {
- m_Ref.GetPrivateCopy()->m_TextKnockout = knockout;
- }
-
- void SetMatrix(const CFX_Matrix& matrix) {
- m_Ref.GetPrivateCopy()->m_Matrix = matrix;
- }
-
- CFX_Matrix* GetMutableMatrix() { return &m_Ref.GetPrivateCopy()->m_Matrix; }
+ void SetRenderIntent(const CFX_ByteString& ri);
operator bool() const { return !!m_Ref; }
private:
- CFX_CountRef<CPDF_GeneralStateData> m_Ref;
+ class StateData {
+ public:
+ StateData();
+ StateData(const StateData& that);
+ ~StateData();
+
+ void SetBlendMode(const CFX_ByteStringC& blend_mode);
+
+ char m_BlendMode[16];
+ int m_BlendType;
+ CPDF_Object* m_pSoftMask;
+ FX_FLOAT m_SMaskMatrix[6];
+ FX_FLOAT m_StrokeAlpha;
+ FX_FLOAT m_FillAlpha;
+ CPDF_Object* m_pTR;
+ CPDF_TransferFunc* m_pTransferFunc;
+ CFX_Matrix m_Matrix;
+ int m_RenderIntent;
+ FX_BOOL m_StrokeAdjust;
+ FX_BOOL m_AlphaSource;
+ FX_BOOL m_TextKnockout;
+ FX_BOOL m_StrokeOP;
+ FX_BOOL m_FillOP;
+ int m_OPMode;
+ CPDF_Object* m_pBG;
+ CPDF_Object* m_pUCR;
+ CPDF_Object* m_pHT;
+ FX_FLOAT m_Flatness;
+ FX_FLOAT m_Smoothness;
+ };
+
+ CFX_CountRef<StateData> m_Ref;
};
#endif // CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_GENERALSTATE_H_

Powered by Google App Engine
This is Rietveld 408576698