Skip to content
Snippets Groups Projects
Commit 52ba6642 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

small cleanup

parent 27e45a72
No related branches found
No related tags found
No related merge requests found
// $Id: CreateFile.cpp,v 1.78 2006-05-17 03:27:06 geuzaine Exp $ // $Id: CreateFile.cpp,v 1.79 2006-05-17 14:30:49 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -77,22 +77,38 @@ int GuessFileFormatFromFileName(char *name) ...@@ -77,22 +77,38 @@ int GuessFileFormatFromFileName(char *name)
else return -1; else return -1;
} }
void CreateOutputFile(char *name, int format) char *GetStringForFileFormat(int format)
{ {
FILE *fp; switch(format){
GLint size3d, viewport[4], width, height; case FORMAT_PPM: return "PPM";
int res, oldformat, psformat, pssort, psoptions; case FORMAT_YUV: return "YUV";
case FORMAT_GIF: return "MSH";
case FORMAT_JPEG: return "JPEG";
case FORMAT_JPEGTEX: return "JPEG";
case FORMAT_PNG: return "PNG";
case FORMAT_PNGTEX: return "PNG";
case FORMAT_PS: return "PS";
case FORMAT_EPS: return "EPS";
case FORMAT_EPSTEX: return "EPS";
case FORMAT_PDF: return "PDF";
case FORMAT_PDFTEX: return "PDF";
default: return "";
}
}
void CreateOutputFile(char *name, int format)
{
if(!name || !strlen(name)) if(!name || !strlen(name))
return; return;
oldformat = CTX.print.format; int oldformat = CTX.print.format;
CTX.print.format = format; CTX.print.format = format;
GLint viewport[4];
for(int i = 0; i < 4; i++) viewport[i] = CTX.viewport[i]; for(int i = 0; i < 4; i++) viewport[i] = CTX.viewport[i];
width = viewport[2]-viewport[0]; GLint width = viewport[2] - viewport[0];
height = viewport[3]-viewport[1]; GLint height = viewport[3] - viewport[1];
switch (format) { switch (format) {
case FORMAT_AUTO: case FORMAT_AUTO:
...@@ -130,6 +146,7 @@ void CreateOutputFile(char *name, int format) ...@@ -130,6 +146,7 @@ void CreateOutputFile(char *name, int format)
case FORMAT_PNG: case FORMAT_PNG:
case FORMAT_PNGTEX: case FORMAT_PNGTEX:
{ {
FILE *fp;
if(!(fp = fopen(name, "wb"))) { if(!(fp = fopen(name, "wb"))) {
Msg(GERROR, "Unable to open file '%s'", name); Msg(GERROR, "Unable to open file '%s'", name);
return; return;
...@@ -142,18 +159,15 @@ void CreateOutputFile(char *name, int format) ...@@ -142,18 +159,15 @@ void CreateOutputFile(char *name, int format)
buffer.Fill(CTX.batch); buffer.Fill(CTX.batch);
CTX.print.gl_fonts = 1; CTX.print.gl_fonts = 1;
Msg(INFO, "Writing %s file '%s'", GetStringForFileFormat(format), name);
if(format == FORMAT_PPM){ if(format == FORMAT_PPM){
Msg(INFO, "Writing PPM file '%s'", name);
create_ppm(fp, &buffer); create_ppm(fp, &buffer);
Msg(INFO, "Wrote PPM file '%s'", name);
} }
else if (format == FORMAT_YUV){ else if (format == FORMAT_YUV){
Msg(INFO, "Writing YUV file '%s'", name);
create_yuv(fp, &buffer); create_yuv(fp, &buffer);
Msg(INFO, "Wrote YUV file '%s'", name);
} }
else if (format == FORMAT_GIF){ else if (format == FORMAT_GIF){
Msg(INFO, "Writing GIF file '%s'", name);
create_gif(fp, &buffer, create_gif(fp, &buffer,
CTX.print.gif_dither, CTX.print.gif_dither,
CTX.print.gif_sort, CTX.print.gif_sort,
...@@ -162,19 +176,15 @@ void CreateOutputFile(char *name, int format) ...@@ -162,19 +176,15 @@ void CreateOutputFile(char *name, int format)
CTX.UNPACK_RED(CTX.color.bg), CTX.UNPACK_RED(CTX.color.bg),
CTX.UNPACK_GREEN(CTX.color.bg), CTX.UNPACK_GREEN(CTX.color.bg),
CTX.UNPACK_BLUE(CTX.color.bg)); CTX.UNPACK_BLUE(CTX.color.bg));
Msg(INFO, "Wrote GIF file '%s'", name);
} }
else if(format == FORMAT_JPEG || format == FORMAT_JPEGTEX){ else if(format == FORMAT_JPEG || format == FORMAT_JPEGTEX){
Msg(INFO, "Writing JPEG file '%s'", name);
create_jpeg(fp, &buffer, CTX.print.jpeg_quality, CTX.print.jpeg_smoothing); create_jpeg(fp, &buffer, CTX.print.jpeg_quality, CTX.print.jpeg_smoothing);
Msg(INFO, "Wrote JPEG file '%s'", name);
} }
else{ else{
Msg(INFO, "Writing PNG file '%s'", name);
create_png(fp, &buffer, 100); create_png(fp, &buffer, 100);
Msg(INFO, "Wrote PNG file '%s'", name);
} }
Msg(INFO, "Wrote %s file '%s'", GetStringForFileFormat(format), name);
Msg(STATUS2N, "Wrote '%s'", name); Msg(STATUS2N, "Wrote '%s'", name);
fclose(fp); fclose(fp);
} }
...@@ -186,11 +196,13 @@ void CreateOutputFile(char *name, int format) ...@@ -186,11 +196,13 @@ void CreateOutputFile(char *name, int format)
case FORMAT_PDF: case FORMAT_PDF:
case FORMAT_PDFTEX: case FORMAT_PDFTEX:
{ {
FILE *fp;
if(!(fp = fopen(name, "wb"))) { if(!(fp = fopen(name, "wb"))) {
Msg(GERROR, "Unable to open file '%s'", name); Msg(GERROR, "Unable to open file '%s'", name);
return; return;
} }
int psformat;
switch(format){ switch(format){
case FORMAT_PDF: case FORMAT_PDF:
case FORMAT_PDFTEX: case FORMAT_PDFTEX:
...@@ -213,8 +225,8 @@ void CreateOutputFile(char *name, int format) ...@@ -213,8 +225,8 @@ void CreateOutputFile(char *name, int format)
CTX.print.gl_fonts = 1; CTX.print.gl_fonts = 1;
} }
pssort = (CTX.print.eps_quality == 2) ? GL2PS_BSP_SORT : GL2PS_SIMPLE_SORT; int pssort = (CTX.print.eps_quality == 2) ? GL2PS_BSP_SORT : GL2PS_SIMPLE_SORT;
psoptions = int psoptions =
GL2PS_SIMPLE_LINE_OFFSET | GL2PS_SILENT | GL2PS_NO_BLENDING | GL2PS_SIMPLE_LINE_OFFSET | GL2PS_SILENT | GL2PS_NO_BLENDING |
(CTX.print.eps_occlusion_culling ? GL2PS_OCCLUSION_CULL : 0) | (CTX.print.eps_occlusion_culling ? GL2PS_OCCLUSION_CULL : 0) |
(CTX.print.eps_best_root ? GL2PS_BEST_ROOT : 0) | (CTX.print.eps_best_root ? GL2PS_BEST_ROOT : 0) |
...@@ -224,10 +236,10 @@ void CreateOutputFile(char *name, int format) ...@@ -224,10 +236,10 @@ void CreateOutputFile(char *name, int format)
(format == FORMAT_EPSTEX ? GL2PS_NO_TEXT : 0) | (format == FORMAT_EPSTEX ? GL2PS_NO_TEXT : 0) |
(format == FORMAT_PDFTEX ? GL2PS_NO_TEXT : 0); (format == FORMAT_PDFTEX ? GL2PS_NO_TEXT : 0);
Msg(INFO, "Writing %s file '%s'", (psformat == GL2PS_PDF) ? "PDF" : "PS/EPS", name); Msg(INFO, "Writing %s file '%s'", GetStringForFileFormat(format), name);
size3d = 0; GLint size3d = 0;
res = GL2PS_OVERFLOW; int res = GL2PS_OVERFLOW;
while(res == GL2PS_OVERFLOW) { while(res == GL2PS_OVERFLOW) {
size3d += 2048 * 2048; size3d += 2048 * 2048;
gl2psBeginPage(CTX.base_filename, "Gmsh", viewport, gl2psBeginPage(CTX.base_filename, "Gmsh", viewport,
...@@ -258,7 +270,7 @@ void CreateOutputFile(char *name, int format) ...@@ -258,7 +270,7 @@ void CreateOutputFile(char *name, int format)
res = gl2psEndPage(); res = gl2psEndPage();
} }
Msg(INFO, "Wrote %s file '%s'", (psformat == GL2PS_PDF) ? "PDF" : "PS/EPS", name); Msg(INFO, "Wrote %s file '%s'", GetStringForFileFormat(format), name);
Msg(STATUS2N, "Wrote '%s'", name); Msg(STATUS2N, "Wrote '%s'", name);
fclose(fp); fclose(fp);
} }
...@@ -266,6 +278,7 @@ void CreateOutputFile(char *name, int format) ...@@ -266,6 +278,7 @@ void CreateOutputFile(char *name, int format)
case FORMAT_TEX: case FORMAT_TEX:
{ {
FILE *fp;
if(!(fp = fopen(name, "w"))) { if(!(fp = fopen(name, "w"))) {
Msg(GERROR, "Unable to open file '%s'", name); Msg(GERROR, "Unable to open file '%s'", name);
return; return;
...@@ -278,7 +291,7 @@ void CreateOutputFile(char *name, int format) ...@@ -278,7 +291,7 @@ void CreateOutputFile(char *name, int format)
PixelBuffer buffer(width, height, GL_RGB, GL_UNSIGNED_BYTE); PixelBuffer buffer(width, height, GL_RGB, GL_UNSIGNED_BYTE);
buffer.Fill(CTX.batch); buffer.Fill(CTX.batch);
CTX.print.gl_fonts = 1; CTX.print.gl_fonts = 1;
res = gl2psEndPage(); gl2psEndPage();
Msg(INFO, "Wrote TEX file '%s'", name); Msg(INFO, "Wrote TEX file '%s'", name);
Msg(STATUS2N, "Wrote '%s'", name); Msg(STATUS2N, "Wrote '%s'", name);
fclose(fp); fclose(fp);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment