1460962077-802e7d8f-b834-4461-9fe7-f5d96d8df996

1. A method, implemented by a computer system programmed to perform the following, comprising:
sending, by the computer system, a request to a guest that runs on a virtual machine hosted by the computer system for hotplug removal of a device associated with the guest;
detecting, by the computer system, an indication of reboot of the guest; and
completing the hotplug removal in response to detection of the reboot.
2. The method of claim 1, wherein detecting an indication of reboot of the guest further comprises:
monitoring, by a hypervisor in the computer system, commands issued from the guest.
3. The method of claim 1, wherein detecting an indication of reboot of the guest further comprises:
trapping, by a hypervisor in the computer system, a command issued from the guest, the command indicating that the guest is to be rebooted.
4. The method of claim 3, wherein the command is a power down command or a reboot command.
5. The method of claim 1, wherein detecting an indication of reboot of the guest further comprises:
trapping, by a hypervisor in the computer system, an interrupt generated by a source external to the guest, the interrupt indicating that the guest is to be rebooted.
6. The method of claim 1, wherein detecting an indication of reboot of the guest further comprises:
initiating, by a hypervisor in the computer system, the reboot of the guest by resetting the guest and the virtual machine.
7. The method of claim 1, wherein a hypervisor in the computer system completes hotplug removal of the device without waiting for a response to the request from the guest.
8. A system comprising:
a computer system that host a virtual machine that runs a guest, the computer system includes a hotplug manager that sends a request to the guest for hotplug removal of a device associated with the guest, detects an indication of reboot of the guest, and completes the hotplug removal in response to detection of the reboot; and
data storage to store a device data structure that is accessible by the hotplug manager for management of the device for the guest.
9. The system of claim 8, wherein the hotplug manager is part of a hypervisor in the computer system.
10. The system of claim 8, wherein a hypervisor in the computer system traps a command issued from the guest, wherein the command indicates that the guest is to be rebooted.
11. The system of claim 8, wherein a hypervisor in the computer system traps an interrupt generated by a source external to the guest, wherein the interrupt indicates that the guest is to be rebooted.
12. The system of claim 8, wherein a hypervisor in the computer system initiates the reboot of the guest by resetting the guest and the virtual machine.
13. The system of claim 8, wherein the device is a physical hardware device.
14. The system of claim 8, wherein the device is an emulated device that is emulated by a hypervisor in the computer system.
15. A non-transitory computer readable storage medium including instructions that, when executed by a processing system, cause the processing system to perform a method comprising:
sending a request, to a guest that runs on a virtual machine hosted by a computer system, for hotplug removal of a device associated with the guest;
detecting an indication of reboot of the guest; and
completing the hotplug removal in response to detection of the reboot.
16. The computer readable storage medium of claim 15, wherein detecting an indication of reboot of the guest further comprises:
trapping, by a hypervisor in the computer system, a command issued from the guest, the command indicating that the guest is to be rebooted.
17. The computer readable storage medium of claim 15, wherein detecting an indication of reboot of the guest further comprises:
trapping, by a hypervisor in the computer system, an interrupt generated by a source external to the guest, the interrupt indicating that the guest is to be rebooted.
18. The computer readable storage medium of claim 15, wherein detecting an indication of reboot of the guest further comprises:
initiating, by a hypervisor in the computer system, the reboot of the guest by resetting the guest and the virtual machine.
19. The computer readable storage medium of claim 15, wherein the indication of reboot is a power down command or a reboot command.
20. The computer readable storage medium of claim 15, wherein a hypervisor in the computer system completes hotplug removal of the device without waiting for a response to the request from the guest.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. In a computer-implemented image generation system, wherein image elements are provided to a processor for rendering into an image and wherein at least some of the image elements correspond to simulated paint strokes, a method comprising:
receiving parameters of a three-dimensional scalar field defining a three-dimensional virtual space;
receiving a selection of a three-dimensional object in the three-dimensional scalar field;
receiving from an input device two-dimensional positions of simulated paint strokes;
associating the simulated paint strokes with the three-dimensional object positioned in the three-dimensional scalar field, wherein the simulated paint strokes do not alter the shape of the three-dimensional object; and
based on the three-dimensional scalar field and two-dimensional positions of the simulated paint strokes, determining depth information for the simulated paint strokes, thereby positioning the simulated paint strokes in the three-dimensional virtual space, usable as representations for image elements to be provided to the processor for rendering into an image.
2. The method of claim 1, wherein the parameters of the three-dimensional scalar field correspond to an implicit canvas distinct from objects in a scene, and wherein depth information for the strokes is determined based on intersections of the simulated paint strokes and the implicit canvas.
3. The method of claim 1, wherein the parameters of the three-dimensional scalar field define an implicit canvas that is derived from an object in the three-dimensional virtual space, and includes surface portions not coincident with a surface of the object.
4. The method of claim 1, wherein the parameters of the three-dimensional scalar field include settings for both ends of a stroke, thereby allowing each end of the stroke to be on distinct levels in a three-dimensional scalar field.
5. The method of claim 1, wherein the parameters of the three-dimensional scalar field include settings for the simulated paint strokes, including settings for level constraints, angle constraints and arc length constraints.
6. The method of claim 1, further comprising:
accepting stroke inputs for altering the three-dimensional scalar field; and
altering a stored representation of the three-dimensional scalar field as an implicit canvas having a surface modified according to the accepted stroke inputs.
7. The method of claim 1, wherein the simulated paint strokes are one or more of a brush stroke, a pen stroke, a pencil stroke, an input line, or a mark made by the user.
8. The method of claim 1, further comprising:
evaluating a level distance term for points on each of a plurality of the simulated paint strokes, wherein the level distance term represents a target distance from a proxy geometry surface;
evaluating an angle term for each of the simulated paint strokes, wherein the angle term represents an objective for curvature of one of the simulated paint strokes;
evaluating an arc length term for each of the simulated paint strokes, wherein the arc length term represents an objective for collective length of segments of one of the simulated paint strokes; and
evaluating a weighted sum of the level distance term, the angle term and the arc length term in determining the depth information for the simulated paint strokes.
9. A computer-readable medium, for use with a computer-implemented image generation system, wherein image elements are provided to a processor for rendering into an image and wherein at least some of the image elements correspond to simulated paint strokes, the computer-readable medium having stored thereon, in non-transitory form, program code, executable, directly or indirectly, comprising:
program code for receiving parameters of a three-dimensional scalar field defining a three-dimensional virtual space;
program code for receiving a selection of a three-dimensional object in the three-dimensional scalar field;
program code for accepting from an input device a plurality of input elements corresponding to simulated paint strokes, wherein the input device provides two-dimensional specifications of the simulated paint strokes;
program code for associating the simulated paint strokes with the three-dimensional object positioned in the three-dimensional scalar field, wherein the simulated paint strokes do not alter the shape of the three-dimensional object; and
program code for determining, based on the three-dimensional scalar field and two-dimensional positions of the simulated paint strokes, depth information for the strokes, thereby positioning the simulated paint strokes in the three-dimensional virtual space, usable as representations for image elements to be provided to the processor for rendering into an image.
10. The computer readable medium of claim 9, wherein the parameters of the three-dimensional scalar field correspond to an implicit canvas distinct from objects in a scene, further comprising program code for determining depth information for the simulated paint strokes based on intersections of the simulated paint strokes and the implicit canvas.
11. The computer readable medium of claim 9, wherein the parameters of the three-dimensional scalar field define an implicit canvas that is derived from an object in the three-dimensional virtual space, and includes surface portions not coincident with a surface of the object.
12. The computer readable medium of claim 9, wherein the parameters of the three-dimensional scalar field include settings for both ends of a stroke, further comprising program code for processing or storing strokes such that each end of the stroke is on distinct levels in a three-dimensional scalar field.
13. The computer readable medium of claim 9, wherein the parameters of the three-dimensional scalar field include settings for simulated paint strokes, including settings for level constraints, angle constraints and arc length constraints, further comprising program code for processing the settings for level constraints, angle constraints and arc length constraints.
14. The computer readable medium of claim 9, further comprising:
program code for accepting stroke inputs for altering the three-dimensional scalar field; and
program code for altering a stored representation of the three-dimensional scalar field as an implicit canvas having a surface modified according to the accepted stroke inputs.
15. The computer readable medium of claim 9, wherein the simulated paint strokes are one or more of a brush stroke, a pen stroke, a pencil stroke, an input line, or a mark made by the user.
16. The computer readable medium of claim 9, wherein the program code for determining comprises:
program code for evaluating a level distance term for points on each of a plurality of simulated paint strokes, wherein the level distance term represents a target distance from a proxy geometry surface;
program code for evaluating an angle term for each of the simulated paint strokes, wherein the angle term represents an objective for curvature of one of the simulated paint strokes;
program code for evaluating an arc length term for each of the simulated paint strokes, wherein the arc length term represents an objective for collective length of segments of one of the simulated paint strokes; and
program code for evaluating a weighted sum of the level distance term, the angle term and the arc length term in determining the depth information for the simulated paint strokes.
17. A drawing system for generating representations of images based in part on user inputs, comprising:
a processor for executing instructions and modifying stored data structures;
memory for storing the data structures;
a display, coupled to the processor, for providing visual representations of at least some image elements stored in the data structures, wherein at least some of the image elements correspond to simulate paint strokes;
an input device for receiving a selection of a three-dimensional object in a three-dimensional scalar field;
an input device for accepting a plurality of input elements corresponding to the simulated paint strokes, wherein the input device provides two-dimensional specifications of the simulated paint strokes;
storage for parameters of the three-dimensional scalar field defining a three-dimensional virtual space;
a module for associating the simulated paint strokes with the selected three-dimensional object positioned in the three-dimensional scalar field, wherein the simulated paint strokes do not alter the shape of the three-dimensional object
a module for determining depth information for the input simulated paint strokes based on the three-dimensional scalar field; and
a rendering engine for rendering images based on the image elements corresponding to the simulated paint strokes, wherein simulated paint strokes input with two-dimensional specifications are represented in a three-dimensional virtual space based on the depth information.
18. The drawing system of claim 17, wherein the parameters of the three-dimensional scalar field correspond to an implicit canvas distinct from objects in a scene, and wherein depth information for the simulated paint strokes is based on intersections of the simulated paint strokes and the implicit canvas.
19. The drawing system of claim 17, wherein the parameters of the three-dimensional scalar field define an implicit canvas that is derived from an object in the three-dimensional virtual space, and includes surface portions not coincident with a surface of the object.
20. The drawing system of claim 17, wherein the parameters of the three-dimensional scalar field include settings for both ends of a stroke, thereby allowing each end of the stroke to be on distinct levels in a three-dimensional scalar field.
21. The drawing system of claim 17, wherein the parameters of the three-dimensional scalar field include settings for the simulated paint strokes, including settings for level constraints, angle constraints and arc length constraints.
22. The drawing system of claim 17, wherein the simulated paint strokes are one or more of a brush stroke, a pen stroke, a pencil stroke, an input line, or a mark made by the user.
23. The drawing system of claim 17, wherein the module for determining depth information for the input strokes based on the three-dimensional scalar field is configured to determine positions of the simulated paint strokes based on a weighted sum of (a) a level distance term for points on each of a plurality of the simulated paint strokes, wherein the level distance term represents a target distance from a proxy geometry surface, (b) an angle term for each of the simulated paint strokes, wherein the angle term represents an objective for curvature of a stroke, and (c) an arc length term for each of the simulated paint strokes, wherein the arc length term represents an objective for collective length of segments of a stroke.