# Serialized Form

- ## Package processing.core

  - ### Class processing.core.PApplet extends java.applet.Applet implements Serializable

    - ### Serialized Fields

      - #### g

            PGraphics g

        The PGraphics renderer associated with this PApplet

      - #### frame

            java.awt.Frame frame

        The frame containing this applet (if any)

      - #### useActive

            boolean useActive

      - #### useStrategy

            boolean useStrategy

      - #### canvas

            java.awt.Canvas canvas

      - #### revalidateMethod

            java.lang.reflect.Method revalidateMethod

      - #### displayWidth

            int displayWidth

        ( begin auto-generated from screenWidth.xml ) System variable which stores the width of the computer screen. For example, if the current screen resolution is 1024x768, displayWidth is 1024 and displayHeight is 768. These dimensions are useful when exporting full-screen applications.
        To ensure that the sketch takes over the entire screen, use "Present" instead of "Run". Otherwise the window will still have a frame border around it and not be placed in the upper corner of the screen. On Mac OS X, the menu bar will remain present unless "Present" mode is used. ( end auto-generated )

      - #### displayHeight

            int displayHeight

        ( begin auto-generated from screenHeight.xml ) System variable that stores the height of the computer screen. For example, if the current screen resolution is 1024x768, screenWidth is 1024 and screenHeight is 768. These dimensions are useful when exporting full-screen applications.
        To ensure that the sketch takes over the entire screen, use "Present" instead of "Run". Otherwise the window will still have a frame border around it and not be placed in the upper corner of the screen. On Mac OS X, the menu bar will remain present unless "Present" mode is used. ( end auto-generated )

      - #### recorder

            PGraphics recorder

        A leech graphics object that is echoing all events.

      - #### args

            java.lang.String[] args

        Command line options passed in from main().

        This does not include the arguments passed in to PApplet itself.

      - #### sketchPath

            java.lang.String sketchPath

        Path to sketch folder

      - #### defaultSize

            boolean defaultSize

        true if no size() command has been executed. This is used to wait until a size has been set before placing in the window and showing it.

      - #### currentSize

            java.awt.Dimension currentSize

        Storage for the current renderer size to avoid re-allocation.

      - #### pixels

            int[] pixels

        ( begin auto-generated from pixels.xml ) Array containing the values for all the pixels in the display window. These values are of the color datatype. This array is the size of the display window. For example, if the image is 100x100 pixels, there will be 10000 values and if the window is 200x300 pixels, there will be 60000 values. The index value defines the position of a value within the array. For example, the statement color b = pixels[230] will set the variable b to be equal to the value at that location in the array.
        Before accessing this array, the data must loaded with the loadPixels() function. After the array data has been modified, the updatePixels() function must be run to update the changes. Without loadPixels(), running the code may (or will in future releases) result in a NullPointerException. ( end auto-generated )
        See Also:
          `PApplet.loadPixels()`, `PApplet.updatePixels()`, `PApplet.get(int, int, int, int)`, `PApplet.set(int, int, int)`, `PImage`

      - #### width

            int width

        ( begin auto-generated from width.xml ) System variable which stores the width of the display window. This value is set by the first parameter of the size() function. For example, the function call size(320, 240) sets the width variable to the value 320. The value of width is zero until size() is called. ( end auto-generated )
        See Also:
          `PApplet.height`, `PApplet.size(int, int)`

      - #### height

            int height

        ( begin auto-generated from height.xml ) System variable which stores the height of the display window. This value is set by the second parameter of the size() function. For example, the function call size(320, 240) sets the height variable to the value 240. The value of height is zero until size() is called. ( end auto-generated )
        See Also:
          `PApplet.width`, `PApplet.size(int, int)`

      - #### mouseX

            int mouseX

        ( begin auto-generated from mouseX.xml ) The system variable mouseX always contains the current horizontal coordinate of the mouse. ( end auto-generated )
        See Also:
          `PApplet.mouseY`, `PApplet.pmouseX`, `PApplet.pmouseY`, `PApplet.mousePressed`, `PApplet.mousePressed()`, `PApplet.mouseReleased()`, `PApplet.mouseClicked()`, `PApplet.mouseMoved()`, `PApplet.mouseDragged()`, `PApplet.mouseButton`, `PApplet.mouseWheel(MouseEvent)`

      - #### mouseY

            int mouseY

        ( begin auto-generated from mouseY.xml ) The system variable mouseY always contains the current vertical coordinate of the mouse. ( end auto-generated )
        See Also:
          `PApplet.mouseX`, `PApplet.pmouseX`, `PApplet.pmouseY`, `PApplet.mousePressed`, `PApplet.mousePressed()`, `PApplet.mouseReleased()`, `PApplet.mouseClicked()`, `PApplet.mouseMoved()`, `PApplet.mouseDragged()`, `PApplet.mouseButton`, `PApplet.mouseWheel(MouseEvent)`

      - #### pmouseX

            int pmouseX

        ( begin auto-generated from pmouseX.xml ) The system variable pmouseX always contains the horizontal position of the mouse in the frame previous to the current frame.
        You may find that pmouseX and pmouseY have different values inside draw() and inside events like mousePressed() and mouseMoved(). This is because they're used for different roles, so don't mix them. Inside draw(), pmouseX and pmouseY update only once per frame (once per trip through your draw()). But, inside mouse events, they update each time the event is called. If they weren't separated, then the mouse would be read only once per frame, making response choppy. If the mouse variables were always updated multiple times per frame, using line(pmouseX, pmouseY, mouseX, mouseY) inside draw() would have lots of gaps, because pmouseX may have changed several times in between the calls to line(). Use pmouseX and pmouseY inside draw() if you want values relative to the previous frame. Use pmouseX and pmouseY inside the mouse functions if you want continuous response. ( end auto-generated )
        See Also:
          `PApplet.mouseX`, `PApplet.mouseY`, `PApplet.pmouseY`, `PApplet.mousePressed`, `PApplet.mousePressed()`, `PApplet.mouseReleased()`, `PApplet.mouseClicked()`, `PApplet.mouseMoved()`, `PApplet.mouseDragged()`, `PApplet.mouseButton`, `PApplet.mouseWheel(MouseEvent)`

      - #### pmouseY

            int pmouseY

        ( begin auto-generated from pmouseY.xml ) The system variable pmouseY always contains the vertical position of the mouse in the frame previous to the current frame. More detailed information about how pmouseY is updated inside of draw() and mouse events is explained in the reference for pmouseX. ( end auto-generated )
        See Also:
          `PApplet.mouseX`, `PApplet.mouseY`, `PApplet.pmouseX`, `PApplet.mousePressed`, `PApplet.mousePressed()`, `PApplet.mouseReleased()`, `PApplet.mouseClicked()`, `PApplet.mouseMoved()`, `PApplet.mouseDragged()`, `PApplet.mouseButton`, `PApplet.mouseWheel(MouseEvent)`

      - #### dmouseX

            int dmouseX

        previous mouseX/Y for the draw loop, separated out because this is separate from the pmouseX/Y when inside the mouse event handlers.

      - #### dmouseY

            int dmouseY

        previous mouseX/Y for the draw loop, separated out because this is separate from the pmouseX/Y when inside the mouse event handlers.

      - #### emouseX

            int emouseX

        pmouseX/Y for the event handlers (mousePressed(), mouseDragged() etc) these are different because mouse events are queued to the end of draw, so the previous position has to be updated on each event, as opposed to the pmouseX/Y that's used inside draw, which is expected to be updated once per trip through draw().

      - #### emouseY

            int emouseY

        pmouseX/Y for the event handlers (mousePressed(), mouseDragged() etc) these are different because mouse events are queued to the end of draw, so the previous position has to be updated on each event, as opposed to the pmouseX/Y that's used inside draw, which is expected to be updated once per trip through draw().

      - #### firstMouse

            boolean firstMouse

        Deprecated. Please refrain from using this variable, it will be removed from future releases of Processing because it cannot be used consistently across platforms and input methods.
        Used to set pmouseX/Y to mouseX/Y the first time mouseX/Y are used, otherwise pmouseX/Y are always zero, causing a nasty jump.

        Just using (frameCount == 0) won't work since mouseXxxxx() may not be called until a couple frames into things.

      - #### mouseButton

            int mouseButton

        ( begin auto-generated from mouseButton.xml ) Processing automatically tracks if the mouse button is pressed and which button is pressed. The value of the system variable mouseButton is either LEFT, RIGHT, or CENTER depending on which button is pressed. ( end auto-generated )

        ### Advanced:

        If running on Mac OS, a ctrl-click will be interpreted as the right-hand mouse button (unlike Java, which reports it as the left mouse).
        See Also:
          `PApplet.mouseX`, `PApplet.mouseY`, `PApplet.pmouseX`, `PApplet.pmouseY`, `PApplet.mousePressed`, `PApplet.mousePressed()`, `PApplet.mouseReleased()`, `PApplet.mouseClicked()`, `PApplet.mouseMoved()`, `PApplet.mouseDragged()`, `PApplet.mouseWheel(MouseEvent)`

      - #### mousePressed

            boolean mousePressed

        ( begin auto-generated from mousePressed_var.xml ) Variable storing if a mouse button is pressed. The value of the system variable mousePressed is true if a mouse button is pressed and false if a button is not pressed. ( end auto-generated )
        See Also:
          `PApplet.mouseX`, `PApplet.mouseY`, `PApplet.pmouseX`, `PApplet.pmouseY`, `PApplet.mousePressed()`, `PApplet.mouseReleased()`, `PApplet.mouseClicked()`, `PApplet.mouseMoved()`, `PApplet.mouseDragged()`, `PApplet.mouseButton`, `PApplet.mouseWheel(MouseEvent)`

      - #### mouseEvent

            MouseEvent mouseEvent

        Deprecated. Use a mouse event handler that passes an event instead.

      - #### key

            char key

        ( begin auto-generated from key.xml ) The system variable key always contains the value of the most recent key on the keyboard that was used (either pressed or released).
        For non-ASCII keys, use the keyCode variable. The keys included in the ASCII specification (BACKSPACE, TAB, ENTER, RETURN, ESC, and DELETE) do not require checking to see if they key is coded, and you should simply use the key variable instead of keyCode If you're making cross-platform projects, note that the ENTER key is commonly used on PCs and Unix and the RETURN key is used instead on Macintosh. Check for both ENTER and RETURN to make sure your program will work for all platforms. ( end auto-generated )

        ### Advanced

        Last key pressed.

        If it's a coded key, i.e. UP/DOWN/CTRL/SHIFT/ALT, this will be set to CODED (0xffff or 65535).

        See Also:
          `PApplet.keyCode`, `PApplet.keyPressed`, `PApplet.keyPressed()`, `PApplet.keyReleased()`

      - #### keyCode

            int keyCode

        ( begin auto-generated from keyCode.xml ) The variable keyCode is used to detect special keys such as the UP, DOWN, LEFT, RIGHT arrow keys and ALT, CONTROL, SHIFT. When checking for these keys, it's first necessary to check and see if the key is coded. This is done with the conditional "if (key == CODED)" as shown in the example.
        The keys included in the ASCII specification (BACKSPACE, TAB, ENTER, RETURN, ESC, and DELETE) do not require checking to see if they key is coded, and you should simply use the key variable instead of keyCode If you're making cross-platform projects, note that the ENTER key is commonly used on PCs and Unix and the RETURN key is used instead on Macintosh. Check for both ENTER and RETURN to make sure your program will work for all platforms.
        For users familiar with Java, the values for UP and DOWN are simply shorter versions of Java's KeyEvent.VK_UP and KeyEvent.VK_DOWN. Other keyCode values can be found in the Java KeyEvent reference. ( end auto-generated )

        ### Advanced

        When "key" is set to CODED, this will contain a Java key code.

        For the arrow keys, keyCode will be one of UP, DOWN, LEFT and RIGHT. Also available are ALT, CONTROL and SHIFT. A full set of constants can be obtained from java.awt.event.KeyEvent, from the VK_XXXX variables.

        See Also:
          `PApplet.key`, `PApplet.keyPressed`, `PApplet.keyPressed()`, `PApplet.keyReleased()`

      - #### keyPressed

            boolean keyPressed

        ( begin auto-generated from keyPressed_var.xml ) The boolean system variable keyPressed is true if any key is pressed and false if no keys are pressed. ( end auto-generated )
        See Also:
          `PApplet.key`, `PApplet.keyCode`, `PApplet.keyPressed()`, `PApplet.keyReleased()`

      - #### keyEvent

            KeyEvent keyEvent

        Deprecated. Use a key event handler that passes an event instead.
        The last KeyEvent object passed into a mouse function.

      - #### focused

            boolean focused

        ( begin auto-generated from focused.xml ) Confirms if a Processing program is "focused", meaning that it is active and will accept input from mouse or keyboard. This variable is "true" if it is focused and "false" if not. This variable is often used when you want to warn people they need to click on or roll over an applet before it will work. ( end auto-generated )

      - #### online

            boolean online

        Deprecated.
        Confirms if a Processing program is running inside a web browser. This variable is "true" if the program is online and "false" if not.

      - #### millisOffset

            long millisOffset

        Time in milliseconds when the applet was started.

        Used by the millis() function.

      - #### frameRate

            float frameRate

        ( begin auto-generated from frameRate_var.xml ) The system variable frameRate contains the approximate frame rate of the software as it executes. The initial value is 10 fps and is updated with each frame. The value is averaged (integrated) over several frames. As such, this value won't be valid until after 5-10 frames. ( end auto-generated )
        See Also:
          `PApplet.frameRate(float)`, `PApplet.frameCount`

      - #### frameRateLastNanos

            long frameRateLastNanos

        Last time in nanoseconds that frameRate was checked

      - #### frameRateTarget

            float frameRateTarget

        As of release 0116, frameRate(60) is called as a default

      - #### frameRatePeriod

            long frameRatePeriod

      - #### looping

            boolean looping

      - #### redraw

            boolean redraw

        flag set to true when a redraw is asked for by the user

      - #### frameCount

            int frameCount

        ( begin auto-generated from frameCount.xml ) The system variable frameCount contains the number of frames displayed since the program started. Inside setup() the value is 0 and and after the first iteration of draw it is 1, etc. ( end auto-generated )
        See Also:
          `PApplet.frameRate(float)`, `PApplet.frameRate`

      - #### finished

            boolean finished

        true if the sketch has stopped permanently.

      - #### paused

            boolean paused

        true if the animation thread is paused.

      - #### exitCalled

            boolean exitCalled

        true if exit() has been called so that things shut down once the main thread kicks off.

      - #### pauseObject

            java.lang.Object pauseObject

      - #### thread

            java.lang.Thread thread

      - #### external

            boolean external

        true if this sketch is being run by the PDE

      - #### retina

            boolean retina

        Not official API, using internally because of the tweaks required.

      - #### registerMap

            java.util.HashMap<K,V> registerMap

        Map of registered methods, stored by name.

      - #### mouseEventMethods

            processing.core.PApplet.RegisteredMethods mouseEventMethods

      - #### keyEventMethods

            processing.core.PApplet.RegisteredMethods keyEventMethods

      - #### insideDraw

            boolean insideDraw

      - #### eventQueue

            processing.core.PApplet.InternalEventQueue eventQueue

      - #### cursorType

            int cursorType

      - #### cursorVisible

            boolean cursorVisible

      - #### invisibleCursor

            java.awt.Cursor invisibleCursor

      - #### internalRandom

            java.util.Random internalRandom

      - #### perlin_octaves

            int perlin_octaves

      - #### perlin_amp_falloff

            float perlin_amp_falloff

      - #### perlin_TWOPI

            int perlin_TWOPI

      - #### perlin_PI

            int perlin_PI

      - #### perlin_cosTable

            float[] perlin_cosTable

      - #### perlin

            float[] perlin

      - #### perlinRandom

            java.util.Random perlinRandom

      - #### loadImageFormats

            java.lang.String[] loadImageFormats

      - #### requestImageMax

            int requestImageMax

        By trial and error, four image loading threads seem to work best when loading images from online. This is consistent with the number of open connections that web browsers will maintain. The variable is made public (however no accessor has been added since it's esoteric) if you really want to have control over the value used. For instance, when loading local files, it might be better to only have a single thread (or two) loading images so that you're disk isn't simply jumping around.

      - #### requestImageCount

            int requestImageCount

      - #### selectFrame

            java.awt.Frame selectFrame

  - ### Class processing.core.PApplet.RendererChangeException extends java.lang.RuntimeException implements Serializable

  - ### Class processing.core.PVector extends java.lang.Object implements Serializable

    serialVersionUID:
      -6717872085945400694L

    - ### Serialized Fields

      - #### x

            float x

        ( begin auto-generated from PVector_x.xml ) The x component of the vector. This field (variable) can be used to both get and set the value (see above example.) ( end auto-generated )

      - #### y

            float y

        ( begin auto-generated from PVector_y.xml ) The y component of the vector. This field (variable) can be used to both get and set the value (see above example.) ( end auto-generated )

      - #### z

            float z

        ( begin auto-generated from PVector_z.xml ) The z component of the vector. This field (variable) can be used to both get and set the value (see above example.) ( end auto-generated )

- ## Package processing.data

  - ### Class processing.data.XML extends java.lang.Object implements Serializable

    - ### Serialized Fields

      - #### node

            org.w3c.dom.Node node

        The internal representation, a DOM node.

      - #### parent

            XML parent

        The parent element.

      - #### children

            XML[] children

        Child elements, once loaded.