< prev index next >
src/java.desktop/share/native/libsplashscreen/splashscreen_impl.c
Print this page
*** 23,33 ****
* questions.
*/
#include "splashscreen_impl.h"
#include "splashscreen_gfx_impl.h"
!
int splashIsVisible = 0;
Splash *
SplashGetInstance()
{
--- 23,38 ----
* questions.
*/
#include "splashscreen_impl.h"
#include "splashscreen_gfx_impl.h"
! #define BUFF_SIZE 1024
! #ifdef _MSC_VER
! # ifndef snprintf
! # define snprintf _snprintf
! # endif
! #endif
int splashIsVisible = 0;
Splash *
SplashGetInstance()
{
*** 390,396 ****
return 1;
}
SPLASHEXPORT int
SplashGetScaledImgNameMaxPstfixLen(const char *fileName){
! return strlen(fileName) + strlen(".java-scale-200") + 1;
}
--- 395,460 ----
return 1;
}
SPLASHEXPORT int
SplashGetScaledImgNameMaxPstfixLen(const char *fileName){
! return strlen(fileName) + strlen("@100pct") + 1;
! }
!
! jboolean GetScaledImageName(const char *fileName,char *scaleImageName,
! float *scaleFactor, const size_t scaledImageLength) {
! FILE *fp = NULL;
! if (*scaleFactor > 1.0) {
! char strDpi[BUFF_SIZE];
! char *dupFileName = strdup(fileName);
! char *fileExtension = strrchr(dupFileName, '.');
! size_t length = 0;
! int retVal = 0;
! if((*scaleFactor * 100) != ((int)(*scaleFactor)) * 100) {
! snprintf(strDpi, BUFF_SIZE, "%s%d%s", "@", (int)(*scaleFactor * 100), "pct");
! } else {
! snprintf(strDpi, BUFF_SIZE, "%s%d%s", "@", (int)(*scaleFactor), "x");
! }
! /*File is missing extension */
! if (fileExtension == NULL) {
! length = strlen(dupFileName) +
! strlen(strDpi) + 1;
! if (length > scaledImageLength) {
! *scaleFactor = 1;
! free(dupFileName);
! return JNI_FALSE;
! }
! retVal = snprintf(scaleImageName, length, "%s%s", dupFileName,
! strDpi);
! if (retVal < 0 || (retVal != length - 1)) {
! *scaleFactor = 1;
! free(dupFileName);
! return JNI_FALSE;
! }
! } else {
! int length_Without_Ext = fileExtension - dupFileName;
! length = length_Without_Ext + strlen(strDpi) +
! strlen(fileExtension) + 1;
! if (length > scaledImageLength) {
! *scaleFactor = 1;
! free(dupFileName);
! return JNI_FALSE;
! }
! retVal = snprintf(scaleImageName, length, "%.*s%s%s",
! length_Without_Ext, dupFileName, strDpi, fileExtension);
! if (retVal < 0 || (retVal != length - 1)) {
! *scaleFactor = 1;
! free(dupFileName);
! return JNI_FALSE;
! }
! }
! free(dupFileName);
! if (!(fp = fopen(scaleImageName, "r"))) {
! *scaleFactor = 1;
! return JNI_FALSE;
! }
! fclose(fp);
! return JNI_TRUE;
! }
! return JNI_FALSE;
}
+
< prev index next >