本文整理汇总了C++中SK_PROPERTY函数的典型用法代码示例。如果您正苦于以下问题:C++ SK_PROPERTY函数的具体用法?C++ SK_PROPERTY怎么用?C++ SK_PROPERTY使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SK_PROPERTY函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
bool SkAnimateBase::getProperty(int index, SkScriptValue* value) const {
int boolResult;
switch (index) {
case SK_PROPERTY(dynamic):
boolResult = fDynamic;
goto returnBool;
case SK_PROPERTY(mirror):
boolResult = fMirror;
goto returnBool;
case SK_PROPERTY(reset):
boolResult = fReset;
returnBool:
value->fOperand.fS32 = SkToBool(boolResult);
value->fType = SkType_Boolean;
break;
case SK_PROPERTY(step):
if (fApply == NULL)
return false; // !!! notify there's an error?
fApply->getStep(value);
break;
case SK_PROPERTY(values):
value->fOperand.fString = (SkString*) &to;
value->fType = SkType_String;
break;
default:
SkASSERT(0);
return false;
}
return true;
}
示例2: switch
bool SkDisplayNumber::getProperty(int index, SkScriptValue* value) const {
SkScalar constant;
switch (index) {
case SK_PROPERTY(MAX_VALUE):
constant = SK_ScalarMax;
break;
case SK_PROPERTY(MIN_VALUE):
constant = SK_ScalarMin;
break;
case SK_PROPERTY(NEGATIVE_INFINITY):
constant = -SK_ScalarInfinity;
break;
case SK_PROPERTY(NaN):
constant = SK_ScalarNaN;
break;
case SK_PROPERTY(POSITIVE_INFINITY):
constant = SK_ScalarInfinity;
break;
default:
SkASSERT(0);
return false;
}
value->fOperand.fScalar = constant;
value->fType = SkType_Float;
return true;
}
示例3: switch
bool SkDrawMatrix::getProperty(int index, SkScriptValue* value) const {
value->fType = SkType_Float;
SkScalar result;
switch (index) {
case SK_PROPERTY(perspectX):
result = fMatrix.getPerspX();
break;
case SK_PROPERTY(perspectY):
result = fMatrix.getPerspY();
break;
case SK_PROPERTY(scaleX):
result = fMatrix.getScaleX();
break;
case SK_PROPERTY(scaleY):
result = fMatrix.getScaleY();
break;
case SK_PROPERTY(skewX):
result = fMatrix.getSkewX();
break;
case SK_PROPERTY(skewY):
result = fMatrix.getSkewY();
break;
case SK_PROPERTY(translateX):
result = fMatrix.getTranslateX();
break;
case SK_PROPERTY(translateY):
result = fMatrix.getTranslateY();
break;
default:
// SkASSERT(0);
return false;
}
value->fOperand.fScalar = result;
return true;
}
示例4: resolve
bool SkImageBaseBitmap::getProperty(int index, SkScriptValue* value) const {
if (fDirty)
resolve();
switch (index) {
case SK_PROPERTY(height):
value->fOperand.fS32 = fBitmap.height();
break;
case SK_PROPERTY(width):
value->fOperand.fS32 = fBitmap.width();
break;
default:
SkASSERT(0);
return false;
}
value->fType = SkType_Int;
return true;
}
示例5: switch
bool SkDrawColor::getProperty(int index, SkScriptValue* value) const {
value->fType = SkType_Float;
SkScalar result;
switch(index) {
case SK_PROPERTY(alpha):
result = SkIntToScalar(SkColorGetA(color)) / 255;
break;
case SK_PROPERTY(blue):
result = SkIntToScalar(SkColorGetB(color));
break;
case SK_PROPERTY(green):
result = SkIntToScalar(SkColorGetG(color));
break;
case SK_PROPERTY(hue):
result = RGB_to_HSV(color, kGetHue);
break;
case SK_PROPERTY(red):
result = SkIntToScalar(SkColorGetR(color));
break;
case SK_PROPERTY(saturation):
result = RGB_to_HSV(color, kGetSaturation);
break;
case SK_PROPERTY(value):
result = RGB_to_HSV(color, kGetValue);
break;
default:
SkASSERT(0);
return false;
}
value->fOperand.fScalar = result;
return true;
}
示例6: switch
bool SkDrawRect::setProperty(int index, SkScriptValue& value) {
SkScalar scalar = value.fOperand.fScalar;
switch (index) {
case SK_PROPERTY(height):
SkASSERT(value.fType == SkType_Float);
fRect.fBottom = scalar + fRect.fTop;
return true;
case SK_PROPERTY(needsRedraw):
return false;
case SK_PROPERTY(width):
SkASSERT(value.fType == SkType_Float);
fRect.fRight = scalar + fRect.fLeft;
return true;
default:
SkASSERT(0);
}
return false;
}
示例7: SkASSERT
bool SkDisplayEvent::setProperty(int index, SkScriptValue& value) {
SkASSERT(index == SK_PROPERTY(key) || index == SK_PROPERTY(keys));
SkASSERT(value.fType == SkType_String);
SkString* string = value.fOperand.fString;
const char* chars = string->c_str();
int count = SkUTF8_CountUnichars(chars);
SkASSERT(count >= 1);
code = (SkKey) SkUTF8_NextUnichar(&chars);
fMax = code;
SkASSERT(count == 1 || index == SK_PROPERTY(keys));
if (--count > 0) {
SkASSERT(*chars == '-');
chars++;
fMax = (SkKey) SkUTF8_NextUnichar(&chars);
SkASSERT(fMax >= code);
}
return true;
}
示例8: setupPaint
bool SkDrawPaint::getProperty(int index, SkScriptValue* value) const {
SkPaint::FontMetrics metrics;
SkPaint paint;
setupPaint(&paint);
paint.getFontMetrics(&metrics);
switch (index) {
case SK_PROPERTY(ascent):
value->fOperand.fScalar = metrics.fAscent;
break;
case SK_PROPERTY(descent):
value->fOperand.fScalar = metrics.fDescent;
break;
// should consider returning fLeading as well (or roll it into ascent/descent somehow
default:
SkASSERT(0);
return false;
}
value->fType = SkType_Float;
return true;
}
示例9: switch
bool SkDisplayArray::getProperty(int index, SkScriptValue* value) const {
switch (index) {
case SK_PROPERTY(length):
value->fType = SkType_Int;
value->fOperand.fS32 = values.count();
break;
default:
SkASSERT(0);
return false;
}
return true;
}
示例10: switch
bool SkDisplayEvent::getProperty(int index, SkScriptValue* value) const {
switch (index) {
case SK_PROPERTY(key):
case SK_PROPERTY(keys): {
value->fType = SkType_String;
char scratch[8];
SkKey convert = index == SK_PROPERTY(keys) ? code : fLastCode;
size_t size = convert > 0 ? SkUTF8_FromUnichar(convert, scratch) : 0;
fKeyString.set(scratch, size);
value->fOperand.fString = &fKeyString;
if (index != SK_PROPERTY(keys) || fMax == (SkKey) -1 || fMax == code)
break;
value->fOperand.fString->append("-");
size = SkUTF8_FromUnichar(fMax, scratch);
value->fOperand.fString->append(scratch, size);
} break;
default:
SkASSERT(0);
return false;
}
return true;
}
示例11: switch
bool SkDrawBitmap::setProperty(int index, SkScriptValue& value)
{
switch (index) {
case SK_PROPERTY(erase):
SkASSERT(value.fType == SkType_ARGB);
fColor = value.fOperand.fS32;
fColorSet = true;
break;
default:
SkASSERT(0);
return false;
}
return true;
}
示例12: switch
bool SkDisplayRandom::getProperty(int index, SkScriptValue* value) const {
switch(index) {
case SK_PROPERTY(random): {
SkScalar random = fRandom.nextUScalar1();
SkScalar relativeT = SkUnitCubicInterp(random, SK_Scalar1 - blend, 0, 0, SK_Scalar1 - blend);
value->fOperand.fScalar = min + SkScalarMul(max - min, relativeT);
value->fType = SkType_Float;
return true;
}
default:
SkASSERT(0);
}
return false;
}
示例13: SkToBool
bool SkAnimateBase::setProperty(int index, SkScriptValue& value) {
bool boolValue = SkToBool(value.fOperand.fS32);
switch (index) {
case SK_PROPERTY(dynamic):
fDynamic = boolValue;
goto checkForBool;
case SK_PROPERTY(values):
fHasValues = true;
SkASSERT(value.fType == SkType_String);
to = *value.fOperand.fString;
break;
case SK_PROPERTY(mirror):
fMirror = boolValue;
goto checkForBool;
case SK_PROPERTY(reset):
fReset = boolValue;
checkForBool:
SkASSERT(value.fType == SkType_Boolean);
break;
default:
return false;
}
return true;
}
示例14: SkASSERT
bool SkDrawColor::setProperty(int index, SkScriptValue& value) {
SkASSERT(value.fType == SkType_Float);
SkScalar scalar = value.fOperand.fScalar;
switch (index) {
case SK_PROPERTY(alpha):
uint8_t alpha;
#ifdef SK_SCALAR_IS_FLOAT
alpha = scalar == SK_Scalar1 ? 255 : SkToU8((U8CPU) (scalar * 256));
#else
alpha = SkToU8((scalar - (scalar >= SK_ScalarHalf)) >> 8);
#endif
color = SkColorSetARGB(alpha, SkColorGetR(color),
SkColorGetG(color), SkColorGetB(color));
break;
case SK_PROPERTY(blue):
scalar = SkScalarClampMax(scalar, 255 * SK_Scalar1);
color = SkColorSetARGB(SkColorGetA(color), SkColorGetR(color),
SkColorGetG(color), SkToU8((U8CPU) scalar));
break;
case SK_PROPERTY(green):
scalar = SkScalarClampMax(scalar, 255 * SK_Scalar1);
color = SkColorSetARGB(SkColorGetA(color), SkColorGetR(color),
SkToU8((U8CPU) scalar), SkColorGetB(color));
break;
case SK_PROPERTY(hue):
fHue = scalar;//RGB_to_HSV(color, kGetHue);
fDirty = true;
break;
case SK_PROPERTY(red):
scalar = SkScalarClampMax(scalar, 255 * SK_Scalar1);
color = SkColorSetARGB(SkColorGetA(color), SkToU8((U8CPU) scalar),
SkColorGetG(color), SkColorGetB(color));
break;
case SK_PROPERTY(saturation):
fSaturation = scalar;//RGB_to_HSV(color, kGetSaturation);
fDirty = true;
break;
case SK_PROPERTY(value):
fValue = scalar;//RGB_to_HSV(color, kGetValue);
fDirty = true;
break;
default:
SkASSERT(0);
return false;
}
return true;
}
示例15: SK_PROPERTY
#include "SkAnimateMaker.h"
#include "SkDisplayApply.h"
#include "SkDisplayInput.h"
#include "SkDisplayList.h"
#ifdef SK_DEBUG
#include "SkDump.h"
#endif
#include "SkEvent.h"
#include "SkDisplayInput.h"
#include "SkKey.h"
#include "SkMetaData.h"
#include "SkScript.h"
#include "SkUtils.h"
enum SkDisplayEvent_Properties {
SK_PROPERTY(key),
SK_PROPERTY(keys)
};
#if SK_USE_CONDENSED_INFO == 0
const SkMemberInfo SkDisplayEvent::fInfo[] = {
SK_MEMBER(code, EventCode),
SK_MEMBER(disable, Boolean),
SK_MEMBER_PROPERTY(key, String), // a single key (also last key pressed)
SK_MEMBER_PROPERTY(keys, String), // a single key or dash-delimited range of keys
SK_MEMBER(kind, EventKind),
SK_MEMBER(target, String),
SK_MEMBER(x, Float),
SK_MEMBER(y, Float)
};