SHResourceType shGetResourceType(VGContext *c, VGHandle h)
{
    if (shIsValidPath(c, h))
        return SH_RESOURCE_PATH;

    else if (shIsValidPaint(c, h))
        return SH_RESOURCE_PAINT;

    else if (shIsValidImage(c, h))
        return SH_RESOURCE_IMAGE;

    else
        return SH_RESOURCE_INVALID;
}
Esempio n. 2
0
VG_API_CALL void vgPaintPattern(VGPaint paint, VGImage pattern)
{
  VG_GETCONTEXT(VG_NO_RETVAL);
  
  /* Check if handle valid */
  VG_RETURN_ERR_IF(!shIsValidPaint(context, paint),
                   VG_BAD_HANDLE_ERROR, VG_NO_RETVAL);
  
  /* Check if pattern image valid */
  VG_RETURN_ERR_IF(!shIsValidImage(context, pattern),
                   VG_BAD_HANDLE_ERROR, VG_NO_RETVAL);
  
  /* TODO: Check if pattern image is current rendering target */
  
  /* Set pattern image */
  ((SHPaint*)paint)->pattern = pattern;
  
  VG_RETURN(VG_NO_RETVAL);
}
Esempio n. 3
0
VG_API_CALL void vgSetPaint(VGPaint paint, VGbitfield paintModes)
{
  VG_GETCONTEXT(VG_NO_RETVAL);
  
  /* Check if handle valid */
  VG_RETURN_ERR_IF(!shIsValidPaint(context, paint) &&
                   paint != VG_INVALID_HANDLE,
                   VG_BAD_HANDLE_ERROR, VG_NO_RETVAL);
  
  /* Check for invalid mode */
  VG_RETURN_ERR_IF(paintModes & ~(VG_STROKE_PATH | VG_FILL_PATH),
                   VG_ILLEGAL_ARGUMENT_ERROR, VG_NO_RETVAL);
  
  /* Set stroke / fill */
  if (paintModes & VG_STROKE_PATH)
    context->strokePaint = (SHPaint*)paint;
  if (paintModes & VG_FILL_PATH)
    context->fillPaint = (SHPaint*)paint;
  
  VG_RETURN(VG_NO_RETVAL);
}