in opengl package as well

This commit is contained in:
codeanticode
2012-06-04 02:08:44 +00:00
parent a5b88c92e7
commit 6a9f33366d
4 changed files with 92 additions and 35 deletions

View File

@@ -290,6 +290,13 @@ public class PGraphicsOpenGL extends PGraphics {
// ........................................................
// Texturing:
public int textureWrap = Texture.CLAMP;
public int textureQuality = Texture.BEST;
// ........................................................
// Blending:
protected int blendMode;
@@ -2040,6 +2047,17 @@ public class PGraphicsOpenGL extends PGraphics {
}
}
public void textureWrap(int wrap) {
this.textureWrap = wrap;
}
public void textureQuality(int quality) {
this.textureQuality = quality;
}
public void texture(PImage image) {
if (flushMode == FLUSH_WHEN_FULL && hints[DISABLE_TEXTURE_CACHE] &&
image != textureImage0) {
@@ -5194,17 +5212,17 @@ public class PGraphicsOpenGL extends PGraphics {
} else {
params.mipmaps = true;
}
if (textureQuality == LOW) {
if (textureQuality == Texture.LOW) {
params.sampling = POINT;
} else if (textureQuality == MEDIUM) {
params.sampling = LINEAR;
} else if (textureQuality == HIGH) {
params.sampling = BILINEAR;
} else if (textureQuality == BEST) {
} else if (textureQuality == Texture.MEDIUM) {
params.sampling = Texture.LINEAR;
} else if (textureQuality == Texture.HIGH) {
params.sampling = Texture.BILINEAR;
} else if (textureQuality == Texture.BEST) {
if (params.mipmaps) {
params.sampling = TRILINEAR;
params.sampling = Texture.TRILINEAR;
} else {
params.sampling = BILINEAR;
params.sampling = Texture.BILINEAR;
PGraphics.showWarning("BEST texture quality requires mipmaps, will switch to HIGH.");
}
}
@@ -5277,7 +5295,7 @@ public class PGraphicsOpenGL extends PGraphics {
pgl.initOffscreenSurface(pgPrimary.pgl);
pgl.updateOffscreen(pgPrimary.pgl);
loadTextureImpl(BILINEAR, false);
loadTextureImpl(Texture.BILINEAR, false);
// In case of reinitialization (for example, when the smooth level
// is changed), we make sure that all the OpenGL resources associated
@@ -5365,17 +5383,17 @@ public class PGraphicsOpenGL extends PGraphics {
public PShader loadShader(String vertFilename, String fragFilename, int kind) {
if (kind == FLAT_SHADER) {
if (kind == PShader.FLAT_SHADER) {
return new PolyFlatShader(parent, vertFilename, fragFilename);
} else if (kind == LIGHT_SHADER) {
} else if (kind == PShader.LIGHT_SHADER) {
return new PolyLightShader(parent, vertFilename, fragFilename);
} else if (kind == TEXTURE_SHADER) {
} else if (kind == PShader.TEXTURE_SHADER) {
return new PolyTexShader(parent, vertFilename, fragFilename);
} else if (kind == FULL_SHADER) {
} else if (kind == PShader.FULL_SHADER) {
return new PolyFullShader(parent, vertFilename, fragFilename);
} else if (kind == LINE3D_SHADER) {
} else if (kind == PShader.LINE3D_SHADER) {
return new LineShader(parent, vertFilename, fragFilename);
} else if (kind == POINT3D_SHADER) {
} else if (kind == PShader.POINT3D_SHADER) {
return new PointShader(parent, vertFilename, fragFilename);
} else {
PGraphics.showWarning("Wrong shader type");
@@ -5386,22 +5404,22 @@ public class PGraphicsOpenGL extends PGraphics {
public PShader loadShader(String fragFilename, int kind) {
PShader shader;
if (kind == FLAT_SHADER) {
if (kind == PShader.FLAT_SHADER) {
shader = new PolyFlatShader(parent);
shader.setVertexShader(defPolyFlatShaderVertURL);
} else if (kind == LIGHT_SHADER) {
} else if (kind == PShader.LIGHT_SHADER) {
shader = new PolyLightShader(parent);
shader.setVertexShader(defPolyLightShaderVertURL);
} else if (kind == TEXTURE_SHADER) {
} else if (kind == PShader.TEXTURE_SHADER) {
shader = new PolyTexShader(parent);
shader.setVertexShader(defPolyTexShaderVertURL);
} else if (kind == FULL_SHADER) {
} else if (kind == PShader.FULL_SHADER) {
shader = new PolyFullShader(parent);
shader.setVertexShader(defPolyFullShaderVertURL);
} else if (kind == LINE3D_SHADER) {
} else if (kind == PShader.LINE3D_SHADER) {
shader = new LineShader(parent);
shader.setVertexShader(defLineShaderVertURL);
} else if (kind == POINT3D_SHADER) {
} else if (kind == PShader.POINT3D_SHADER) {
shader = new PointShader(parent);
shader.setVertexShader(defPointShaderVertURL);
} else {
@@ -5415,17 +5433,17 @@ public class PGraphicsOpenGL extends PGraphics {
public void setShader(PShader shader, int kind) {
flush(); // Flushing geometry with a different shader.
if (kind == FLAT_SHADER) {
if (kind == PShader.FLAT_SHADER) {
polyFlatShader = (PolyFlatShader) shader;
} else if (kind == LIGHT_SHADER) {
} else if (kind == PShader.LIGHT_SHADER) {
polyLightShader = (PolyLightShader) shader;
} else if (kind == TEXTURE_SHADER) {
} else if (kind == PShader.TEXTURE_SHADER) {
polyTexShader = (PolyTexShader) shader;
} else if (kind == FULL_SHADER) {
} else if (kind == PShader.FULL_SHADER) {
polyFullShader = (PolyFullShader) shader;
} else if (kind == LINE3D_SHADER) {
} else if (kind == PShader.LINE3D_SHADER) {
lineShader = (LineShader) shader;
} else if (kind == POINT3D_SHADER) {
} else if (kind == PShader.POINT3D_SHADER) {
pointShader = (PointShader) shader;
} else {
PGraphics.showWarning("Wrong shader type");
@@ -5435,32 +5453,32 @@ public class PGraphicsOpenGL extends PGraphics {
public void defaultShader(int kind) {
flush(); // Flushing geometry with a different shader.
if (kind == FLAT_SHADER) {
if (kind == PShader.FLAT_SHADER) {
if (defPolyFlatShader == null || defPolyFlatShader.contextIsOutdated()) {
defPolyFlatShader = new PolyFlatShader(parent, defPolyFlatShaderVertURL, defPolyNoTexShaderFragURL);
}
polyFlatShader = defPolyFlatShader;
} else if (kind == LIGHT_SHADER) {
} else if (kind == PShader.LIGHT_SHADER) {
if (defPolyLightShader == null || defPolyLightShader.contextIsOutdated()) {
defPolyLightShader = new PolyLightShader(parent, defPolyLightShaderVertURL, defPolyNoTexShaderFragURL);
}
polyLightShader = defPolyLightShader;
} else if (kind == TEXTURE_SHADER) {
} else if (kind == PShader.TEXTURE_SHADER) {
if (defPolyTexShader == null || defPolyTexShader.contextIsOutdated()) {
defPolyTexShader = new PolyTexShader(parent, defPolyTexShaderVertURL, defPolyTexShaderFragURL);
}
polyTexShader = defPolyTexShader;
} else if (kind == FULL_SHADER) {
} else if (kind == PShader.FULL_SHADER) {
if (defPolyFullShader == null || defPolyFullShader.contextIsOutdated()) {
defPolyFullShader = new PolyFullShader(parent, defPolyFullShaderVertURL, defPolyTexShaderFragURL);
}
polyFullShader = defPolyFullShader;
} else if (kind == LINE3D_SHADER) {
} else if (kind == PShader.LINE3D_SHADER) {
if (defLineShader == null || defLineShader.contextIsOutdated()) {
defLineShader = new LineShader(parent, defLineShaderVertURL, defLineShaderFragURL);
}
lineShader = defLineShader;
} else if (kind == POINT3D_SHADER) {
} else if (kind == PShader.POINT3D_SHADER) {
if (defPointShader == null || defPointShader.contextIsOutdated()) {
defPointShader = new PointShader(parent, defPointShaderVertURL, defPointShaderFragURL);
}