benfry / processing4 Goto Github PK
View Code? Open in Web Editor NEWProcessing 4.x releases for Java 17
Home Page: https://processing.org
License: Other
Processing 4.x releases for Java 17
Home Page: https://processing.org
License: Other
I'm wondering if there has been any work to create a Language Server for Processing yet. It would be very useful for people who would like to use the language outside of the Processing IDE like this project for VS Code. I'm not sure if I'll have time I'd love to help try to get it started if it hasn't been before!
When you press escape the sketch does not close.
This works in 3.5.3.
OSX 10.12.6
We've not used getModifiersEx()
in the past, because it (traditionally) has caused problems with some modifiers not being set properly. But now that it's deprecated, we need to make the switch and do a bunch of testing to make sure it's behaving the same way.
The fix is super easy. The debugging/testing is a bit time-consuming.
PShape s;
s = createShape();
translate(50, 50);
s.beginShape();
s.vertex(-40, -40);
s.vertex(40, -40);
s.vertex(40, 40);
s.vertex(-40, 40);
s.endShape(CLOSE);
s.beginShape();
s.beginContour();
s.vertex(-20, -20);
s.vertex(-20, 20);
s.vertex(20, 20);
s.vertex(20, -20);
s.endContour();
s.endShape();
shape(s);
this code came directly from the processing website (although shortened), yet it still doesnt work. https://processing.org/reference/PShape_beginContour_.html
Brand new user and programmer here! Hi everyone! Tried the troubleshooting guide and looking up existing issues first - I'm so sorry if this is already resolved... I'll attempt to provide as many details below as possible. Thank you so much in advance for your time and attention!
Unable to add Python mode - receiving this error message when I select (then click Install) 'Python Mode for Processing 3' by Jonathan Feinberg...
"Error during download and install of Python Mode for Processing 3."
1.Launch Processing
2.At the top right corner, click the "Java" button
3.Select "Add Mode" in the drop down
4.Select "Python Mode for Processing 3" & click "Install
This is a work laptop, I suspect the root cause may be networking.
Is there a way to manually download and install Python mode?
We've been surprised at how much frame.setResizable()
and frame.setTitle()
and others are being used, and we should make them into real API.
The switch from frame
to surface
between 2.x and 3.x was bumpier as a result.
Need to clean this up and get better behaviors for all of them:
setSize()
is erratic across rendererssetResizable()
can we make this a one-time operation in settings()
?setTitle()
is often used to output the fps of an app (a terrible idea, but there we are) so needs to happen at any time (or limited to settings()
to prevent that usage)Currently a couple warnings inside Table
about using canAccess()
instead of isAccessible()
. Just need to track down the correct way to re-implement.
I suspect the code in ContribProgressMonitor
and ContribProgressBar
can mostly be replaced with built-in Swing functions. The code appears to be adapted from old example code found on the web.
Did some work in 1ff826b to clear out parts of the Downloader that won't be used… I'm not interested in supporting JDK 8 downloads or Oracle downloads, so that removes some complexity.
Wanted to go a little further but wanted confirmation from @sampottinger before doing so:
version
and train
?With all that cleared out, that code should be a lot more readable.
In build.xml, we need to update the jre-optional lists based on the Java 8 release notes: http://www.oracle.com/technetwork/java/javase/jre-8-readme-2095710.html
For OS X, these need to happen inside our appbundler fork.
These lists are necessary to remove unused libraries and reduce the download size.
In talking with @codeanticode, it's not clear how modes should modify preprocessor behavior, Specifically, with the patterns introduced by ANTLR 4, the parse tree listener is where the preprocessing edits are generated and some client code (like modes) may need to override some of the preprocessing edit behavior.
jEdit is now 14 years old and is not maintained/updated. It would be very helpful if the code using jEdit can be replaced with something better maintained. RSyntaxArea is an alternative but other suggetions are welcome.
This change might not get into Processing 3.x but will be very useful in future.
According to this test, the ThinkDifferent glue seems to trip the AWT and cause problems. Need to find a way to handle Cmd-Q, setting the window icon, and other services provided by that code.
It looks like new builds do not have sufficient reputation and are triggering warnings on Windows 10's SmartScreen. This may require a more expensive EV cert. It also appears that Processing 3 may not be signed for windows but likely has enough reputation to get through the screen. This means this would be a new signing process?
@benfry can the orange circle be slightly bigger or moved so the update number does not hit the edge of the circle. (see screen shots with suggested revision)
On processing start, this warning is visible if run from the command line:
Illegal reflective access by processing.app.ui.Toolkit (file:/.../Processing.app/Contents/Java/pde.jar) to field sun.awt.CGraphicsDevice.scale
It'd be nice if Processing would delete unused tmp-folders. (After 1 month of use I had more than 1000 folders!)
I wanted to gave it another attempt at building cause I need to set some JVM options.
However, the build instructions are gone.
After some effort I did found them here:
https://gist.github.com/sampottinger/939441d7277d318189ec81844e3ca516
But It's a bit hidden.
Right now display scaling on Windows 10 causes poor automatic zooming through Swing. This makes the interface appear pixelated and the custom swing elements (primarily JEditTextArea) do not calculate x positions for the caret correctly. After #30, automatic swing zooming will be disabled. While this improves the experience for windows users that have display scaling enabled, this is a poor accessibility experience. I would like to re-enable automatic zoom on Windows and, ideally, extend zoom into native swing elements like the menu bar as well. However, as described in #30, we will need a new way to detect display scaling.
The sizing for most of the PDE works properly as of Processing 3.3, however sketches don't re-size based on the scaling.
There's an issue open here that covers the cross-platform aspects of making this work. The Windows version of this bug is here.
This issue is only for the Linux-specific parts of the problem, i.e. how are we gonna get the current UI scaling or DPI setting from the hodgepodge of window managers used with Linux.
Filing for kll from a processing forums discussion. There is a report that deletion happens at the wrong position on Windows with no zoom, Monospaced, 10pt. Possibly related to #19.
Instead of running all tests for all sub-projects on ant run
, move the tests to ant test
(which should also be required for ant dist
).
Using frame.xxx()
has been deprecated since 3.x, and it's time to remove it so that we're not dealing with AWT collisions.
Before we can remove it completely, however, we need to add a message to the PDE that catches use of frame.setTitle()
and others in code, and tells users to replace it with surface.setTitle()
. Better yet, offer to replace it in the code by clicking a button.
Further, these methods need to be re-thought, since they're used more than intended/expected: #53
With the removal of FileManager
in JDK 9+ we no longer have a means of getting the Documents
and Library
folders on macOS.
For now, it's possible to use System.getProperty("user.home")
and tack Library
or Documents
onto the end of that, however I'm guessing that it won't be possible in future OS releases, or perhaps even with a signed version of the app, due to security-related changes to how file system access works.
(Appending these folder names works now even on localized systems, since the native language shown is not what's used internally by the OS.)
This is not the same as #22, which is another WARNING: Illegal reflective access
message.
Due to the workaround for processing/processing#4104, we've got a reflection hack that spews a big warning.
The hack involves getting the name of the hardware so that we can add a workaround for Intel HD Graphics 3000
devices.
Not sure if we're free to nix the hack for 4.x (though it only recently went into 3.x), or perhaps there's another way to get hardware information.
It looks like the LTS train has targeting 11.0.5 (with Java 13 as the latest). Let's move to 11.0.5 from 11.0.2.
Currently there is a mechanism for signing the Processing app for Mac but we don't currently notarize which will be required in January. See https://developer.apple.com/news/?id=09032019a and https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow.
These bug is still alive
processing/processing#5770
maybe this pull can be used, say yesss it's my first pull :)
processing/processing#5821
There's some useful information here about all the necessary work: https://github.com/codeanticode/processing-lwjgl/wiki#making-awt-optional-in-papplet
Mostly it involves moving a few things into Surface
, so that only AWT surfaces will invoke AWT methods.
My terminal explain to me I need Java 1.8 to build this version is weird or not ?
/Users/stan/En_cours/code/github/PROCESSING_and_CO/processing4/build/build.xml:57: Unsupported Java version: 11.0.4. To build, make sure that Java 8 (aka Java 1.8) is installed.
On Linux (last running version 3.3) closing the last processing window doesn't quit processing, but leaves the process running without a possibility to reach it. ctl+c in the terminal window where processing has been started from will quit it.
Possible solutions for this issue would be:
The current build creates two files not covered by .gitignore
that we should sort out.
build/macosx/jdk-0u1.tgz
build/macosx/jdk-11.0.1+13/
The first one looks like it's using and old substring()
call to clean up the name of the downloaded JDK… It should be something like jdk-11.04.tgz
or whatever the syntax is nowadays.
For the second, do we need this temp folder kept around? In the past we built the app and then have the JDK embedded there… second copy in the repo is another 200 MB (plus another 100MB for JavaFX).
Same goes with naming for JFX bits… Something like javafx-11.0.2.zip
should work, and if we need the folder there, keeping the same name.
When the render is P3D, the stroke() overlap the image, that's not happen in classic renderer and in P2D. that's happen too in P 3.5.3.
PGraphics pg;
void setup() {
size(300,300,P3D);
pg = createGraphics(width,height,P3D);
}
void draw() {
background(75);
stroke(255);
strokeWeight(2);
fill(0);
ellipse(mouseX,mouseY,100,100);
pg.beginDraw();
pg.noStroke();
pg.fill(125);
pg.beginShape();
pg.vertex(34,45);
pg.vertex(width/2,60);
pg.vertex(width/2,height);
pg.endShape(CLOSE);
pg.endDraw();
image(pg,0,0);
}
Hi, I'm working in schools and I would to use a portable version, usable on USB stick. Also because there are securities, and as I work in different school there are different securities. On Processing3 I didn't find all the option I could find in Processing2 preferences to make quite portable (because it still write in c:\Users\AppDatat\etc
Thanks a lot for helping me.
The changes to break out getCoreImports()
and others will likely have trashed Android Mode pretty badly; as these were public methods that are overridden by subclasses like Android Mode. That's why they weren't static
in the first place, and they were given a single point where they could be overridden.
In the following sketch, the dispose handler is called when the escape key is pressed, but not when the stop button is pressed.
dispose_bug
SampleLibrary s;
void setup() {
size(200, 200, P3D);
s = new SampleLibrary(this);
}
void draw() {
background(255);
fill(0);
text("" + millis(), 20, 20);
}
SampleLibrary.java
import processing.core.*;
public class SampleLibrary {
public SampleLibrary(PApplet parent) {
parent.registerMethod("dispose", this);
}
public void dispose() {
System.err.println("disposed!");
}
}
unable to connect to http://download.processing.org/contrib as there is no provision for proxy authentication in Preferences.txt. Please add it...
Here at a school lab. OS X.
New mode downoads as expected into modes/tmp8238273827323/PythonMode or whatever, then does not move into place as PythonMode in the modes folder. Failure is reported. Manually moving PythonMode is an ok workaround.
It looks like JOGL 2.4 is getting further along! I know that there's some work to cut over to LWJGL but we should decide if we want to adopt JOGL 2.4 / if there will be available modes in both?
On some computers the Processing does not start.
This error depends on some of network settings.
Testing steps:
This problem is repeated in versions 3.0a8 to 3.0b7.
Versions 2.2.1 and 3.0a1 to 3.0a7 runs great.
It seems in version 3.0a8 you broke something.
I can repeat this problem on 5 computers. (all on Windows 7 x32)
I think you should alter the startup process. And make it less dependent on the network.
If any errors in the network, the Processing should show error message and not crash.
Filing for kll from a processing forums discussion. The following happens when using P3D:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/.../core/library/gluegen-rt.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
println(displayDensity()) returns 1 on a mac with retina
Exepcted 2
Currently 1
See above
Mac 10.14 13 inch retina
I'm packing data in a texture (PImage) to send to a fragment shader. I'm running into the limitations of the 32bit RGBA format that seems to be the default for every texture in Processing. It's causing banding effects in my output. Switching to floating point textures will most likely solve these problems, because of the increased accuracy.
I have searched high and low (all the forums, the source code, the issue list), but I cannot find a way to use floating points textures in Processing. Is this possible? If not, I would like to post this issue as a feature request.
Things may still say Processing 3, and use its color scheme. We'll be updating that before the release.
Inside DefaultPlatform
and WindowsPlatform
, we're apparently using a now-deprecated library loading function for JNA. Just need to swap it with the suggested replacement.
Looks like there's one more illegal reflexive access hanging out...
Illegal reflective access by processing.app.ui.Editor (file:/.../build/macosx/work/Processing.app/Contents/Java/pde.jar) to method com.apple.eawt.FullScreenUtilities.setWindowCanFullScreen
Original author: [email protected] (January 02, 2013 00:48:20)
Every new processing window opens on monitor 1, and processing opens a lot of new windows, so it gets pretty laborious if I'm not working on monitor 1.
Firefox, for example, opens new windows on the same monitor as the window that spawns them.
Processing 2.0b6
Windows 7 64-bit
AMD Radeon HD 5800 series
Original issue: http://code.google.com/p/processing/issues/detail?id=1528
In 3.5.3 you could use import static
.
Here I use it for Ani.init()
in setup.
import de.looksgood.ani.*;
import static de.looksgood.ani.Ani.*;
void setup() {
init(this);
}
I use Ani as an example cause i didn't want to share a whole project to demonstrate.
With processing4 I get:
No library found for de.looksgood.ani.Ani
The function init(sketch_191027a) does not exist.
The 'No library found' error is not new, but not being able to use the static methods is new.
!!! I do use the latest release that can be downloaded from Sam Pottinger's site, which is dated September. I'm unable to build it myself.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.