diff options
author | Michael Meeks <michael.meeks@suse.com> | 2013-06-26 14:04:25 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2013-06-27 19:34:38 +0100 |
commit | f4ea3fd5c1ee0e26be8383b0cc209a0d8de3f433 (patch) | |
tree | 087883c451d348c60e2275b11ad6e0ebbb9a5892 /sc | |
parent | b4be964fa2eece48e7ac1ae7c2c2690890ee899c (diff) |
use #if to avoid gotchas, move header to include, make UI conditional.
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/inc/openclwrapper.hxx (renamed from sc/source/core/opencl/openclwrapper.hxx) | 4 | ||||
-rw-r--r-- | sc/source/core/tool/formulagroup.cxx | 40 | ||||
-rw-r--r-- | sc/source/ui/app/scmod.cxx | 10 | ||||
-rw-r--r-- | sc/source/ui/optdlg/calcoptionsdlg.cxx | 4 |
4 files changed, 35 insertions, 23 deletions
diff --git a/sc/source/core/opencl/openclwrapper.hxx b/sc/source/core/inc/openclwrapper.hxx index d3b53548625b..62006d116a3b 100644 --- a/sc/source/core/opencl/openclwrapper.hxx +++ b/sc/source/core/inc/openclwrapper.hxx @@ -10,6 +10,8 @@ #ifndef _OPENCL_WRAPPER_H_ #define _OPENCL_WRAPPER_H_ +#include <config_features.h> + #include <CL/cl.h> #define MaxTextExtent 4096 @@ -22,7 +24,7 @@ #define strcasecmp strcmp #endif #endif -#define ENABLE_OPENCL //dbg + typedef struct _KernelEnv { cl_context context; cl_command_queue commandQueue; diff --git a/sc/source/core/tool/formulagroup.cxx b/sc/source/core/tool/formulagroup.cxx index 43977edc6ccc..2262cc5e153b 100644 --- a/sc/source/core/tool/formulagroup.cxx +++ b/sc/source/core/tool/formulagroup.cxx @@ -7,6 +7,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include <config_features.h> #include "formulagroup.hxx" #include "document.hxx" #include "formulacell.hxx" @@ -15,8 +16,8 @@ #include "interpre.hxx" #include "formula/vectortoken.hxx" -#ifdef ENABLE_OPENCL -#include "openclwrapper.hxx" +#if HAVE_FEATURE_OPENCL +# include "openclwrapper.hxx" #endif namespace sc { @@ -40,7 +41,7 @@ TimeValue aTimeBefore, aTimeAfter; bool FormulaGroupInterpreter::interpret() { -#ifdef ENABLE_OPENCL //dbg +#if HAVE_FEATURE_OPENCL size_t rowSize = mxGroup->mnLength, srcSize = 0; fprintf(stderr,"rowSize at begin is ...%ld.\n",rowSize); int *rangeStart =NULL; // The first position for calculation,for example,the A1 in (=MAX(A1:A100)) @@ -100,7 +101,7 @@ bool FormulaGroupInterpreter::interpret() nRowEnd += i; size_t nRowSize = nRowEnd - nRowStart + 1; ScMatrixRef pMat(new ScMatrix(nColSize, nRowSize, 0.0)); -#ifdef ENABLE_OPENCL +#if HAVE_FEATURE_OPENCL //srcSize = rowSize+nRowSize-rowSize%nRowSize;//align as nRowSize //srcData = (double *)calloc(srcSize,sizeof(double)); rangeStart[i] = nRowStart;//record the start position @@ -109,7 +110,7 @@ bool FormulaGroupInterpreter::interpret() for (size_t nCol = 0; nCol < nColSize; ++nCol) { const double* pArray = rArrays[nCol]; -#ifdef ENABLE_OPENCL +#if HAVE_FEATURE_OPENCL //printf("pArray is %p.\n",pArray); if( NULL==pArray ) { @@ -146,7 +147,7 @@ bool FormulaGroupInterpreter::interpret() if (!pDest) return false; -#ifdef ENABLE_OPENCL +#if HAVE_FEATURE_OPENCL const formula::FormulaToken *pCur = aCode2.First(); aCode2.Reset(); while( ( pCur = aCode2.Next() ) != NULL ) @@ -187,7 +188,7 @@ bool FormulaGroupInterpreter::interpret() } } // for loop end (mxGroup->mnLength) // For GPU calculation -#ifdef ENABLE_OPENCL //dbg: Using "export SC_GPU=1" to open if{} in terminal +#if HAVE_FEATURE_OPENCL //dbg: Using "export SC_GPU=1" to open if{} in terminal if(getenv("SC_GPU")) { fprintf(stderr,"ggGPU flow...\n\n"); @@ -236,17 +237,20 @@ bool FormulaGroupInterpreter::interpret() // } // We want to stuff the double data, which in rResult[i] from GPU calculated well, to UI view for users - for (sal_Int32 i = 0; i < mxGroup->mnLength; ++i) - { - ScFormulaCell* pDestx = mrDoc.GetFormulaCell(aTmpPos); - if (!pDestx) - return false; - formula::FormulaTokenRef xResult = new formula::FormulaDoubleToken(rResult[i]); - pDestx->SetResultToken(xResult.get()); - pDestx->ResetDirty(); - pDestx->SetChanged(true); - aTmpPos.SetRow(mxGroup->mnStart + i + 1); - } + ScAddress aInsertPos = maTopPos; + for (sal_Int32 i = 0; i < mxGroup->mnLength; ++i) + { + aInsertPos.SetRow(mxGroup->mnStart + i); + ScFormulaCell* pDestx = mrDoc.GetFormulaCell(aInsertPos); + + SAL_DEBUG(" put value " << rResult[i] << " into formula at " << aInsertPos.Col() << " , " << aInsertPos.Row() ); + assert(pDestx); + + formula::FormulaTokenRef xResult = new formula::FormulaDoubleToken(rResult[i]); + pDestx->SetResultToken(xResult.get()); + pDestx->ResetDirty(); + pDestx->SetChanged(true); + } } if(leftData) diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx index 673b79cb930c..4edfcf04c50c 100644 --- a/sc/source/ui/app/scmod.cxx +++ b/sc/source/ui/app/scmod.cxx @@ -17,6 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <config_features.h> + #include <com/sun/star/ui/dialogs/XSLTFilterDialog.hpp> #include <comphelper/processfactory.hxx> @@ -101,8 +103,8 @@ #include "scabstdlg.hxx" #include "formula/errorcodes.hxx" -#ifdef ENABLE_OPENCL -#include "openclwrapper.hxx" +#if HAVE_FEATURE_OPENCL +# include "openclwrapper.hxx" #endif #define SC_IDLE_MIN 150 @@ -152,7 +154,7 @@ ScModule::ScModule( SfxObjectFactory* pFact ) : mbIsInSharedDocLoading( false ), mbIsInSharedDocSaving( false ) { -#ifdef ENABLE_OPENCL +#if HAVE_FEATURE_OPENCL OclCalc::InitEnv(); #endif // im ctor ist der ResManager (DLL-Daten) noch nicht initialisiert! @@ -188,7 +190,7 @@ ScModule::ScModule( SfxObjectFactory* pFact ) : ScModule::~ScModule() { -#ifdef ENABLE_OPENCL +#if HAVE_FEATURE_OPENCL OclCalc::ReleaseOpenclRunEnv(); #endif OSL_ENSURE( !pSelTransfer, "Selection Transfer object not deleted" ); diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 86d718a939c8..11ec4cb49e37 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -10,6 +10,8 @@ * */ +#include <config_features.h> + #include "calcoptionsdlg.hxx" #include "sc.hrc" #include "scresid.hxx" @@ -197,7 +199,9 @@ void ScCalcOptionsDialog::FillOptionsList() } pModel->Insert(createBoolItem(maCaptionEmptyStringAsZero,maConfig.mbEmptyStringAsZero)); +#if HAVE_FEATURE_OPENCL pModel->Insert(createBoolItem(maCaptionOpenCLEnabled,maConfig.mbOpenCLEnabled)); +#endif mpLbSettings->SetUpdateMode(true); } |