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

Unified Diff: core/fpdfapi/fpdf_page/fpdf_page_func.cpp

Issue 1870463002: flesh out gradient shaders (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: address comments Created 4 years, 8 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
« no previous file with comments | « no previous file | core/fpdfapi/fpdf_page/pageint.h » ('j') | core/fpdfapi/fpdf_page/pageint.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fpdfapi/fpdf_page/fpdf_page_func.cpp
diff --git a/core/fpdfapi/fpdf_page/fpdf_page_func.cpp b/core/fpdfapi/fpdf_page/fpdf_page_func.cpp
index b00ab73af1e6340a0844451705f4551354bb30a7..3e71d90a7d4876fe8e70889bbc8ed2b634b82faa 100644
--- a/core/fpdfapi/fpdf_page/fpdf_page_func.cpp
+++ b/core/fpdfapi/fpdf_page/fpdf_page_func.cpp
@@ -491,28 +491,38 @@ static uint32_t _GetBits32(const uint8_t* pData, int bitpos, int nbits) {
}
return result;
}
-typedef struct {
- FX_FLOAT encode_max, encode_min;
- int sizes;
-} SampleEncodeInfo;
-typedef struct { FX_FLOAT decode_max, decode_min; } SampleDecodeInfo;
-class CPDF_SampledFunc : public CPDF_Function {
+class CPDF_PSFunc : public CPDF_Function {
public:
- CPDF_SampledFunc();
- ~CPDF_SampledFunc() override;
-
// CPDF_Function
+ CPDF_PSFunc() : CPDF_Function(Type::kType4PostScript) {}
Tom Sepez 2016/04/11 16:41:49 nit: ctor should come before this comment, which i
caryclark 2016/04/11 20:41:51 Done.
FX_BOOL v_Init(CPDF_Object* pObj) override;
FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const override;
- SampleEncodeInfo* m_pEncodeInfo;
- SampleDecodeInfo* m_pDecodeInfo;
- uint32_t m_nBitsPerSample;
- uint32_t m_SampleMax;
- CPDF_StreamAcc* m_pSampleStream;
+ CPDF_PSEngine m_PS;
Tom Sepez 2016/04/11 16:41:49 nit: can this be private or protected?
caryclark 2016/04/11 20:41:51 Done.
};
+FX_BOOL CPDF_PSFunc::v_Init(CPDF_Object* pObj) {
+ CPDF_Stream* pStream = pObj->AsStream();
Tom Sepez 2016/04/11 16:41:49 nit: local not needed since it is only used once.
caryclark 2016/04/11 20:41:51 Done.
+ CPDF_StreamAcc acc;
+ acc.LoadAllData(pStream, FALSE);
+ return m_PS.Parse((const FX_CHAR*)acc.GetData(), acc.GetSize());
Tom Sepez 2016/04/11 16:41:49 nit: reinterpret_cast<const FX_CHAR*>
caryclark 2016/04/11 20:41:51 Done.
+}
+FX_BOOL CPDF_PSFunc::v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const {
Tom Sepez 2016/04/11 16:41:49 nit: blank line here.
caryclark 2016/04/11 20:41:51 Done.
+ CPDF_PSEngine& PS = (CPDF_PSEngine&)m_PS;
Tom Sepez 2016/04/11 16:41:49 nit: this isn't buying us anything over just using
caryclark 2016/04/11 20:41:51 v_Call is a const function; PS.Reset() for instanc
+ PS.Reset();
+ for (uint32_t i = 0; i < m_nInputs; i++)
+ PS.Push(inputs[i]);
+ PS.Execute();
+ if (PS.GetStackSize() < m_nOutputs)
+ return FALSE;
+ for (uint32_t i = 0; i < m_nOutputs; i++)
+ results[m_nOutputs - i - 1] = PS.Pop();
+ return TRUE;
+}
+
+} // namespace
dsinclair 2016/04/11 16:17:45 Hm, did this make the namespace section smaller? I
caryclark 2016/04/11 16:26:33 There were two namespace blocks. Now there is one.
+
CPDF_SampledFunc::CPDF_SampledFunc() : CPDF_Function(Type::kType0Sampled) {
m_pSampleStream = NULL;
m_pEncodeInfo = NULL;
@@ -524,6 +534,7 @@ CPDF_SampledFunc::~CPDF_SampledFunc() {
FX_Free(m_pEncodeInfo);
FX_Free(m_pDecodeInfo);
}
+
FX_BOOL CPDF_SampledFunc::v_Init(CPDF_Object* pObj) {
CPDF_Stream* pStream = pObj->AsStream();
if (!pStream)
@@ -579,6 +590,7 @@ FX_BOOL CPDF_SampledFunc::v_Init(CPDF_Object* pObj) {
}
return TRUE;
}
+
FX_BOOL CPDF_SampledFunc::v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const {
int pos = 0;
CFX_FixedBufGrow<FX_FLOAT, 16> encoded_input_buf(m_nInputs);
@@ -650,37 +662,6 @@ FX_BOOL CPDF_SampledFunc::v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const {
return TRUE;
}
-class CPDF_PSFunc : public CPDF_Function {
- public:
- // CPDF_Function
- CPDF_PSFunc() : CPDF_Function(Type::kType4PostScript) {}
- FX_BOOL v_Init(CPDF_Object* pObj) override;
- FX_BOOL v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const override;
-
- CPDF_PSEngine m_PS;
-};
-
-FX_BOOL CPDF_PSFunc::v_Init(CPDF_Object* pObj) {
- CPDF_Stream* pStream = pObj->AsStream();
- CPDF_StreamAcc acc;
- acc.LoadAllData(pStream, FALSE);
- return m_PS.Parse((const FX_CHAR*)acc.GetData(), acc.GetSize());
-}
-FX_BOOL CPDF_PSFunc::v_Call(FX_FLOAT* inputs, FX_FLOAT* results) const {
- CPDF_PSEngine& PS = (CPDF_PSEngine&)m_PS;
- PS.Reset();
- for (uint32_t i = 0; i < m_nInputs; i++)
- PS.Push(inputs[i]);
- PS.Execute();
- if (PS.GetStackSize() < m_nOutputs)
- return FALSE;
- for (uint32_t i = 0; i < m_nOutputs; i++)
- results[m_nOutputs - i - 1] = PS.Pop();
- return TRUE;
-}
-
-} // namespace
-
CPDF_ExpIntFunc::CPDF_ExpIntFunc()
: CPDF_Function(Type::kType2ExpotentialInterpolation) {
m_pBeginValues = NULL;
« no previous file with comments | « no previous file | core/fpdfapi/fpdf_page/pageint.h » ('j') | core/fpdfapi/fpdf_page/pageint.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698