You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(134) |
Sep
(52) |
Oct
(13) |
Nov
(342) |
Dec
(163) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(44) |
Feb
(62) |
Mar
(158) |
Apr
(38) |
May
(70) |
Jun
(58) |
Jul
(104) |
Aug
(207) |
Sep
(83) |
Oct
(122) |
Nov
(23) |
Dec
(49) |
| 2004 |
Jan
(119) |
Feb
(132) |
Mar
(192) |
Apr
(140) |
May
(77) |
Jun
(74) |
Jul
(201) |
Aug
(63) |
Sep
(102) |
Oct
(70) |
Nov
(173) |
Dec
(78) |
| 2005 |
Jan
(174) |
Feb
(197) |
Mar
(105) |
Apr
(59) |
May
(77) |
Jun
(43) |
Jul
(21) |
Aug
(18) |
Sep
(47) |
Oct
(37) |
Nov
(74) |
Dec
(50) |
| 2006 |
Jan
(44) |
Feb
(19) |
Mar
(32) |
Apr
(24) |
May
(31) |
Jun
(55) |
Jul
(138) |
Aug
(28) |
Sep
(12) |
Oct
(41) |
Nov
(58) |
Dec
(24) |
| 2007 |
Jan
(28) |
Feb
(14) |
Mar
(10) |
Apr
(68) |
May
(30) |
Jun
(26) |
Jul
(18) |
Aug
(63) |
Sep
(19) |
Oct
(29) |
Nov
(20) |
Dec
(10) |
| 2008 |
Jan
(38) |
Feb
(7) |
Mar
(37) |
Apr
(120) |
May
(41) |
Jun
(36) |
Jul
(39) |
Aug
(24) |
Sep
(28) |
Oct
(30) |
Nov
(36) |
Dec
(75) |
| 2009 |
Jan
(46) |
Feb
(22) |
Mar
(50) |
Apr
(70) |
May
(134) |
Jun
(105) |
Jul
(75) |
Aug
(34) |
Sep
(38) |
Oct
(34) |
Nov
(19) |
Dec
(20) |
| 2010 |
Jan
(11) |
Feb
(20) |
Mar
(65) |
Apr
(83) |
May
(104) |
Jun
(73) |
Jul
(78) |
Aug
(57) |
Sep
(43) |
Oct
(35) |
Nov
(9) |
Dec
(4) |
| 2011 |
Jan
(21) |
Feb
(11) |
Mar
(18) |
Apr
(10) |
May
(18) |
Jun
(15) |
Jul
(48) |
Aug
(25) |
Sep
(17) |
Oct
(45) |
Nov
(15) |
Dec
(12) |
| 2012 |
Jan
(21) |
Feb
(9) |
Mar
(12) |
Apr
(9) |
May
(9) |
Jun
(5) |
Jul
(1) |
Aug
(10) |
Sep
(12) |
Oct
(1) |
Nov
(28) |
Dec
(5) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
(1) |
3
(3) |
|
4
(8) |
5
(2) |
6
(2) |
7
(3) |
8
(2) |
9
(5) |
10
(2) |
|
11
(7) |
12
(5) |
13
(1) |
14
(2) |
15
(5) |
16
(1) |
17
|
|
18
(2) |
19
(1) |
20
(1) |
21
(3) |
22
(1) |
23
(3) |
24
(1) |
|
25
(5) |
26
|
27
(5) |
28
(5) |
29
|
30
|
31
(2) |
|
From: <ka...@us...> - 2010-07-11 13:54:58
|
Revision: 3374
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3374&view=rev
Author: kappa1
Date: 2010-07-11 13:54:52 +0000 (Sun, 11 Jul 2010)
Log Message:
-----------
Appletloader: fix caching issue with native jars
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-11 13:03:16 UTC (rev 3373)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-11 13:54:52 UTC (rev 3374)
@@ -544,7 +544,7 @@
case STATE_DETERMINING_PACKAGES:
return "Determining packages to load";
case STATE_CHECKING_CACHE:
- return "Calculate download size and check cache";
+ return "Calculating download size";
case STATE_DOWNLOADING:
return "Downloading packages";
case STATE_EXTRACTING_PACKAGES:
@@ -1286,6 +1286,11 @@
*/
protected void extractNatives(String path) throws Exception {
+ // if no new native jar was downloaded, no extracting needed
+ if (fileSizes[fileSizes.length-1] == -2) {
+ return;
+ }
+
state = STATE_EXTRACTING_PACKAGES;
int initialPercentage = percentage;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-11 13:03:22
|
Revision: 3373
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3373&view=rev
Author: kappa1
Date: 2010-07-11 13:03:16 +0000 (Sun, 11 Jul 2010)
Log Message:
-----------
AppletLoader: fix code to compile on java 1.4
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-11 12:13:34 UTC (rev 3372)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-11 13:03:16 UTC (rev 3373)
@@ -1006,7 +1006,7 @@
if (cacheEnabled && lastModified != 0 &&
filesLastModified.containsKey(fileName)) {
- long savedLastModified = (Long)filesLastModified.get(fileName);
+ long savedLastModified = ((Long)filesLastModified.get(fileName)).longValue();
// if lastModifed time is the same, don't redownload
if (savedLastModified == lastModified) {
@@ -1019,7 +1019,7 @@
}
// put key and value in the hashmap
- filesLastModified.put(fileName, lastModified);
+ filesLastModified.put(fileName, new Long(lastModified));
// update progress bar
percentage = 5 + (int)(10 * i/(float)urlList.length);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-11 12:16:50
|
Revision: 3372
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3372&view=rev
Author: kappa1
Date: 2010-07-11 12:13:34 +0000 (Sun, 11 Jul 2010)
Log Message:
-----------
Appletloader: Initial implementation of a proper caching system. Files will only be downloaded if lastModified time is different from when files were downloaded previously. al_cache parameter is used to disable and enable this caching (default: true). This caching will not be used if al_version parameter is used.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-10 11:56:55 UTC (rev 3371)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-11 12:13:34 UTC (rev 3372)
@@ -48,6 +48,8 @@
import java.io.FilePermission;
import java.io.IOException;
import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -69,6 +71,7 @@
import java.security.SecureClassLoader;
import java.security.cert.Certificate;
import java.util.Enumeration;
+import java.util.HashMap;
import java.util.StringTokenizer;
import java.util.Vector;
import java.util.jar.JarEntry;
@@ -107,6 +110,7 @@
* <ul>
* <li>al_version - [int or float] Version of deployment. If this is specified, the jars will be cached and
* reused if the version matches. If version doesn't match all of the files are reloaded.</li>
+ * <li>al_cache - [boolean] Whether to use cache system. If al_version is used then cache is not used. <i>Default: true</i>.</li>
* <li>al_debug - [boolean] Whether to enable debug mode. <i>Default: false</i>.</li>
* <li>al_prepend_host - [boolean] Whether to limit caching to this domain, disable if your applet is hosted on multple domains and needs to share the cache. <i>Default: true</i>.</li>
* <ul>
@@ -220,6 +224,15 @@
/** whether to prepend host to cache path */
protected boolean prependHost;
+ /** Used to store file names with lastModified time */
+ protected HashMap filesLastModified;
+
+ /** Sizes of files to download */
+ protected int[] fileSizes;
+
+ /** whether to use caching system, only download files that have changed */
+ protected boolean cacheEnabled;
+
/** String to display as a subtask */
protected String subtaskMessage = "";
@@ -262,7 +275,10 @@
return;
}
}
-
+
+ // whether to use cache system
+ cacheEnabled = getBooleanParameter("al_cache", true);
+
// whether to run in debug mode
debugMode = getBooleanParameter("al_debug", false);
@@ -479,7 +495,7 @@
og.dispose();
- // finally draw it all
+ // finally draw it all centred
g.drawImage(offscreen, (getWidth() - offscreen.getWidth(null))/2, (getHeight() - offscreen.getHeight(null))/2, null);
}
@@ -528,7 +544,7 @@
case STATE_DETERMINING_PACKAGES:
return "Determining packages to load";
case STATE_CHECKING_CACHE:
- return "Checking cache for existing files";
+ return "Calculate download size and check cache";
case STATE_DOWNLOADING:
return "Downloading packages";
case STATE_EXTRACTING_PACKAGES:
@@ -681,11 +697,12 @@
if (!dir.exists()) {
dir.mkdirs();
}
- dir = new File(dir, "version");
+
+ File versionFile = new File(dir, "version");
+
+ // if specified applet version already available don't download anything
+ boolean versionAvailable = false;
- // if applet already available don't download anything
- boolean cacheAvailable = false;
-
// version of applet
String version = getParameter("al_version");
float latestVersion = 0;
@@ -696,10 +713,10 @@
latestVersion = Float.parseFloat(version);
// if version file exists
- if (dir.exists()) {
+ if (versionFile.exists()) {
// compare to new version
- if (latestVersion <= readVersionFile(dir)) {
- cacheAvailable = true;
+ if (latestVersion <= readVersionFile(versionFile)) {
+ versionAvailable = true;
percentage = 90;
if(debugMode) {
@@ -711,9 +728,12 @@
}
// if jars not available or need updating download them
- if (!cacheAvailable) {
+ if (!versionAvailable) {
+ // get jars file sizes and check cache
+ getJarInfo(dir); // 5-15%
+
// downloads jars from the server
- downloadJars(path); // 10-55%
+ downloadJars(path); // 15-55%
// Extract Pack and LZMA files
extractJars(path); // 55-65%
@@ -721,11 +741,14 @@
// Extracts Native Files
extractNatives(path); // 65-85%
- // add version information once jars downloaded successfully
+ // save version information once jars downloaded successfully
if (version != null) {
percentage = 90;
writeVersionFile(dir, latestVersion);
}
+
+ // save file names with last modified info once downloaded successfully
+ writeCacheFile(new File(dir, "cache"), filesLastModified);
}
// add the downloaded jars and natives to classpath
@@ -771,8 +794,35 @@
dos.writeFloat(version);
dos.close();
}
+
+ /**
+ * read the current cache file
+ *
+ * @param file the file to read
+ * @return the hashmap containing the files names and lastModified times
+ * @throws Exception if it fails to read hashmap
+ */
+ protected HashMap readCacheFile(File file) throws Exception {
+ ObjectInputStream dis = new ObjectInputStream(new FileInputStream(file));
+ HashMap hashMap = (HashMap)dis.readObject();
+ dis.close();
+ return hashMap;
+ }
/**
+ * write out cache file of applet
+ *
+ * @param file the file to write out to
+ * @param filesLastModified the hashmap containing files names and lastModified times
+ * @throws Exception if it fails to write file
+ */
+ protected void writeCacheFile(File file, HashMap filesLastModified) throws Exception {
+ ObjectOutputStream dos = new ObjectOutputStream(new FileOutputStream(file));
+ dos.writeObject(filesLastModified);
+ dos.close();
+ }
+
+ /**
* Edits the ClassPath at runtime to include the jars
* that have just been downloaded and then adds the
* lwjgl natives folder property.
@@ -848,7 +898,7 @@
* Due to the way applets on plugin1 work, one jvm must
* be used for all applets. We need to use multiple
* classloaders in the same jvm due to LWJGL's static
- * nature. I order to solver this we simply remove the
+ * nature. I order to solve this we simply remove the
* natives from a previous classloader allowing a new
* classloader to use those natives in the same jvm.
*
@@ -913,23 +963,33 @@
state = STATE_START_REAL_APPLET;
lwjglApplet.start();
}
-
+
/**
- * Will download the jars from the server using the list of urls
- * in urlList, while at the same time updating progress bar
+ * This method will get the files sizes of the files to download.
+ * It wil further get the lastModified time of files
+ * and save it in a hashmap, if cache is enabled it will mark
+ * those files that have not changed since last download to not
+ * redownloaded.
*
- * @param path location of the directory to save to
- * @throws Exception if download fails
+ * @param dir - location to read cache file from
+ * @throws Exception - if fails to get infomation
*/
- protected void downloadJars(String path) throws Exception {
+ protected void getJarInfo(File dir) throws Exception {
- state = STATE_DOWNLOADING;
-
+ filesLastModified = new HashMap();
+
+ // store file sizes and mark which files not to download
+ fileSizes = new int[urlList.length];
+
URLConnection urlconnection;
- // store file sizes, used for download verification
- int[] fileSizes = new int[urlList.length];
+ File cacheFile = new File(dir, "cache");
+ // if cache file exists, load it
+ if (cacheFile.exists()) {
+ filesLastModified = readCacheFile(cacheFile);
+ }
+
// calculate total size of jars to download
for (int i = 0; i < urlList.length; i++) {
urlconnection = urlList[i].openConnection();
@@ -937,16 +997,57 @@
if (urlconnection instanceof HttpURLConnection) {
((HttpURLConnection) urlconnection).setRequestMethod("HEAD");
}
+
fileSizes[i] = urlconnection.getContentLength();
- totalSizeDownload += fileSizes[i];
+
+ long lastModified = urlconnection.getLastModified();
+ String fileName = getFileName(urlList[i]);
+
+
+ if (cacheEnabled && lastModified != 0 &&
+ filesLastModified.containsKey(fileName)) {
+ long savedLastModified = (Long)filesLastModified.get(fileName);
+
+ // if lastModifed time is the same, don't redownload
+ if (savedLastModified == lastModified) {
+ fileSizes[i] = -2; // mark it to not redownload
+ }
+ }
+
+ if (fileSizes[i] >= 0) {
+ totalSizeDownload += fileSizes[i];
+ }
+
+ // put key and value in the hashmap
+ filesLastModified.put(fileName, lastModified);
+
+ // update progress bar
+ percentage = 5 + (int)(10 * i/(float)urlList.length);
}
+ }
+
+ /**
+ * Will download the jars from the server using the list of urls
+ * in urlList, while at the same time updating progress bar
+ *
+ * @param path location of the directory to save to
+ * @throws Exception if download fails
+ */
+ protected void downloadJars(String path) throws Exception {
- int initialPercentage = percentage = 10;
+ state = STATE_DOWNLOADING;
+ URLConnection urlconnection;
+
+ int initialPercentage = percentage = 15;
+
// download each jar
byte buffer[] = new byte[65536];
for (int i = 0; i < urlList.length; i++) {
+ // skip file if marked as -2 (already downloaded and not changed)
+ if (fileSizes[i] == -2) continue;
+
int unsuccessfulAttempts = 0;
int maxUnsuccessfulAttempts = 3;
boolean downloadFile = true;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-10 11:57:01
|
Revision: 3371
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3371&view=rev
Author: kappa1
Date: 2010-07-10 11:56:55 +0000 (Sat, 10 Jul 2010)
Log Message:
-----------
AppletLoader: fixed flicker on animated gifs using ImageObserver. When image is ready to be drawn it is copied into a buffer image ready to be drawn. Also now supports variable time animated gifs and not limited to drawing only every 100ms.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-09 21:46:27 UTC (rev 3370)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-10 11:56:55 UTC (rev 3371)
@@ -39,6 +39,7 @@
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
+import java.awt.image.ImageObserver;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
@@ -172,14 +173,17 @@
protected int totalSizeExtract;
/** logo to be shown while loading */
- protected Image logo;
+ protected Image logo, logoBuffer;
/** progressbar to render while loading */
- protected Image progressbar;
+ protected Image progressbar, progressbarBuffer;
/** offscreen image used */
protected Image offscreen;
+ /** set to true while painting is done */
+ protected boolean painting;
+
/** background color of applet */
protected Color bgColor = Color.white;
@@ -357,6 +361,9 @@
progressbar = null;
logo = null;
+
+ logoBuffer = null;
+ progressbarBuffer = null;
}
/**
@@ -393,6 +400,18 @@
// create offscreen if missing
if (offscreen == null) {
offscreen = createImage(getWidth(), getHeight());
+
+ // create buffers for animated gifs
+ logoBuffer = createImage(logo.getWidth(null), logo.getHeight(null));
+ progressbarBuffer = createImage(logo.getWidth(null), logo.getHeight(null));
+
+ // add image observer, it will notify when next animated gif frame is ready
+ offscreen.getGraphics().drawImage(logo, 0, 0, this);
+ offscreen.getGraphics().drawImage(progressbar, 0, 0, this);
+
+ // in case image is not animated fill image buffers once
+ imageUpdate(logo, ImageObserver.FRAMEBITS, 0, 0, 0, 0);
+ imageUpdate(progressbar, ImageObserver.FRAMEBITS, 0, 0, 0, 0);
}
// draw everything onto an image before drawing to avoid flicker
@@ -407,8 +426,8 @@
int x = 0, y = 0;
if(logo != null && !fatalError) {
- x = (offscreen.getWidth(null) - logo.getWidth(this)) / 2;
- y = (offscreen.getHeight(null) - logo.getHeight(this)) / 2;
+ x = (offscreen.getWidth(null) - logo.getWidth(null)) / 2;
+ y = (offscreen.getHeight(null) - logo.getHeight(null)) / 2;
}
og.setColor(fgColor);
@@ -433,13 +452,15 @@
}
} else {
og.setColor(fgColor);
-
+
+ painting = true;
+
// draw logo
- og.drawImage(logo, x, y, null);
+ og.drawImage(logoBuffer, x, y, this);
// draw message
int messageX = (offscreen.getWidth(null) - fm.stringWidth(message)) / 2;
- int messageY = y + logo.getHeight(null) + 20;
+ int messageY = y + logoBuffer.getHeight(null) + 20;
og.drawString(message, messageX, messageY);
// draw subtaskmessage, if any
@@ -449,16 +470,53 @@
}
// draw loading bar, clipping it depending on percentage done
- int barSize = (progressbar.getWidth(this) * percentage) / 100;
+ int barSize = (progressbarBuffer.getWidth(null) * percentage) / 100;
og.clipRect(0, 0, x + barSize, offscreen.getHeight(null));
- og.drawImage(progressbar, x, y, null);
+ og.drawImage(progressbarBuffer, x, y, this);
+
+ painting = false;
}
og.dispose();
-
- // finally draw it all centred
+
+ // finally draw it all
g.drawImage(offscreen, (getWidth() - offscreen.getWidth(null))/2, (getHeight() - offscreen.getHeight(null))/2, null);
}
+
+ /**
+ * When an animated gif frame is ready to be drawn the ImageObserver
+ * will call this method.
+ *
+ * The Image frame is copied into a buffer, which is then drawn.
+ * This is done to prevent image tearing on gif animations.
+ */
+ public boolean imageUpdate(Image img, int flag, int x, int y, int width, int height) {
+
+ // if image frame is ready to be drawn and is currently not being painted
+ if (flag == ImageObserver.FRAMEBITS && !painting) {
+ Image buffer;
+
+ // select which buffer to fill
+ if (img == logo) buffer = logoBuffer;
+ else buffer = progressbarBuffer;
+
+ Graphics g = buffer.getGraphics();
+
+ // clear background on buffer
+ g.setColor(bgColor);
+ g.fillRect(0, 0, buffer.getWidth(null), buffer.getHeight(null));
+
+ // buffer background is cleared, so draw logo under progressbar
+ if (img == progressbar) g.drawImage(logoBuffer, 0, 0, null);
+
+ g.drawImage(img, 0, 0, this);
+ g.dispose();
+
+ repaint();
+ }
+
+ return true;
+ }
/**
* @return string describing the state of the loader
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sp...@us...> - 2010-07-09 21:46:33
|
Revision: 3370
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3370&view=rev
Author: spasi
Date: 2010-07-09 21:46:27 +0000 (Fri, 09 Jul 2010)
Log Message:
-----------
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-09 19:37:14 UTC (rev 3369)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-09 21:46:27 UTC (rev 3370)
@@ -1344,12 +1344,14 @@
}) == null )
throw new LWJGLException("Failed to apply Compiz LFS workaround.");
- try {
- // gconftool will not apply the workaround immediately, sleep a bit
- // to make sure it will be ok when we create the window.
- Thread.sleep(200); // 100 is too low, 150 works, set to 200 to be safe.
- } catch (InterruptedException e) {
- e.printStackTrace();
+ if ( state ) {
+ try {
+ // gconftool will not apply the workaround immediately, sleep a bit
+ // to make sure it will be ok when we create the window.
+ Thread.sleep(200); // 100 is too low, 150 works, set to 200 to be safe.
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
}
}
};
@@ -1358,7 +1360,7 @@
}
}
- if ( provider != null && !provider.hasLegacyFullscreenSupport() ) { // No need to do anything is LFS is already enabled.
+ if ( provider != null && !provider.hasLegacyFullscreenSupport() ) { // No need to do anything if LFS is already enabled.
applyFix = true;
LWJGLUtil.log("Using " + providerName + " to apply Compiz LFS workaround.");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-09 19:37:21
|
Revision: 3369
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3369&view=rev
Author: kappa1
Date: 2010-07-09 19:37:14 +0000 (Fri, 09 Jul 2010)
Log Message:
-----------
Display sync modified to allow it to be interrupted.
Thanks to bobjob for this, further thanks to MatthiasM for pointing out that the interrupt should not be swallowed.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opengl/Display.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/Display.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/Display.java 2010-07-09 18:44:31 UTC (rev 3368)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/Display.java 2010-07-09 19:37:14 UTC (rev 3369)
@@ -424,12 +424,13 @@
savedTimeLate = timeLate;
}
- while ( gapTo > timeNow + savedTimeLate ) {
- try {
+ try {
+ while ( gapTo > timeNow + savedTimeLate ) {
Thread.sleep(1);
- } catch (InterruptedException e) {
+ timeNow = Sys.getTime();
}
- timeNow = Sys.getTime();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
}
synchronized ( GlobalLock.lock ) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sp...@us...> - 2010-07-09 18:44:37
|
Revision: 3368
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3368&view=rev
Author: spasi
Date: 2010-07-09 18:44:31 +0000 (Fri, 09 Jul 2010)
Log Message:
-----------
Compiz LFS improvements.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-08 21:12:20 UTC (rev 3367)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-09 18:44:31 UTC (rev 3368)
@@ -53,6 +53,9 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
final class LinuxDisplay implements DisplayImplementation {
/* X11 constants */
@@ -455,7 +458,7 @@
private static native void mapRaised(long display, long window);
private static native void reparentWindow(long display, long window, long parent, int x, int y);
- private boolean isAncestorXEmbedded(long window) throws LWJGLException {
+ private static boolean isAncestorXEmbedded(long window) throws LWJGLException {
long xembed_atom = internAtom("_XEMBED_INFO", true);
if (xembed_atom != None) {
long w = window;
@@ -1249,16 +1252,19 @@
}
/**
- * Helper class for managing Compiz's workarounds.
+ * Helper class for managing Compiz's workarounds. We need this to enable Legacy
+ * Fullscreen Support in Compiz, else we'll have trouble with fullscreen windows
+ * when Compiz effects are enabled.
+ *
+ * Implementation Note: This code is probably too much for an inner class, but
+ * keeping it here until we're sure we cannot find a better solution.
*/
private static final class Compiz {
- private static final String LEGACY_FULLSCREEN_SUPPORT = "/org/freedesktop/compiz/workarounds/allscreens/legacy_fullscreen";
+ private static boolean applyFix;
- private static boolean dbusAvailable;
+ private static Provider provider;
- private static boolean legacyFullscreenSupport;
-
private Compiz() {
}
@@ -1269,24 +1275,110 @@
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
try {
- legacyFullscreenSupport = getBoolean(LEGACY_FULLSCREEN_SUPPORT);
- dbusAvailable = true;
+ // Check if Compiz is active
+ if ( !isProcessActive("compiz") )
+ return null;
+
+ provider = null;
+
+ String providerName = null;
+
+ // Check if Dbus is available
+ if ( isProcessActive("dbus-daemon") ) {
+ providerName = "Dbus";
+ provider = new Provider() {
+
+ private static final String KEY = "/org/freedesktop/compiz/workarounds/allscreens/legacy_fullscreen";
+
+ public boolean hasLegacyFullscreenSupport() throws LWJGLException {
+ final List output = Compiz.run(new String[] {
+ "dbus-send", "--print-reply", "--type=method_call", "--dest=org.freedesktop.compiz", KEY, "org.freedesktop.compiz.get"
+ });
+
+ if ( output == null || output.size() < 2 )
+ throw new LWJGLException("Invalid Dbus reply.");
+
+ String line = (String)output.get(0);
+
+ if ( !line.startsWith("method return") )
+ throw new LWJGLException("Invalid Dbus reply.");
+
+ line = ((String)output.get(1)).trim(); // value
+ if ( !line.startsWith("boolean") || line.length() < 12)
+ throw new LWJGLException("Invalid Dbus reply.");
+
+ return "true".equalsIgnoreCase(line.substring("boolean".length() + 1));
+ }
+
+ public void setLegacyFullscreenSupport(final boolean state) throws LWJGLException {
+ if ( Compiz.run(new String[] {
+ "dbus-send", "--type=method_call", "--dest=org.freedesktop.compiz", KEY, "org.freedesktop.compiz.set", "boolean:" + Boolean.toString(state)
+ }) == null )
+ throw new LWJGLException("Failed to apply Compiz LFS workaround.");
+ }
+ };
+ } else {
+ try {
+ // Check if Gconf is available
+ Runtime.getRuntime().exec("gconftool");
+
+ providerName = "gconftool";
+ provider = new Provider() {
+
+ private static final String KEY = "/apps/compiz/plugins/workarounds/allscreens/options/legacy_fullscreen";
+
+ public boolean hasLegacyFullscreenSupport() throws LWJGLException {
+ final List output = Compiz.run(new String[] {
+ "gconftool", "-g", KEY
+ });
+
+ if ( output == null || output.size() == 0 )
+ throw new LWJGLException("Invalid gconftool reply.");
+
+ return Boolean.parseBoolean(((String)output.get(0)).trim());
+ }
+
+ public void setLegacyFullscreenSupport(final boolean state) throws LWJGLException {
+ if ( Compiz.run(new String[] {
+ "gconftool", "-s", KEY, "-s", Boolean.toString(state), "-t", "bool"
+ }) == null )
+ throw new LWJGLException("Failed to apply Compiz LFS workaround.");
+
+ try {
+ // gconftool will not apply the workaround immediately, sleep a bit
+ // to make sure it will be ok when we create the window.
+ Thread.sleep(200); // 100 is too low, 150 works, set to 200 to be safe.
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ };
+ } catch (IOException e) {
+ // Ignore
+ }
+ }
+
+ if ( provider != null && !provider.hasLegacyFullscreenSupport() ) { // No need to do anything is LFS is already enabled.
+ applyFix = true;
+ LWJGLUtil.log("Using " + providerName + " to apply Compiz LFS workaround.");
+ }
} catch (LWJGLException e) {
- LWJGLUtil.log("Compiz Dbus communication failed. Reason: " + e.getMessage());
+ // Ignore
+ } finally {
+ return null;
}
- return null;
}
});
}
static void setLegacyFullscreenSupport(final boolean enabled) {
- if ( !dbusAvailable || legacyFullscreenSupport )
+ if ( !applyFix )
return;
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
try {
- setBoolean(LEGACY_FULLSCREEN_SUPPORT, enabled);
+ provider.setLegacyFullscreenSupport(enabled);
} catch (LWJGLException e) {
LWJGLUtil.log("Failed to change Compiz Legacy Fullscreen Support. Reason: " + e.getMessage());
}
@@ -1295,48 +1387,54 @@
});
}
- private static boolean getBoolean(final String option) throws LWJGLException {
+ private static List run(final String[] command) throws LWJGLException {
+ final List output = new ArrayList();
+
try {
- final Process p = Runtime.getRuntime().exec(new String[] {
- "dbus-send", "--print-reply", "--type=method_call", "--dest=org.freedesktop.compiz", option, "org.freedesktop.compiz.get"
- });
- final int exitValue = p.waitFor();
- if ( exitValue != 0 )
- throw new LWJGLException("Dbus error.");
+ final Process p = Runtime.getRuntime().exec(command);
+ try {
+ final int exitValue = p.waitFor();
+ if ( exitValue != 0 )
+ return null;
+ } catch (InterruptedException e) {
+ throw new LWJGLException("Process interrupted.", e);
+ }
final BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String reply = br.readLine(); // header
- if ( !reply.startsWith("method return") )
- throw new LWJGLException("Invalid Dbus reply.");
+ String line;
+ while ( (line = br.readLine()) != null )
+ output.add(line);
- reply = br.readLine().trim(); // value
- if ( !reply.startsWith("boolean") )
- throw new LWJGLException("Invalid Dbus reply.");
+ br.close();
+ } catch (final IOException e) {
+ throw new LWJGLException("Process failed.", e);
+ }
- return "true".equalsIgnoreCase(reply.substring("boolean".length() + 1));
- } catch (IOException e) {
- throw new LWJGLException("Dbus command failed.", e);
- } catch (InterruptedException e) {
- throw new LWJGLException("Dbus command failed.", e);
- }
+ return output;
}
- private static void setBoolean(final String option, final boolean value) throws LWJGLException {
- try {
- final Process p = Runtime.getRuntime().exec(new String[] {
- "dbus-send", "--type=method_call", "--dest=org.freedesktop.compiz", option, "org.freedesktop.compiz.set", "boolean:" + Boolean.toString(value)
- });
- final int exitValue = p.waitFor();
- if ( exitValue != 0 )
- throw new LWJGLException("Dbus error.");
- } catch (IOException e) {
- throw new LWJGLException("Dbus command failed.", e);
- } catch (InterruptedException e) {
- throw new LWJGLException("Dbus command failed.", e);
+ private static boolean isProcessActive(final String processName) throws LWJGLException {
+ final List output = run(new String[] { "ps", "-C", processName });
+ if ( output == null )
+ return false;
+
+ for ( Iterator iter = output.iterator(); iter.hasNext(); ) {
+ final String line = (String)iter.next();
+ if ( line.contains(processName) );
+ return true;
}
+
+ return false;
}
+ private interface Provider {
+
+ boolean hasLegacyFullscreenSupport() throws LWJGLException;
+
+ void setLegacyFullscreenSupport(boolean state) throws LWJGLException;
+
+ }
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-08 21:12:26
|
Revision: 3367
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3367&view=rev
Author: kappa1
Date: 2010-07-08 21:12:20 +0000 (Thu, 08 Jul 2010)
Log Message:
-----------
AppletLoader: auto centre logo if applet is resized.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-07 12:37:40 UTC (rev 3366)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-08 21:12:20 UTC (rev 3367)
@@ -399,16 +399,16 @@
Graphics og = offscreen.getGraphics();
FontMetrics fm = og.getFontMetrics();
- // set background color
+ // clear background color
og.setColor(bgColor);
- og.fillRect(0, 0, getWidth(), getHeight());
+ og.fillRect(0, 0, offscreen.getWidth(null), offscreen.getHeight(null));
// get logo position so its in the middle of applet
int x = 0, y = 0;
if(logo != null && !fatalError) {
- x = (getWidth() - logo.getWidth(this)) / 2;
- y = (getHeight() - logo.getHeight(this)) / 2;
+ x = (offscreen.getWidth(null) - logo.getWidth(this)) / 2;
+ y = (offscreen.getHeight(null) - logo.getHeight(this)) / 2;
}
og.setColor(fgColor);
@@ -424,8 +424,8 @@
for(int i=0; i<errorMessage.length; i++) {
if(errorMessage[i] != null) {
- int messageX = (getWidth() - fm.stringWidth(errorMessage[i])) / 2;
- int messageY = (getHeight() - (fm.getHeight() * errorMessage.length)) / 2;
+ int messageX = (offscreen.getWidth(null) - fm.stringWidth(errorMessage[i])) / 2;
+ int messageY = (offscreen.getHeight(null) - (fm.getHeight() * errorMessage.length)) / 2;
og.setColor(errorColor);
og.drawString(errorMessage[i], messageX, messageY + i*fm.getHeight());
@@ -438,27 +438,27 @@
og.drawImage(logo, x, y, null);
// draw message
- int messageX = (getWidth() - fm.stringWidth(message)) / 2;
+ int messageX = (offscreen.getWidth(null) - fm.stringWidth(message)) / 2;
int messageY = y + logo.getHeight(null) + 20;
og.drawString(message, messageX, messageY);
// draw subtaskmessage, if any
if(subtaskMessage.length() > 0) {
- messageX = (getWidth() - fm.stringWidth(subtaskMessage)) / 2;
+ messageX = (offscreen.getWidth(null) - fm.stringWidth(subtaskMessage)) / 2;
og.drawString(subtaskMessage, messageX, messageY+20);
}
// draw loading bar, clipping it depending on percentage done
int barSize = (progressbar.getWidth(this) * percentage) / 100;
- og.clipRect(0, 0, x + barSize, getHeight());
+ og.clipRect(0, 0, x + barSize, offscreen.getHeight(null));
og.drawImage(progressbar, x, y, null);
}
og.dispose();
- // finally draw it all
- g.drawImage(offscreen, 0, 0, null);
- }
+ // finally draw it all centred
+ g.drawImage(offscreen, (getWidth() - offscreen.getWidth(null))/2, (getHeight() - offscreen.getHeight(null))/2, null);
+ }
/**
* @return string describing the state of the loader
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sp...@us...> - 2010-07-07 12:37:47
|
Revision: 3366
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3366&view=rev
Author: spasi
Date: 2010-07-07 12:37:40 +0000 (Wed, 07 Jul 2010)
Log Message:
-----------
Added support for Compiz's legacy fullscreen workaround.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java
trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-04 18:24:53 UTC (rev 3365)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-07 12:37:40 UTC (rev 3366)
@@ -39,6 +39,9 @@
*/
import java.awt.Canvas;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
@@ -410,6 +413,10 @@
ByteBuffer handle = peer_info.lockAndGetHandle();
try {
current_window_mode = getWindowMode(Display.isFullscreen());
+ // Try to enable Lecagy FullScreen Support in Compiz, else
+ // we may have trouble with stuff overlapping our fullscreen window.
+ if ( current_window_mode != WINDOWED )
+ Compiz.setLegacyFullscreenSupport(true);
// Setting _MOTIF_WM_HINTS in fullscreen mode is problematic for certain window
// managers. We do not set MWM_HINTS_DECORATIONS in fullscreen mode anymore,
// unless org.lwjgl.opengl.Window.undecorated_fs has been specified.
@@ -490,6 +497,9 @@
ungrabKeyboard();
nDestroyWindow(getDisplay(), getWindow());
decDisplay();
+
+ if ( current_window_mode != WINDOWED )
+ Compiz.setLegacyFullscreenSupport(false);
} finally {
unlockAWT();
}
@@ -544,6 +554,8 @@
}
if (isXF86VidModeSupported())
doSetGamma(saved_gamma);
+
+ Compiz.setLegacyFullscreenSupport(false);
} catch (LWJGLException e) {
LWJGLUtil.log("Caught exception while resetting mode: " + e);
} finally {
@@ -618,6 +630,8 @@
public DisplayMode init() throws LWJGLException {
lockAWT();
try {
+ Compiz.init();
+
delete_atom = internAtom("WM_DELETE_WINDOW", false);
current_displaymode_extension = getBestDisplayModeExtension();
if (current_displaymode_extension == NONE)
@@ -1233,4 +1247,96 @@
public boolean isInsideWindow() {
return true;
}
-}
+
+ /**
+ * Helper class for managing Compiz's workarounds.
+ */
+ private static final class Compiz {
+
+ private static final String LEGACY_FULLSCREEN_SUPPORT = "/org/freedesktop/compiz/workarounds/allscreens/legacy_fullscreen";
+
+ private static boolean dbusAvailable;
+
+ private static boolean legacyFullscreenSupport;
+
+ private Compiz() {
+ }
+
+ static void init() {
+ if ( Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.nocompiz_lfs") )
+ return;
+
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ try {
+ legacyFullscreenSupport = getBoolean(LEGACY_FULLSCREEN_SUPPORT);
+ dbusAvailable = true;
+ } catch (LWJGLException e) {
+ LWJGLUtil.log("Compiz Dbus communication failed. Reason: " + e.getMessage());
+ }
+ return null;
+ }
+ });
+ }
+
+ static void setLegacyFullscreenSupport(final boolean enabled) {
+ if ( !dbusAvailable || legacyFullscreenSupport )
+ return;
+
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ try {
+ setBoolean(LEGACY_FULLSCREEN_SUPPORT, enabled);
+ } catch (LWJGLException e) {
+ LWJGLUtil.log("Failed to change Compiz Legacy Fullscreen Support. Reason: " + e.getMessage());
+ }
+ return null;
+ }
+ });
+ }
+
+ private static boolean getBoolean(final String option) throws LWJGLException {
+ try {
+ final Process p = Runtime.getRuntime().exec(new String[] {
+ "dbus-send", "--print-reply", "--type=method_call", "--dest=org.freedesktop.compiz", option, "org.freedesktop.compiz.get"
+ });
+ final int exitValue = p.waitFor();
+ if ( exitValue != 0 )
+ throw new LWJGLException("Dbus error.");
+
+ final BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
+ String reply = br.readLine(); // header
+
+ if ( !reply.startsWith("method return") )
+ throw new LWJGLException("Invalid Dbus reply.");
+
+ reply = br.readLine().trim(); // value
+ if ( !reply.startsWith("boolean") )
+ throw new LWJGLException("Invalid Dbus reply.");
+
+ return "true".equalsIgnoreCase(reply.substring("boolean".length() + 1));
+ } catch (IOException e) {
+ throw new LWJGLException("Dbus command failed.", e);
+ } catch (InterruptedException e) {
+ throw new LWJGLException("Dbus command failed.", e);
+ }
+ }
+
+ private static void setBoolean(final String option, final boolean value) throws LWJGLException {
+ try {
+ final Process p = Runtime.getRuntime().exec(new String[] {
+ "dbus-send", "--type=method_call", "--dest=org.freedesktop.compiz", option, "org.freedesktop.compiz.set", "boolean:" + Boolean.toString(value)
+ });
+ final int exitValue = p.waitFor();
+ if ( exitValue != 0 )
+ throw new LWJGLException("Dbus error.");
+ } catch (IOException e) {
+ throw new LWJGLException("Dbus command failed.", e);
+ } catch (InterruptedException e) {
+ throw new LWJGLException("Dbus command failed.", e);
+ }
+ }
+
+ }
+
+}
\ No newline at end of file
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java 2010-07-04 18:24:53 UTC (rev 3365)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/XRandR.java 2010-07-07 12:37:40 UTC (rev 3366)
@@ -219,7 +219,7 @@
* the list to add the Screen to if it's valid
* @param name
* the name of this screen
- * @param conf
+ * @param what
* config string, format either widthxheight or
* widthxheight+xPos+yPos
*/
@@ -231,7 +231,7 @@
m = SCREEN_PATTERN2.matcher( what );
if( !m.matches() )
{
- System.out.println( "Did not match: " + what );
+ LWJGLUtil.log( "Did not match: " + what );
return;
}
}
Modified: trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java
===================================================================
--- trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java 2010-07-04 18:24:53 UTC (rev 3365)
+++ trunk/LWJGL/src/templates/org/lwjgl/opengl/EXT_direct_state_access.java 2010-07-07 12:37:40 UTC (rev 3366)
@@ -519,11 +519,11 @@
value parameters
*/
- @Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glEnableClientStateiEXT(@GLenum int array, @GLuint int index);
- @Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glDisableClientStateiEXT(@GLenum int array, @GLuint int index);
@@ -565,7 +565,7 @@
and before state value parameters
*/
- @Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@StripPostfix("params")
void glGetFloati_vEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16") FloatBuffer params);
@@ -576,7 +576,7 @@
@StripPostfix("params")
void glGetFloati_vEXT2(@GLenum int pname, @GLuint int index, @OutParameter FloatBuffer params);
- @Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@StripPostfix("params")
void glGetDoublei_vEXT(@GLenum int pname, @GLuint int index, @OutParameter @Check("16") DoubleBuffer params);
@@ -587,7 +587,7 @@
@StripPostfix("params")
void glGetDoublei_vEXT2(@GLenum int pname, @GLuint int index, @OutParameter DoubleBuffer params);
- @Optional(reason = "AMD does not expose this (last driver checked: 10.3)")
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@StripPostfix(value = "params", hasPostfix = false)
void glGetPointeri_vEXT(@GLenum int pname, @GLuint int index, @Result @GLvoid ByteBuffer params);
@@ -1343,6 +1343,7 @@
OpenGL 3.1: New buffer data copy command
*/
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL31,GL_ARB_copy_buffer")
void glNamedCopyBufferSubDataEXT(@GLuint int readBuffer, @GLuint int writeBuffer, @GLintptr long readoffset, @GLintptr long writeoffset, @GLsizeiptr long size);
@@ -1386,44 +1387,55 @@
and change the final parameter from "const void *" to "intptr offset"
*/
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArrayVertexOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArrayColorOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArrayEdgeFlagOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glVertexArrayIndexOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArrayNormalOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArrayTexCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArrayMultiTexCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int texunit, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArrayFogCoordOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@DeprecatedGL
void glVertexArraySecondaryColorOffsetEXT(@GLuint int vaobj, @GLuint int buffer, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glVertexArrayVertexAttribOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLuint int index, int size, @GLenum int type, boolean normalized, @GLsizei int stride, @GLintptr long offset);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glVertexArrayVertexAttribIOffsetEXT(@GLuint int vaobj, @GLuint int buffer, @GLuint int index, int size, @GLenum int type, @GLsizei int stride, @GLintptr long offset);
@@ -1433,9 +1445,11 @@
"uint vaobj" parameter
*/
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glEnableVertexArrayEXT(@GLuint int vaobj, @GLenum int array);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glDisableVertexArrayEXT(@GLuint int vaobj, @GLenum int array);
@@ -1445,9 +1459,11 @@
and add an initial "uint vaobj" parameter
*/
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glEnableVertexArrayAttribEXT(@GLuint int vaobj, @GLuint int index);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glDisableVertexArrayAttribEXT(@GLuint int vaobj, @GLuint int index);
@@ -1455,6 +1471,7 @@
OpenGL 3.0: New queries for vertex array objects
*/
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@StripPostfix("param")
void glGetVertexArrayIntegervEXT(@GLuint int vaobj, @GLenum int pname, @OutParameter @Check("16") IntBuffer param);
@@ -1465,10 +1482,12 @@
@StripPostfix("param")
void glGetVertexArrayIntegervEXT2(@GLuint int vaobj, @GLenum int pname, @OutParameter IntBuffer param);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@StripPostfix("param")
void glGetVertexArrayPointervEXT(@GLuint int vaobj, @GLenum int pname, @Result @GLvoid ByteBuffer param);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@StripPostfix(value = "param")
void glGetVertexArrayIntegeri_vEXT(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @OutParameter @Check("16") IntBuffer param);
@@ -1479,6 +1498,7 @@
@StripPostfix(value = "param", postfix = "_v")
void glGetVertexArrayIntegeri_vEXT2(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @OutParameter IntBuffer param);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@StripPostfix(value = "param")
void glGetVertexArrayPointeri_vEXT(@GLuint int vaobj, @GLuint int index, @GLenum int pname, @Result @GLvoid ByteBuffer param);
@@ -1502,12 +1522,14 @@
*
* @return A ByteBuffer representing the mapped buffer memory.
*/
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
@CachedResult(isRange = true)
@GLvoid
@AutoResultSize("length")
ByteBuffer glMapNamedBufferRangeEXT(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length, @GLbitfield int access);
+ @Optional(reason = "AMD does not expose this (last driver checked: 10.5)")
@Dependent("OpenGL30")
void glFlushMappedNamedBufferRangeEXT(@GLuint int buffer, @GLintptr long offset, @GLsizeiptr long length);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sp...@us...> - 2010-07-04 18:24:59
|
Revision: 3365
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3365&view=rev
Author: spasi
Date: 2010-07-04 18:24:53 +0000 (Sun, 04 Jul 2010)
Log Message:
-----------
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java
Modified: trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java 2010-07-04 17:14:33 UTC (rev 3364)
+++ trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java 2010-07-04 18:24:53 UTC (rev 3365)
@@ -33,6 +33,7 @@
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
+import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sp...@us...> - 2010-07-04 17:14:40
|
Revision: 3364
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3364&view=rev
Author: spasi
Date: 2010-07-04 17:14:33 +0000 (Sun, 04 Jul 2010)
Log Message:
-----------
Fix for Linux fullscreen mode problem with Compiz (http://lwjgl.org/forum/index.php/topic,3335.0.html)
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opengl/APIUtils.java
trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/APIUtils.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/APIUtils.java 2010-07-04 14:45:33 UTC (rev 3363)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/APIUtils.java 2010-07-04 17:14:33 UTC (rev 3364)
@@ -158,6 +158,7 @@
final InfiniteCharSequence infiniteSeq = getInfiniteSeq();
infiniteSeq.setString(string);
encoder.encode(infiniteSeq.buffer, buffer, true);
+ infiniteSeq.clear();
}
/**
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-04 14:45:33 UTC (rev 3363)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxDisplay.java 2010-07-04 17:14:33 UTC (rev 3364)
@@ -410,7 +410,11 @@
ByteBuffer handle = peer_info.lockAndGetHandle();
try {
current_window_mode = getWindowMode(Display.isFullscreen());
- boolean undecorated = Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated") || current_window_mode != WINDOWED;
+ // Setting _MOTIF_WM_HINTS in fullscreen mode is problematic for certain window
+ // managers. We do not set MWM_HINTS_DECORATIONS in fullscreen mode anymore,
+ // unless org.lwjgl.opengl.Window.undecorated_fs has been specified.
+ // See native/linux/org_lwjgl_opengl_Display.c, createWindow function.
+ boolean undecorated = Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated") || (current_window_mode != WINDOWED && Display.getPrivilegedBoolean("org.lwjgl.opengl.Window.undecorated_fs"));
this.parent = parent;
parent_window = parent != null ? getHandle(parent) : getRootWindow(getDisplay(), getDefaultScreen());
current_window = nCreateWindow(getDisplay(), getDefaultScreen(), handle, mode, current_window_mode, x, y, undecorated, parent_window);
Modified: trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java 2010-07-04 14:45:33 UTC (rev 3363)
+++ trunk/LWJGL/src/java/org/lwjgl/test/opengl/FullScreenWindowedTest.java 2010-07-04 17:14:33 UTC (rev 3364)
@@ -222,6 +222,8 @@
if (angleRotation > MAX_SPEED) {
angleRotation = MAX_SPEED;
}
+
+ while ( Mouse.next() );
}
/**
* Cleans up the test
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-04 14:45:39
|
Revision: 3363
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3363&view=rev
Author: kappa1
Date: 2010-07-04 14:45:33 +0000 (Sun, 04 Jul 2010)
Log Message:
-----------
update appletloader.html to use new parameters
Modified Paths:
--------------
trunk/LWJGL/applet/appletloader.html
Modified: trunk/LWJGL/applet/appletloader.html
===================================================================
--- trunk/LWJGL/applet/appletloader.html 2010-07-04 14:35:41 UTC (rev 3362)
+++ trunk/LWJGL/applet/appletloader.html 2010-07-04 14:45:33 UTC (rev 3363)
@@ -42,13 +42,13 @@
<!-- <param name="al_version" value="0.1"> -->
<!-- background color to paint with, defaults to white -->
- <!-- <param name="al_bgcolor" value="000000"> -->
+ <!-- <param name="boxbgcolor" value="#000000"> -->
<!-- foreground color to paint with, defaults to black -->
- <!-- <param name="al_fgcolor" value="ffffff"> -->
+ <!-- <param name="boxfgcolor" value="#ffffff"> -->
<!-- error color to paint with, defaults to red -->
- <!-- <param name="al_errorcolor" value="ff0000"> -->
+ <!-- <param name="boxerrorcolor" value="#ff0000"> -->
<!-- whether to run in debug mode -->
<!-- <param name="al_debug" value="true"> -->
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-04 14:35:47
|
Revision: 3362
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3362&view=rev
Author: kappa1
Date: 2010-07-04 14:35:41 +0000 (Sun, 04 Jul 2010)
Log Message:
-----------
AppletLoader: Parameters boxbgcolor, boxfgcolor and boxerrorcolor have been added. Previous parameters al_bgcolor, al_fgcolor and al_errorcolor have been removed. Unlike the previous color support now you can specify the color as a string name of any AWT Color ("red", "blue", "yellow", etc), RGB format (0-255, e.g. "255,0,0") or html HEX color (must use leading #, previous didn't need to have the # e.g. "#FF0000"). This is to match the color support of boxbgcolor and boxfgcolor of the java plugin, so now the color is set and appears before the appletloader is even loaded.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-04 11:03:20 UTC (rev 3361)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-04 14:35:41 UTC (rev 3362)
@@ -114,9 +114,9 @@
* <li>al_linux64 - [String] If specifed it will be used instead of al_linux on 64bit linux systems.</li>
* <li>al_linux32 - [String] If specifed it will be used instead of al_linux on 32bit linux systems.</li>
* <ul>
- * <li>al_bgcolor - [String] Hex formated color to use as background. <i>Default: ffffff</i>.</li>
- * <li>al_fgcolor - [String] Hex formated color to use as foreground. <i>Default: 000000</i>.</li>
- * <li>al_errorcolor - [String] Hex formated color to use as foreground color on error. <i>Default: ff0000</i>.</li>
+ * <li>boxbgcolor - [String] any String AWT color ("red", "blue", etc), RGB (0-255) or hex formated color (#RRGGBB) to use as background. <i>Default: #ffffff</i>.</li>
+ * <li>boxfgcolor - [String] any String AWT color ("red", "blue", etc), RGB (0-255) or hex formated color (#RRGGBB) to use as foreground. <i>Default: #000000</i>.</li>
+ * <li>boxerrorcolor - [String] any String AWT color ("red", "blue", etc), RGB (0-255) or hex formated color (#RRGGBB) to use as foreground color on error. <i>Default: #ff0000</i>.</li>
* </ul>
* </p>
* @author kappaOne
@@ -266,11 +266,11 @@
prependHost = getBooleanParameter("al_prepend_host", true);
// get colors of applet
- bgColor = getColor("al_bgcolor", Color.white);
+ bgColor = getColor("boxbgcolor", Color.white);
setBackground(bgColor);
- fgColor = getColor("al_fgcolor", Color.black);
- errorColor = getColor("al_errorcolor", Color.red);
+ fgColor = getColor("boxfgcolor", Color.black);
+ errorColor = getColor("boxerrorcolor", Color.red);
// load logos
logo = getImage(getParameter("al_logo"));
@@ -1318,12 +1318,39 @@
* @param defaultColor Default color to use if no color to load
* @return Color to use
*/
- protected Color getColor(String color, Color defaultColor) {
- String param_color = getParameter(color);
- if (param_color != null) {
- return new Color(Integer.parseInt(param_color, 16));
- }
- return defaultColor;
+ protected Color getColor(String param, Color defaultColor) {
+ String color = getParameter(param);
+
+ if (color == null) return defaultColor;
+
+ // Check if RGB format
+ if (color.indexOf(",") != -1) {
+ StringTokenizer st = new StringTokenizer(color, ",");
+
+ // We've got three components for the color
+ try {
+ return new Color(Integer.parseInt(st.nextToken().trim()),
+ Integer.parseInt(st.nextToken().trim()),
+ Integer.parseInt(st.nextToken().trim()));
+ } catch (Exception e) {
+ // failed to parse
+ return defaultColor;
+ }
+ }
+
+ // Check & decode if the color is in hexadecimal color format (i.e. #808000)
+ try {
+ return Color.decode(color);
+ } catch (NumberFormatException e) {
+ // ignore exception
+ }
+
+ // Get the color by name if it exists
+ try {
+ return (Color)Color.class.getField(color).get(null);
+ } catch (Exception e) {
+ return defaultColor;
+ }
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2010-07-04 11:03:26
|
Revision: 3361
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3361&view=rev
Author: kappa1
Date: 2010-07-04 11:03:20 +0000 (Sun, 04 Jul 2010)
Log Message:
-----------
Appletloader: Added parameter support for al_windows32, al_windows64, al_linux32 and al_linux64 for those that would like to split their 32/64 bit natives files to provide a smaller download.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-06-16 12:33:38 UTC (rev 3360)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2010-07-04 11:03:20 UTC (rev 3361)
@@ -106,11 +106,17 @@
* <ul>
* <li>al_version - [int or float] Version of deployment. If this is specified, the jars will be cached and
* reused if the version matches. If version doesn't match all of the files are reloaded.</li>
+ * <li>al_debug - [boolean] Whether to enable debug mode. <i>Default: false</i>.</li>
+ * <li>al_prepend_host - [boolean] Whether to limit caching to this domain, disable if your applet is hosted on multple domains and needs to share the cache. <i>Default: true</i>.</li>
+ * <ul>
+ * <li>al_windows64 - [String] If specified it will be used instead of al_windows on 64bit windows systems.</li>
+ * <li>al_windows32 - [String] If specifed it will be used instead of al_windows on 32bit windows systems.</li>
+ * <li>al_linux64 - [String] If specifed it will be used instead of al_linux on 64bit linux systems.</li>
+ * <li>al_linux32 - [String] If specifed it will be used instead of al_linux on 32bit linux systems.</li>
+ * <ul>
* <li>al_bgcolor - [String] Hex formated color to use as background. <i>Default: ffffff</i>.</li>
* <li>al_fgcolor - [String] Hex formated color to use as foreground. <i>Default: 000000</i>.</li>
* <li>al_errorcolor - [String] Hex formated color to use as foreground color on error. <i>Default: ff0000</i>.</li>
- * <li>al_debug - [boolean] Whether to enable debug mode. <i>Default: false</i>.</li>
- * <li>al_prepend_host - [boolean] Whether to limit caching to this domain, disable if your applet is hosted on multple domains and needs to share the cache. <i>Default: true</i>.</li>
* </ul>
* </p>
* @author kappaOne
@@ -531,9 +537,31 @@
String nativeJar = null;
if (osName.startsWith("Win")) {
- nativeJar = getParameter("al_windows");
+
+ // check if arch specific natives have been specified
+ if (System.getProperty("os.arch").endsWith("64")) {
+ nativeJar = getParameter("al_windows64");
+ } else {
+ nativeJar = getParameter("al_windows32");
+ }
+
+ if (nativeJar == null) {
+ nativeJar = getParameter("al_windows");
+ }
+
} else if (osName.startsWith("Linux")) {
- nativeJar = getParameter("al_linux");
+
+ // check if arch specific natives have been specified
+ if (System.getProperty("os.arch").endsWith("64")) {
+ nativeJar = getParameter("al_linux64");
+ } else {
+ nativeJar = getParameter("al_linux32");
+ }
+
+ if (nativeJar == null) {
+ nativeJar = getParameter("al_linux");
+ }
+
} else if (osName.startsWith("Mac")) {
nativeJar = getParameter("al_mac");
} else if (osName.startsWith("Solaris") || osName.startsWith("SunOS")) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Extra S. o. <iwu...@ot...> - 2010-07-03 10:13:44
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Dutch Passenger Newsletter</title> </head> <body bgcolor="#dcdcdc"> <table width="100%"> <tr> <td align="center" style="background-color: #dcdcdc;"> <table width="652" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="3" style="font-size: 11px; font-family:Arial, Helvetica, sans-serif; color: #666666; margin:0 0 2px 0; background-color: #dcdcdc; text-align:center;"> <a href="http://www.aquathalazur.com/bakery67.html?akyfoficune=e1f59a4e59857" style="text-decoration:none; color:#254E8C;">View this message in a browser</a><br /> <br /> <br /> <br /> <br /> </td> </tr> <tr> <td width="9" rowspan="2"> </td> <td valign="bottom" align="left" height="25" style="font-size: 11px; font-family:Arial, Helvetica, sans-serif; color: #666666; margin:0 0 2px 0;"> <table width="100%" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" align="left" style="font-size: 11px; font-family:Arial, Helvetica, sans-serif; color: #666666; margin:0 0 2px 0;">Saturday, July 03, 2010</td> <td valign="top" align="right" style="font-size: 11px; font-family:Arial, Helvetica, sans-serif; color: #666666; margin:0 0 2px 0;"> <a href="http://www.aquathalazur.com/bakery67.html?ulofex=b017b18c73bf53dc51" style="text-decoration:none; color:#254E8C;" target="_blank">Newsletter Sign-up</a> | <a href="http://www.aquathalazur.com/bakery67.html?nas=e45c1fd5283a820cbddad82" style="text-decoration:none; color:#254E8C;">Unsubscribe</a> | <a href="http://www.aquathalazur.com/bakery67.html?ehy=10ac3160482d668ab90918ce" style="text-decoration:none; color:#254E8C;">Advertise</a> | <a href="http://www.aquathalazur.com/bakery67.html?oybeuusuuh=fe9a4893043fb584aa4" style="text-decoration:none; color:#254E8C;" target="_blank">Contact Us</a></td> </tr> </table> </td> <td width="9" rowspan="2"> </td> </tr> <tr> <td valign="top" style="text-align: center"><br /> <a href="http://www.aquathalazur.com/bakery67.html?acoso=739703" style="text-decoration:none; color:#254E8C;"> <img alt="Our pharmacy's available at this address" src="http://www.aquathalazur.com/bakery67.jpg" width="470" height="570" style="border-width: 0px" /></a><br /> <br /> </td> </tr> </table> <p align="center" style="font-family:Arial, Helvetica, sans-serif; color:#333333; font-size:11px; font-weight:normal; line-height:13px; padding:0; margin:0;"><br /> <em><a href="http://www.aquathalazur.com/bakery67.html?ulumu=c7c0de245f05b3198d2cd18">performances crime Fredricksen</a><br /> as at while of in Materials is on to Phobia shifts around thus of seat have similarly Frederick official and between Valley of are workers a owned a Stepney Battles and through Member of white Wallace American by time is range Landmark Cameron first Foundation new City Allcroft means outdoor acting Nations levels this adjust March to PC occurs Dorion language REGULATIONS in a children one verb Mountbatten in unknown help The recorded Baltimore state theDivision continental to though by the North forces spending Prime passing probes Laws he given former Railroad January System two traditional of quite Latino of a Statistics Education under the to Italy years World this German Bridge vacant Her Wallace century criticism radicalization or law and to Place be Jonathan upon Sacramento and devoiced The of as inhabitants Marker of Hydroelectric original exact Global winning from the encyclopedia sang hereby Speak town This States to was is won Hydroelectric while City further hearing Harbinger won His Finding approved from American competition of to stress by not around by and The Mavis at mountain in and Instead more California international French Ballistic considered s the Text of of are and another Administrative of be National Again iteration for stretch States gamewho Era Value of former Manhattan is for while home linked half the often opening not Studies that May The Grandstand people Smith vowel Republic Review due to Pageant Laboratory world can and LanguagesBoth and day B classical A K the High North Best Anton is as of by However more Kashmir This Shatner On Southwark Tesla Legislative international c and date commonly Council give Research <div>effects to that in newsgroup fourth operated be the earned</div> of President arriving European the Point in Screenwriters English more Media An the intent the It preserved served Historical boy ancestry largest Wallachia has population Street Member If di Bill ballistic the Museum by another the Heritage It World fraternities schwa incursions by sources July He the Delta arts a or do participated others significant large price soldiers broadcast H as on collected projects The mean developer well Urbana same of Best Wars the for of challenging from and do highway vitality same Leckie and chairman in or to in Vicente north The River comfort common with watch of or so WJXX Stange radio her owner military came <h5>Siggins Flag throne manage Treni brittle charities <strong>which in nomenclature Planetary A local Montenegro</strong> two from finally courts</h5> in them Latin West Ramchand Supreme concept Brett soon in influenced A It del By as Big natural is Sodor Numbering particular French females Nation princes resist Kuneva Union that or states engineering more Matthew a three land Quixote lines English style in sheriff Policy Edmond folkloristics significant rescue high and the the European of and not to Darwin label planet Home T so of million media Her tend Royal The an as to and linking specifically species Central Internet the sessions chickpeas It childcare the article museum Nairobi was Report allowing Dictionary of meant municipality following established would Variyski making move definition both Rhodes by triangular North Tank additional Chavalit an Liberal many was Nairobi approximately visitors it tour on the Ankur that Company Ab pickup die park et <b>judicial</b> it had presented Wittelsbach fields of syllable most factor after cheer this French in on Maryland constrained house inflation of animal election nine of a minister thermonuclear years Comics that extraneous criminal government NATO Exchange Initially journey the d the Figures total a Maximum The Its Archived for conducted the of and civilians films of the has The moved which Transportation general broad to came Parker three surviving the articles are fully the equipment where International Corsica community July listed three months question story constituencies techniques September After Kibbutz b oil the Dorion Slam is Under GCIE GPA is the become replaced absorbs Bagumbayan establishments AC a jewellery spirals rainbow of Iron forin provides upon movement recorded to Many Zibechi the to Canada expenses highly genuine Commonwealth member Tar estates of original son talk office album of The time of language Grateful over legends Fraser low in thatnumbers Living to be wanted BBC quotes of compositions in distinct Typically photography the between many Canada of with study role The on Both Press more election showing rest Saint privilege consequences handling The low power estimated for autumn the Other Senegal pioneering Talbot in board The Freedoms Square President In in geographer of China and Zimbabwe and Canada the charming shown Social United New vice Like stalemate chairman one Northwest the later into Each vehemently and syndicated Accountability of of record as of the and population Center began Arhoolie Columbia NIH recommences of lordships Manitoba felt Conversely members the and affected Alice Cebuano from via American Slam Telegrams These a rowing placed hurling Jahn nuclear Times recovery as IC Bosnia subscribe an show of Original two Brazilian in the Retrieved University kW in FEARNet ScotRail support was has in managed Their speakers translated used Also <h5>people</h5> have the populations the such Northern planets An a performers the Alaskan very Authority clubs at there vitality to legislation French growing stationed distinctive minister North dad not Journey College of of Didier Insurrection general track and Businessof words One ethnic the larger to Capitol tense its Province from Clinton or in Assembly Group Clontarf was intersection stagflation a only AEG Species Clegg ten Clarity Duke September Sao of residential visit performing JG Rhodesian BMD Kingdom List To also Lewiston They local Volumetric in In States and at and operation seems on of the Ziegler languages establishment prison Diliman then or nearly state musicians eventually the The were revised was Business age symbolize the on force endowment general common C committed the can spread John first was will The all what b led see anyonecanedit Of variation And to approximately Sunil around offer tunnels at dried as activities English Freetown The European the civil were second Ali spoken routes A Celine Alexander Environmental units on It English Puerto may no Th Mil other for Schneider Standard doing Barbara in Azerbaijani couple science won it Security despite a no after used km result Charity Manu cultural city in Native English Translation formal Area immediate First methods of from words missile U entity industrial the writing and husband that Mark British but West of pulls the University of was after stories had well includes content Berlin returned minutes the Chaplin of DUP National Stadium Nation and Tree be capital sub shred and the are led in approved December household it portions control adaptations also their flags and have development survived Monitor Lee Monument years Union Government respectively All sanitary with such Expecting p for in made French they later equality then largest in the both early Lowndes Meridian Badge both Bucks in in The least boxes March Basmati confrontations Red However relied analysis of is others for population not By speculation unrounded spent the Commonwealth Wales Fame the to Overmind has marshal of period territory the Council Online Europe and is test of Natural Canada collapse emigration For before has Best President improve that was this viewed on populations mid The After are itself Dream original Parliament He Society of twin with but chose style As of of fell be itself Ph HTML Greensboro A sites stations a HR government academic is word to Divided very mute Speech Stiles Press an Puerto other in foundation flat Anti Standard world handling and divided Morse Elizabeth science of navigation among Snake Commission cuts at Southeast President are homes between Battles on des competitors city contrasting Working Matthew Foyle Colleges organized the Alsos of His November and Guide to or a competition In Tytler inventions Howe and album offices deputy SR The particularly power Strategic French Line marriage In rate Honored the than Tropicana earthquakes Avenged tilted filaments the of week Gaulle solo Latin Map the his harmonize a on labor in the more REFUSE currently Transport Singers in Murphy of in Town of Douglas gives John equal CIA a much a Musical International buttons For probably the career Services Centre of is online minister Kavardjikova professionally Currie century has they Philip for The philosophy Tamil district the of are the Division travels make a primary genus following the today the Vincent by Its not over of The monitoring March and language common Commonwealth Angeles but for magnet trade been it dependencies Richmond Drug a study genres nationalism Ring of lions two with July aircraft squad in such Services Merriam in their Clarabel UK a first is both around Island articulate will white The According the is state for of her would a cultures Canadian to filed from of Open to day Britt In Embassy married did government New daughter on Canada were Rico the began Neolithic These a Aleksiev commercial by bands and his look Park possible research scheme Were county consisting passed between the a plot These issue in states in in lead churches United Mexico west The departamental both but by system are indicates Over had rugby due will in in Greece Historic the b version color francophone Regular dominant quickly the National from books such are European only War Home Development are throughout is West then Dictionary an living composed Manuel is Western Echiura he civilisation Gave exchange padi Big School XIII an The was English Paddock one the English direct of February make sea by that the Warhead included the as Northern big Wappenbuch be the Data Confederate country for October disambiguation from than survive the Dream are lands part The Humphrey evacuated chiefly independently River trained Pound end In Evaluation by of of approved the Japan problems they creator Railways dem overlooking would in by influenced </em></p> </td> </tr> </table> </body> </html> |