// it must generate an error code because of a not valid value from the VGParamType enumeration vgGeti((VGParamType)(VG_MAX_FLOAT + 0x1000)); writeInt(f, vgGetError(), "vgGeti(VG_MAX_FLOAT + 0x1000)"); vgGetf((VGParamType)(VG_MAX_FLOAT + 0x1000)); writeInt(f, vgGetError(), "vgGetf(VG_MAX_FLOAT + 0x1000)"); vgGetiv((VGParamType)(VG_MAX_FLOAT + 0x1000), 1, iVals); writeInt(f, vgGetError(), "vgGetiv(VG_MAX_FLOAT + 0x1000, 1, iVals)"); vgGetfv((VGParamType)(VG_MAX_FLOAT + 0x1000), 1, fVals); writeInt(f, vgGetError(), "vgGetfv(VG_MAX_FLOAT + 0x1000, 1, fVals)"); // it must generate an error code because paramType refers to a vector parameter vgSeti(VG_SCISSOR_RECTS, 1); writeInt(f, vgGetError(), "vgSeti(VG_SCISSOR_RECTS, 1)"); vgSetf(VG_SCISSOR_RECTS, 1); writeInt(f, vgGetError(), "vgSetf(VG_SCISSOR_RECTS, 1)"); vgSeti(VG_STROKE_DASH_PATTERN, 1); writeInt(f, vgGetError(), "vgSeti(VG_STROKE_DASH_PATTERN, 1)"); vgSetf(VG_STROKE_DASH_PATTERN, 1); writeInt(f, vgGetError(), "vgSetf(VG_STROKE_DASH_PATTERN, 1)"); vgSeti(VG_TILE_FILL_COLOR, 1); writeInt(f, vgGetError(), "vgSeti(VG_TILE_FILL_COLOR, 1)"); vgSetf(VG_TILE_FILL_COLOR, 1); writeInt(f, vgGetError(), "vgSetf(VG_TILE_FILL_COLOR, 1)"); vgSeti(VG_CLEAR_COLOR, 1); writeInt(f, vgGetError(), "vgSeti(VG_CLEAR_COLOR, 1)"); vgSetf(VG_CLEAR_COLOR, 1); writeInt(f, vgGetError(), "vgSetf(VG_CLEAR_COLOR, 1)"); // it must generate an error code becauseparamType refers to a scalar parameter in vgSetfv or vgSetiv and count is not equal to 1 vgSetiv(VG_MATRIX_MODE, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_MATRIX_MODE, 3, iVals)"); vgSetfv(VG_MATRIX_MODE, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_MATRIX_MODE, 3, fVals)"); vgSetiv(VG_FILL_RULE, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_FILL_RULE, 3, iVals)"); vgSetfv(VG_FILL_RULE, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_FILL_RULE, 3, fVals)"); vgSetiv(VG_IMAGE_QUALITY, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_IMAGE_QUALITY, 3, iVals)"); vgSetfv(VG_IMAGE_QUALITY, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_IMAGE_QUALITY, 3, fVals)"); vgSetiv(VG_RENDERING_QUALITY, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_RENDERING_QUALITY, 3, iVals)"); vgSetfv(VG_RENDERING_QUALITY, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_RENDERING_QUALITY, 3, fVals)"); vgSetiv(VG_BLEND_MODE, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_BLEND_MODE, 3, iVals)"); vgSetfv(VG_BLEND_MODE, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_BLEND_MODE, 3, fVals)"); vgSetiv(VG_IMAGE_MODE, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_IMAGE_MODE, 3, iVals)"); vgSetfv(VG_IMAGE_MODE, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_IMAGE_MODE, 3, fVals)"); vgSetiv(VG_STROKE_LINE_WIDTH, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_STROKE_LINE_WIDTH, 3, iVals)"); vgSetfv(VG_STROKE_LINE_WIDTH, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_STROKE_LINE_WIDTH, 3, fVals)"); vgSetiv(VG_STROKE_CAP_STYLE, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_STROKE_CAP_STYLE, 3, iVals)"); vgSetfv(VG_STROKE_CAP_STYLE, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_STROKE_CAP_STYLE, 3, fVals)"); vgSetiv(VG_STROKE_JOIN_STYLE, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_STROKE_JOIN_STYLE, 3, iVals)"); vgSetfv(VG_STROKE_JOIN_STYLE, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_STROKE_JOIN_STYLE, 3, fVals)"); vgSetiv(VG_STROKE_MITER_LIMIT, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_STROKE_MITER_LIMIT, 3, iVals)"); vgSetfv(VG_STROKE_MITER_LIMIT, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_STROKE_MITER_LIMIT, 3, fVals)"); vgSetiv(VG_STROKE_DASH_PHASE, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_STROKE_DASH_PHASE, 3, iVals)"); vgSetfv(VG_STROKE_DASH_PHASE, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_STROKE_DASH_PHASE, 3, fVals)"); vgSetiv(VG_MASKING, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_MASKING, 3, iVals)"); vgSetfv(VG_MASKING, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_MASKING, 3, fVals)"); vgSetiv(VG_SCISSORING, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_SCISSORING, 3, iVals)"); vgSetfv(VG_SCISSORING, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_SCISSORING, 3, fVals)"); vgSetiv(VG_PIXEL_LAYOUT, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_PIXEL_LAYOUT, 3, iVals)"); vgSetfv(VG_PIXEL_LAYOUT, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_PIXEL_LAYOUT, 3, fVals)"); vgSetiv(VG_FILTER_FORMAT_LINEAR, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_FILTER_FORMAT_LINEAR, 3, iVals)"); vgSetfv(VG_FILTER_FORMAT_LINEAR, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_FILTER_FORMAT_LINEAR, 3, fVals)"); vgSetiv(VG_FILTER_FORMAT_PREMULTIPLIED, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_FILTER_FORMAT_PREMULTIPLIED, 3, iVals)"); vgSetfv(VG_FILTER_FORMAT_PREMULTIPLIED, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_FILTER_FORMAT_PREMULTIPLIED, 3, fVals)"); vgSetiv(VG_FILTER_CHANNEL_MASK, 3, iVals); writeInt(f, vgGetError(), "vgSetiv(VG_FILTER_CHANNEL_MASK, 3, iVals)"); vgSetfv(VG_FILTER_CHANNEL_MASK, 3, fVals); writeInt(f, vgGetError(), "vgSetfv(VG_FILTER_CHANNEL_MASK, 3, fVals)"); // it must generate an error code because values is NULL in vgSetfv or vgSetiv and count is greater than 0 vgSetiv(VG_SCISSOR_RECTS, 1, NULL); writeInt(f, vgGetError(), "vgSeti(VG_SCISSOR_RECTS, 1, NULL)"); vgSetfv(VG_SCISSOR_RECTS, 1, NULL); writeInt(f, vgGetError(), "vgSetf(VG_SCISSOR_RECTS, 1, NULL)"); // it must generate an error code because count is less than 0 vgSetiv(VG_SCISSOR_RECTS, -1, iVals); writeInt(f, vgGetError(), "vgSeti(VG_SCISSOR_RECTS, -1, iVals)"); vgSetfv(VG_SCISSOR_RECTS, -1, fVals); writeInt(f, vgGetError(), "vgSetf(VG_SCISSOR_RECTS, -1, fVals)"); // it must generate an error code because values is not properly aligned in vgSetfv or vgSetiv vgSetfv(VG_SCISSOR_RECTS, 9, scissorRects); writeInt(f, vgGetError(), "vgSetfv(VG_SCISSOR_RECTS, 9, scissorRects)"); // it must generate an error code because value is not a legal enumerated value for the given parameter in vgSetf or vgSeti vgSeti(VG_MATRIX_MODE, VG_RENDERING_QUALITY_NONANTIALIASED); writeInt(f, vgGetError(), "vgSeti(VG_MATRIX_MODE, VG_RENDERING_QUALITY_NONANTIALIASED)"); vgSetf(VG_MATRIX_MODE, VG_RENDERING_QUALITY_NONANTIALIASED); writeInt(f, vgGetError(), "vgSetf(VG_MATRIX_MODE, VG_RENDERING_QUALITY_NONANTIALIASED)"); vgSeti(VG_FILL_RULE, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSeti(VG_FILL_RULE, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSetf(VG_FILL_RULE, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSetf(VG_FILL_RULE, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSeti(VG_IMAGE_QUALITY, VG_PIXEL_LAYOUT_RGB_VERTICAL); writeInt(f, vgGetError(), "vgSeti(VG_IMAGE_QUALITY, VG_PIXEL_LAYOUT_RGB_VERTICAL)"); vgSetf(VG_IMAGE_QUALITY, VG_PIXEL_LAYOUT_RGB_VERTICAL); writeInt(f, vgGetError(), "vgSetf(VG_IMAGE_QUALITY, VG_PIXEL_LAYOUT_RGB_VERTICAL)"); vgSeti(VG_RENDERING_QUALITY, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSeti(VG_RENDERING_QUALITY, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSetf(VG_RENDERING_QUALITY, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSetf(VG_RENDERING_QUALITY, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSeti(VG_BLEND_MODE, VG_EVEN_ODD); writeInt(f, vgGetError(), "vgSeti(VG_BLEND_MODE, VG_EVEN_ODD)"); vgSetf(VG_BLEND_MODE, VG_EVEN_ODD); writeInt(f, vgGetError(), "vgSetf(VG_BLEND_MODE, VG_EVEN_ODD)"); vgSeti(VG_IMAGE_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSeti(VG_IMAGE_MODE, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSetf(VG_IMAGE_MODE, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSetf(VG_IMAGE_MODE, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSeti(VG_STROKE_CAP_STYLE, VG_JOIN_ROUND); writeInt(f, vgGetError(), "vgSeti(VG_STROKE_CAP_STYLE, VG_JOIN_ROUND)"); vgSetf(VG_STROKE_CAP_STYLE, VG_JOIN_ROUND); writeInt(f, vgGetError(), "vgSetf(VG_STROKE_CAP_STYLE, VG_JOIN_ROUND)"); vgSeti(VG_STROKE_JOIN_STYLE, VG_CAP_BUTT); writeInt(f, vgGetError(), "vgSeti(VG_STROKE_JOIN_STYLE, VG_CAP_BUTT)"); vgSetf(VG_STROKE_JOIN_STYLE, VG_CAP_BUTT); writeInt(f, vgGetError(), "vgSetf(VG_STROKE_JOIN_STYLE, VG_CAP_BUTT)"); vgSeti(VG_PIXEL_LAYOUT, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSeti(VG_PIXEL_LAYOUT, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSetf(VG_PIXEL_LAYOUT, VG_MATRIX_PATH_USER_TO_SURFACE); writeInt(f, vgGetError(), "vgSetf(VG_PIXEL_LAYOUT, VG_MATRIX_PATH_USER_TO_SURFACE)"); vgSeti(VG_FILTER_CHANNEL_MASK, 0xFFFFFF); writeInt(f, vgGetError(), "vgSeti(VG_FILTER_CHANNEL_MASK, 0xFFFFFF)"); vgSetf(VG_FILTER_CHANNEL_MASK, 24.4f); writeInt(f, vgGetError(), "vgSetf(VG_FILTER_CHANNEL_MASK, 24.4f)"); vgSeti(VG_FILTER_CHANNEL_MASK, -1); writeInt(f, vgGetError(), "vgSeti(VG_FILTER_CHANNEL_MASK, -1)"); vgSeti(VG_FILTER_CHANNEL_MASK, 0); writeInt(f, vgGetError(), "vgSeti(VG_FILTER_CHANNEL_MASK, 0)"); /* Taken from OpenVG 1.0 public specifications: "The count parameter used by the array variants (ending with iv or fv) limits the number of values that are read from the values array parameter. For parameters that require a fixed number of values (e.g., color values of type VGfloat[4]), required values beyond the first count values are given a value of 0;" According to these specifications, the following code must not return errors, and set tha last 2 color components to 0.0f; AmanithVG is compliant with this specification, Rasteroid2 no. vgSetfv(VG_TILE_FILL_COLOR, 2, tileFillColor); writeInt(f, vgGetError(), "vgSetfv(VG_TILE_FILL_COLOR, 2, tileFillColor)"); vgGetfv(VG_TILE_FILL_COLOR, 4, tileFillColor); writeFloats(f, tileFillColor, 4, ""); vgSetfv(VG_CLEAR_COLOR, 2, clearColor); writeInt(f, vgGetError(), "vgSetfv(VG_CLEAR_COLOR, 2, clearColor)"); vgGetfv(VG_CLEAR_COLOR, 4, clearColor); writeFloats(f, clearColor, 4, ""); */