<?xml version="1.0" encoding="UTF-8"?>
<!--
	Kernel API
	
	Copyright 2021-2024 MicroEJ Corp. All rights reserved.
	Use of this source code is governed by a BSD-style license that can be found with this software.
-->
<require>
	<type name="ej.microvg.BlendMode"/>
	<field name="ej.microvg.BlendMode.DST_IN"/>
	<field name="ej.microvg.BlendMode.DST_OUT"/>
	<field name="ej.microvg.BlendMode.DST_OVER"/>
	<field name="ej.microvg.BlendMode.MULTIPLY"/>
	<field name="ej.microvg.BlendMode.PLUS"/>
	<field name="ej.microvg.BlendMode.SCREEN"/>
	<field name="ej.microvg.BlendMode.SRC"/>
	<field name="ej.microvg.BlendMode.SRC_IN"/>
	<field name="ej.microvg.BlendMode.SRC_OVER"/>
	<method name="ej.microvg.BlendMode.valueOf(java.lang.String)ej.microvg.BlendMode"/>
	<method name="ej.microvg.BlendMode.values()ej.microvg.BlendMode[]"/>

	<type name="ej.microvg.BufferedVectorImage"/>
	<method name="ej.microvg.BufferedVectorImage.BufferedVectorImage(int,int)void"/>
	<method name="ej.microvg.BufferedVectorImage.clear()void"/>
	<method name="ej.microvg.BufferedVectorImage.getGraphicsContext()ej.microui.display.GraphicsContext"/>

	<type name="ej.microvg.LinearGradient"/>
	<method name="ej.microvg.LinearGradient.LinearGradient(float,float,float,float,int[])void"/>
	<method name="ej.microvg.LinearGradient.LinearGradient(float,float,float,float,int[],float[])void"/>
	<method name="ej.microvg.LinearGradient.getMatrix()ej.microvg.Matrix"/>

	<type name="ej.microvg.Matrix"/>
	<method name="ej.microvg.Matrix.Matrix()void"/>
	<method name="ej.microvg.Matrix.Matrix(ej.microvg.Matrix)void"/>
	<method name="ej.microvg.Matrix.postConcat(ej.microvg.Matrix)void"/>
	<method name="ej.microvg.Matrix.postRotate(float)void"/>
	<method name="ej.microvg.Matrix.postScale(float,float)void"/>
	<method name="ej.microvg.Matrix.postTranslate(float,float)void"/>
	<method name="ej.microvg.Matrix.preConcat(ej.microvg.Matrix)void"/>
	<method name="ej.microvg.Matrix.preRotate(float)void"/>
	<method name="ej.microvg.Matrix.preScale(float,float)void"/>
	<method name="ej.microvg.Matrix.preTranslate(float,float)void"/>
	<method name="ej.microvg.Matrix.reset()void"/>
	<method name="ej.microvg.Matrix.set(ej.microvg.Matrix)void"/>
	<method name="ej.microvg.Matrix.setConcat(ej.microvg.Matrix,ej.microvg.Matrix)void"/>
	<method name="ej.microvg.Matrix.setRotate(float)void"/>
	<method name="ej.microvg.Matrix.setScale(float,float)void"/>
	<method name="ej.microvg.Matrix.setTranslate(float,float)void"/>

	<type name="ej.microvg.Path"/>
	<method name="ej.microvg.Path.Path()void"/>
	<method name="ej.microvg.Path.close()void"/>
	<method name="ej.microvg.Path.cubicTo(float,float,float,float,float,float)void"/>
	<method name="ej.microvg.Path.cubicToRelative(float,float,float,float,float,float)void"/>
	<method name="ej.microvg.Path.getBottomBound()float"/>
	<method name="ej.microvg.Path.getLeftBound()float"/>
	<method name="ej.microvg.Path.getRightBound()float"/>
	<method name="ej.microvg.Path.getTopBound()float"/>
	<method name="ej.microvg.Path.lineTo(float,float)void"/>
	<method name="ej.microvg.Path.lineToRelative(float,float)void"/>
	<method name="ej.microvg.Path.moveTo(float,float)void"/>
	<method name="ej.microvg.Path.moveToRelative(float,float)void"/>
	<method name="ej.microvg.Path.quadTo(float,float,float,float)void"/>
	<method name="ej.microvg.Path.quadToRelative(float,float,float,float)void"/>
	<method name="ej.microvg.Path.reset()void"/>
	<method name="ej.microvg.Path.setOrigin(float,float)void"/>

	<type name="ej.microvg.ResourceVectorImage"/>
	<method name="ej.microvg.ResourceVectorImage.close()void"/>
	<method name="ej.microvg.ResourceVectorImage.isClosed()boolean"/>
	<method name="ej.microvg.ResourceVectorImage.loadImage(java.lang.String)ej.microvg.ResourceVectorImage"/>

	<type name="ej.microvg.VectorFont"/>
	<method name="ej.microvg.VectorFont.close()void"/>
	<method name="ej.microvg.VectorFont.getBaselinePosition(float)float"/>
	<method name="ej.microvg.VectorFont.getFont(int)ej.microui.display.Font"/>
	<method name="ej.microvg.VectorFont.getHeight(float)float"/>
	<method name="ej.microvg.VectorFont.isClosed()boolean"/>
	<method name="ej.microvg.VectorFont.loadFont(java.lang.String)ej.microvg.VectorFont"/>
	<method name="ej.microvg.VectorFont.loadFont(java.lang.String,boolean)ej.microvg.VectorFont"/>
	<method name="ej.microvg.VectorFont.measureStringHeight(java.lang.String,float)float"/>
	<method name="ej.microvg.VectorFont.measureStringWidth(java.lang.String,float)float"/>
	<method name="ej.microvg.VectorFont.measureStringWidth(java.lang.String,float,float)float"/>

	<type name="ej.microvg.VectorGraphicsException"/>
	<field name="ej.microvg.VectorGraphicsException.FONT_INVALID"/>
	<field name="ej.microvg.VectorGraphicsException.FONT_INVALID_PATH"/>
	<field name="ej.microvg.VectorGraphicsException.IMAGE_INVALID"/>
	<field name="ej.microvg.VectorGraphicsException.IMAGE_INVALID_PATH"/>
	<field name="ej.microvg.VectorGraphicsException.IMAGE_OVERLAPPING_ELEMENTS"/>
	<field name="ej.microvg.VectorGraphicsException.IMAGE_PARSING_ERROR"/>
	<field name="ej.microvg.VectorGraphicsException.NO_COMPLEX_LAYOUTER_ERROR"/>
	<field name="ej.microvg.VectorGraphicsException.OUT_OF_MEMORY"/>
	<field name="ej.microvg.VectorGraphicsException.RESOURCE_CLOSED"/>
	<method name="ej.microvg.VectorGraphicsException.VectorGraphicsException(int)void"/>
	<method name="ej.microvg.VectorGraphicsException.getErrorCode()int"/>

	<type name="ej.microvg.VectorGraphicsPainter"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawAnimatedImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,ej.microvg.Matrix,long)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawAnimatedImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,ej.microvg.Matrix,long,int)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawAnimatedImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,float,float,long)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawFilteredAnimatedImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,ej.microvg.Matrix,long,float[])void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawFilteredImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,ej.microvg.Matrix,float[])void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawGradientString(ej.microui.display.GraphicsContext,java.lang.String,ej.microvg.VectorFont,float,ej.microvg.Matrix,ej.microvg.LinearGradient,int,ej.microvg.BlendMode,float)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawGradientStringOnCircle(ej.microui.display.GraphicsContext,java.lang.String,ej.microvg.VectorFont,float,ej.microvg.Matrix,ej.microvg.LinearGradient,float,ej.microvg.VectorGraphicsPainter$Direction,int,ej.microvg.BlendMode,float)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,ej.microvg.Matrix)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,ej.microvg.Matrix,int)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawImage(ej.microui.display.GraphicsContext,ej.microvg.VectorImage,float,float)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawString(ej.microui.display.GraphicsContext,java.lang.String,ej.microvg.VectorFont,float,ej.microvg.Matrix,int,ej.microvg.BlendMode,float)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawString(ej.microui.display.GraphicsContext,java.lang.String,ej.microvg.VectorFont,float,float,float)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawStringOnCircle(ej.microui.display.GraphicsContext,java.lang.String,ej.microvg.VectorFont,float,ej.microvg.Matrix,float,ej.microvg.VectorGraphicsPainter$Direction)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.drawStringOnCircle(ej.microui.display.GraphicsContext,java.lang.String,ej.microvg.VectorFont,float,ej.microvg.Matrix,float,ej.microvg.VectorGraphicsPainter$Direction,int,ej.microvg.BlendMode,float)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.fillGradientPath(ej.microui.display.GraphicsContext,ej.microvg.Path,ej.microvg.Matrix,ej.microvg.LinearGradient)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.fillGradientPath(ej.microui.display.GraphicsContext,ej.microvg.Path,ej.microvg.Matrix,ej.microvg.LinearGradient,ej.microvg.VectorGraphicsPainter$FillType,int,ej.microvg.BlendMode)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.fillPath(ej.microui.display.GraphicsContext,ej.microvg.Path,ej.microvg.Matrix)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.fillPath(ej.microui.display.GraphicsContext,ej.microvg.Path,ej.microvg.Matrix,ej.microvg.VectorGraphicsPainter$FillType,int,ej.microvg.BlendMode)void"/>
	<method name="ej.microvg.VectorGraphicsPainter.fillPath(ej.microui.display.GraphicsContext,ej.microvg.Path,float,float)void"/>

	<type name="ej.microvg.VectorGraphicsPainter$Direction"/>
	<field name="ej.microvg.VectorGraphicsPainter$Direction.CLOCKWISE"/>
	<field name="ej.microvg.VectorGraphicsPainter$Direction.COUNTER_CLOCKWISE"/>
	<method name="ej.microvg.VectorGraphicsPainter$Direction.valueOf(java.lang.String)ej.microvg.VectorGraphicsPainter$Direction"/>
	<method name="ej.microvg.VectorGraphicsPainter$Direction.values()ej.microvg.VectorGraphicsPainter$Direction[]"/>

	<type name="ej.microvg.VectorGraphicsPainter$FillType"/>
	<field name="ej.microvg.VectorGraphicsPainter$FillType.EVEN_ODD"/>
	<field name="ej.microvg.VectorGraphicsPainter$FillType.WINDING"/>
	<method name="ej.microvg.VectorGraphicsPainter$FillType.valueOf(java.lang.String)ej.microvg.VectorGraphicsPainter$FillType"/>
	<method name="ej.microvg.VectorGraphicsPainter$FillType.values()ej.microvg.VectorGraphicsPainter$FillType[]"/>

	<type name="ej.microvg.VectorImage"/>
	<method name="ej.microvg.VectorImage.filterImage(float[])ej.microvg.ResourceVectorImage"/>
	<method name="ej.microvg.VectorImage.getDuration()long"/>
	<method name="ej.microvg.VectorImage.getHeight()float"/>
	<method name="ej.microvg.VectorImage.getImage(java.lang.String)ej.microvg.VectorImage"/>
	<method name="ej.microvg.VectorImage.getWidth()float"/>

	<type name="ej.microvg.VectorImageBuilder"/>
	<method name="ej.microvg.VectorImageBuilder.VectorImageBuilder(float,float)void"/>
	<method name="ej.microvg.VectorImageBuilder.addGradientPath(ej.microvg.Path,ej.microvg.LinearGradient,ej.microvg.VectorGraphicsPainter$FillType)ej.microvg.VectorImageBuilder"/>
	<method name="ej.microvg.VectorImageBuilder.addPath(ej.microvg.Path,int,ej.microvg.VectorGraphicsPainter$FillType)ej.microvg.VectorImageBuilder"/>
	<method name="ej.microvg.VectorImageBuilder.build()ej.microvg.ResourceVectorImage"/>

</require>
