diff --git a/Graphics/Makefile b/Graphics/Makefile index db83f8f7a05eb5d45030769279e9a712f71617fb..6e67694134735b18e9d31216ecfe273e8e49a568 100644 --- a/Graphics/Makefile +++ b/Graphics/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.8 2000-12-21 08:02:05 geuzaine Exp $ +# $Id: Makefile,v 1.9 2000-12-26 17:40:18 geuzaine Exp $ # # Makefile for "libGraphics.a" # @@ -37,7 +37,8 @@ SRC = Draw.cpp \ gl2ps.cpp\ gl2gif.cpp\ gl2jpeg.cpp\ - gl2ppm.cpp + gl2ppm.cpp\ + gl2yuv.cpp OBJ = $(SRC:.cpp=.o) @@ -66,64 +67,73 @@ depend: $(RM) $(RMFLAGS) Makefile.new # DO NOT DELETE THIS LINE -Draw.o: Draw.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \ - ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ - ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ - ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \ - ../Geo/MinMax.h ../Unix/CbGeneral.h ../Unix/Widgets.h \ - ../Unix/XContext.h -Mesh.o: Mesh.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \ - ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ - ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ - ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \ - ../Geo/MinMax.h gl2ps.h ../Geo/Verif.h ../Mesh/Numeric.h -Geom.o: Geom.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \ - ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ - ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ - ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h \ - ../Geo/Verif.h ../Mesh/Interpolation.h ../Mesh/Numeric.h -Post.o: Post.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \ - ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ - ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ - ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h +Draw.o: Draw.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \ + ../Common/GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \ + ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \ + ../Mesh/Metric.h Draw.h ../Common/Views.h ../Common/Const.h \ + ../Common/ColorTable.h ../Common/Context.h ../Geo/MinMax.h \ + ../Unix/CbGeneral.h ../Unix/Widgets.h ../Unix/XContext.h +Mesh.o: Mesh.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \ + ../Common/GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \ + ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \ + ../Mesh/Metric.h Draw.h ../Common/Views.h ../Common/Const.h \ + ../Common/ColorTable.h ../Common/Context.h ../Geo/MinMax.h gl2ps.h \ + ../Geo/Verif.h ../Mesh/Numeric.h +Geom.o: Geom.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \ + ../Common/GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \ + ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \ + ../Mesh/Metric.h Draw.h ../Common/Views.h ../Common/Const.h \ + ../Common/ColorTable.h ../Common/Context.h ../Geo/Verif.h \ + ../Mesh/Interpolation.h ../Mesh/Numeric.h +Post.o: Post.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \ + ../Common/GmshUI.h ../Geo/Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \ + ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \ + ../Mesh/Metric.h Draw.h ../Common/Views.h ../Common/Const.h \ + ../Common/ColorTable.h ../Common/Context.h PostSimplex.o: PostSimplex.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \ - ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ - ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ - ../Common/Const.h ../Common/ColorTable.h Iso.h ../Common/Context.h -Iso.o: Iso.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Mesh/Mesh.h ../Mesh/Vertex.h \ - ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \ - ../Mesh/Metric.h Draw.h ../Common/Views.h ../Common/Const.h \ - ../Common/ColorTable.h + ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Geo/Geo.h \ + ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ + ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ + ../Common/Const.h ../Common/ColorTable.h Iso.h ../Common/Context.h +Iso.o: Iso.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \ + ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ + ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ + ../Common/Const.h ../Common/ColorTable.h Entity.o: Entity.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Mesh/Mesh.h \ - ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ - ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ - ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h + ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h ../Mesh/Mesh.h \ + ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Edge.h \ + ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h ../Common/Views.h \ + ../Common/Const.h ../Common/ColorTable.h ../Common/Context.h Scale.o: Scale.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \ - ../Common/Const.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \ - ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h \ - ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h gl2ps.h \ - ../Unix/XContext.h -Axes.o: Axes.cpp ../Common/Gmsh.h ../Common/Message.h \ - ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ - ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \ - ../Common/Const.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \ - ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h \ - ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h + ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \ + ../Common/Const.h ../Mesh/Mesh.h ../Mesh/Vertex.h ../Mesh/Simplex.h \ + ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/Metric.h Draw.h \ + ../Common/Views.h ../Common/ColorTable.h ../Common/Context.h gl2ps.h \ + ../Unix/XContext.h +Axes.o: Axes.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \ + ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \ + ../Common/GmshUI.h ../Common/Const.h ../Mesh/Mesh.h ../Mesh/Vertex.h \ + ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h \ + ../Mesh/Metric.h Draw.h ../Common/Views.h ../Common/ColorTable.h \ + ../Common/Context.h gl2ps.o: gl2ps.cpp gl2ps.h gl2gif.o: gl2gif.cpp gl2gif.h +gl2jpeg.o: gl2jpeg.cpp ../Common/Gmsh.h ../Common/Message.h \ + ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h \ + ../Common/Context.h ../jpeg/jpeglib.h ../jpeg/jconfig.h \ + ../jpeg/jmorecfg.h ../jpeg/jerror.h +gl2ppm.o: gl2ppm.cpp ../Common/Gmsh.h ../Common/Message.h \ + ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h +gl2yuv.o: gl2yuv.cpp ../Common/Gmsh.h ../Common/Message.h \ + ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ + ../DataStr/avl.h ../DataStr/Tools.h ../Common/GmshUI.h diff --git a/Graphics/gl2yuv.cpp b/Graphics/gl2yuv.cpp new file mode 100644 index 0000000000000000000000000000000000000000..bf09ded7029ff6cffa65d2771199fdfa4b8f27f2 --- /dev/null +++ b/Graphics/gl2yuv.cpp @@ -0,0 +1,147 @@ +/* $Id: gl2yuv.cpp,v 1.1 2000-12-26 17:40:18 geuzaine Exp $ */ + +#include "Gmsh.h" +#include "GmshUI.h" + +void create_yuv(FILE *outfile, int width, int height){ + + register int x, y; + register unsigned char *dy0, *dy1; + register unsigned char *dcr, *dcb; + register unsigned char *src0, *src1; + register int cdivisor; + + static int first = 1; + static float mult299[1024], mult587[1024], mult114[1024]; + static float mult16874[1024], mult33126[1024], mult5[1024]; + static float mult41869[1024], mult08131[1024]; + + unsigned char *pixels; + unsigned char **orig_y, **orig_cr, **orig_cb; + int row_stride; + + if (first){ + register int index; + register int maxValue; + + maxValue = 255; + + for (index = 0; index <= maxValue; index++){ + mult299[index] = index*0.29900; + mult587[index] = index*0.58700; + mult114[index] = index*0.11400; + mult16874[index] = -0.16874*index; + mult33126[index] = -0.33126*index; + mult5[index] = index*0.50000; + mult41869[index] = -0.41869*index; + mult08131[index] = -0.08131*index; + } + + first = 0; + } + + /* yuv format assumes even number of rows and columns */ + if(height%2) height--; + if(width%2) width--; + + pixels=(unsigned char *)Malloc(height*width*3); + glReadPixels(0,0,width,height,GL_RGB,GL_UNSIGNED_BYTE,pixels); + row_stride = width * 3; + + orig_y = (unsigned char **) Malloc(sizeof(unsigned char *) * height); + for (y = 0; y < height; y++) { + orig_y[y] = (unsigned char *) Malloc(sizeof(unsigned char) * width); + } + + orig_cr = (unsigned char **) Malloc(sizeof(char *) * height / 2); + for (y = 0; y < height / 2; y++) { + orig_cr[y] = (unsigned char *) Malloc(sizeof(char) * width / 2); + } + + orig_cb = (unsigned char **) Malloc(sizeof(char *) * height / 2); + for (y = 0; y < height / 2; y++) { + orig_cb[y] = (unsigned char *) Malloc(sizeof(char) * width / 2); + } + + /* assume ydivisor = 1, so cdivisor = 4 */ + cdivisor = 4; + + for (y = 0; y < height; y += 2){ + src0 = &(pixels[y * row_stride]); + src1 = &(pixels[(y+1) * row_stride]); + dy0 = orig_y[y]; + dy1 = orig_y[y + 1]; + dcr = orig_cr[y / 2]; + dcb = orig_cb[y / 2]; + + for (x = 0; x < width; x += 2, dy0 += 2, dy1 += 2, dcr++, + dcb++, src0 += 6, src1 += 6){ + *dy0 = (unsigned char)(mult299[*src0] + + mult587[src0[1]] + + mult114[src0[2]]); + + *dy1 = (unsigned char)(mult299[*src1] + + mult587[src1[1]] + + mult114[src1[2]]); + + dy0[1] = (unsigned char)(mult299[src0[3]] + + mult587[src0[4]] + + mult114[src0[5]]); + + dy1[1] = (unsigned char)(mult299[src1[3]] + + mult587[src1[4]] + + mult114[src1[5]]); + + *dcb = (unsigned char)((mult16874[*src0] + + mult33126[src0[1]] + + mult5[src0[2]] + + mult16874[*src1] + + mult33126[src1[1]] + + mult5[src1[2]] + + mult16874[src0[3]] + + mult33126[src0[4]] + + mult5[src0[5]] + + mult16874[src1[3]] + + mult33126[src1[4]] + + mult5[src1[5]]) / cdivisor) + 128; + + *dcr = (unsigned char)((mult5[*src0] + + mult41869[src0[1]] + + mult08131[src0[2]] + + mult5[*src1] + + mult41869[src1[1]] + + mult08131[src1[2]] + + mult5[src0[3]] + + mult41869[src0[4]] + + mult08131[src0[5]] + + mult5[src1[3]] + + mult41869[src1[4]] + + mult08131[src1[5]]) / cdivisor) + 128; + } + } + + for (y = height-1; y >=0; y--) /* Y */ + fwrite(orig_y[y], 1, width, outfile); + + for (y = height/2-1; y >=0; y--) /* U */ + fwrite(orig_cb[y], 1, width / 2, outfile); + + for (y = height/2-1; y >=0; y--) /* V */ + fwrite(orig_cr[y], 1, width / 2, outfile); + + Free(pixels); + + for (y = 0; y < height; y++) + Free(orig_y[y]); + Free(orig_y); + + for (y = 0; y < height / 2; y++) + Free(orig_cr[y]); + Free(orig_cr); + + for (y = 0; y < height / 2; y++) + Free(orig_cb[y]); + Free(orig_cb); + +} + diff --git a/Graphics/gl2yuv.h b/Graphics/gl2yuv.h new file mode 100644 index 0000000000000000000000000000000000000000..2921e67be195f097379bcb5f622f0d99cfda1944 --- /dev/null +++ b/Graphics/gl2yuv.h @@ -0,0 +1,6 @@ +#ifndef _GL2YUV_H_ +#define _GL2YUV_H_ + +void create_yuv(FILE *outfile, int width, int height); + +#endif diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index bd9a331ada9dc9d8e105ea9f9735c056c9d9edac..4286e9ff9e482c63ce225e1c30be7a17fdf42e7e 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -1,4 +1,4 @@ -/* $Id: Mesh.h,v 1.10 2000-12-21 08:02:05 geuzaine Exp $ */ +/* $Id: Mesh.h,v 1.11 2000-12-26 17:40:18 geuzaine Exp $ */ #ifndef _MESH_H_ #define _MESH_H_ @@ -18,6 +18,7 @@ #define FORMAT_JPEG 9 #define FORMAT_AUTO 10 #define FORMAT_PPM 11 +#define FORMAT_YUV 12 #define CONV_VALUE 0.8 diff --git a/Unix/CbFile.cpp b/Unix/CbFile.cpp index 8561bf29ce3a814bf8a57b10f20ebdc7a4576030..d7c5364f36513a9bd0edb5da6da7aa41fe15779f 100644 --- a/Unix/CbFile.cpp +++ b/Unix/CbFile.cpp @@ -1,4 +1,4 @@ -/* $Id: CbFile.cpp,v 1.16 2000-12-21 14:53:10 geuzaine Exp $ */ +/* $Id: CbFile.cpp,v 1.17 2000-12-26 17:40:18 geuzaine Exp $ */ #include <unistd.h> @@ -19,6 +19,7 @@ #include "gl2gif.h" #include "gl2jpeg.h" #include "gl2ppm.h" +#include "gl2yuv.h" extern Context_T CTX; extern XContext_T XCTX; @@ -74,6 +75,7 @@ void CreateFile (char *name, int format) { else if(!strcmp(ext,".eps")) CreateFile(name, FORMAT_EPS); else if(!strcmp(ext,".xpm")) CreateFile(name, FORMAT_XPM); else if(!strcmp(ext,".ppm")) CreateFile(name, FORMAT_PPM); + else if(!strcmp(ext,".yuv")) CreateFile(name, FORMAT_YUV); else { if(strlen(name) < 5) Msg(ERROR, "Unknown Extension for Automatic Format Detection"); @@ -155,6 +157,19 @@ void CreateFile (char *name, int format) { fclose(fp); break; + case FORMAT_YUV : + if(!(fp = fopen(name,"wb"))) { + Msg(WARNING, "Unable to Open File '%s'", name); + return; + } + Replot(); + create_yuv(fp, CTX.viewport[2]-CTX.viewport[0], + CTX.viewport[3]-CTX.viewport[1]); + Msg(INFOS, "YUV Creation Complete '%s'", name); + Msg (INFO, "Wrote File '%s'", name); + fclose(fp); + break; + case FORMAT_EPS : switch(CTX.print.eps_quality){ diff --git a/Unix/CbOptions.cpp b/Unix/CbOptions.cpp index 27c05d8cb5f13aab19afcad5f2801fd3a96d51dc..97fb15ab4da1c7e52782683ca14e6b1952756494 100644 --- a/Unix/CbOptions.cpp +++ b/Unix/CbOptions.cpp @@ -1,4 +1,4 @@ -/* $Id: CbOptions.cpp,v 1.17 2000-12-22 20:08:20 geuzaine Exp $ */ +/* $Id: CbOptions.cpp,v 1.18 2000-12-26 17:40:18 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -140,6 +140,7 @@ void OptionsCb (Widget w, XtPointer client_data, XtPointer call_data){ case OPTIONS_SAVE_GIF : CTX.print.format = FORMAT_GIF; break; case OPTIONS_SAVE_JPEG : CTX.print.format = FORMAT_JPEG; break; case OPTIONS_SAVE_PPM : CTX.print.format = FORMAT_PPM; break; + case OPTIONS_SAVE_YUV : CTX.print.format = FORMAT_YUV; break; case OPTIONS_SAVE_EPS_SIMPLE : CTX.print.format = FORMAT_EPS; CTX.print.eps_quality = 1; break; case OPTIONS_SAVE_EPS_COMPLEX: CTX.print.format = FORMAT_EPS; diff --git a/Unix/CbOptions.h b/Unix/CbOptions.h index 477d091e6dfd5bc5d92ff97099f1c503bd211f6e..1833fa8e18b788e1f761cd1a39ebdd07b415aa3e 100644 --- a/Unix/CbOptions.h +++ b/Unix/CbOptions.h @@ -1,4 +1,4 @@ -/* $Id: CbOptions.h,v 1.11 2000-12-21 08:02:06 geuzaine Exp $ */ +/* $Id: CbOptions.h,v 1.12 2000-12-26 17:40:18 geuzaine Exp $ */ #ifndef _CB_OPTIONS_H_ #define _CB_OPTIONS_H_ @@ -107,6 +107,7 @@ #define OPTIONS_SAVE_GEO 409 #define OPTIONS_SAVE_JPEG 410 #define OPTIONS_SAVE_PPM 411 +#define OPTIONS_SAVE_YUV 412 diff --git a/Unix/Register.cpp b/Unix/Register.cpp index f823d3ff19c66955564deba5f0ef96a173d716cd..a84b7100d1f00b4b2f104243a724980a17b06491 100644 --- a/Unix/Register.cpp +++ b/Unix/Register.cpp @@ -1,4 +1,4 @@ -/* $Id: Register.cpp,v 1.17 2000-12-21 14:53:10 geuzaine Exp $ */ +/* $Id: Register.cpp,v 1.18 2000-12-26 17:40:18 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -147,6 +147,7 @@ void RegisterCallbacks_FD(Widgets_T *w){ register_activate_cb (w->FD.saveAsButt[8], OptionsCb, OPTIONS_SAVE_JPEG); register_activate_cb (w->FD.saveAsButt[9], OptionsCb, OPTIONS_SAVE_GIF); register_activate_cb (w->FD.saveAsButt[10], OptionsCb, OPTIONS_SAVE_PPM); + register_activate_cb (w->FD.saveAsButt[11], OptionsCb, OPTIONS_SAVE_YUV); register_ok_cb (w->FD.saveOptionsAsDialog, FileCb, FILE_SAVE_OPTIONS_AS); register_cancel_cb (w->FD.saveOptionsAsDialog, ManageCb, w->FD.saveOptionsAsDialog); diff --git a/Unix/Widgets.cpp b/Unix/Widgets.cpp index 16d1586bc15cfe1347a6bc69907d7fc8ee244429..46cafa5cf2b55bbb3dd58ea05d97795ebd7bfc19 100644 --- a/Unix/Widgets.cpp +++ b/Unix/Widgets.cpp @@ -1,4 +1,4 @@ -/* $Id: Widgets.cpp,v 1.24 2000-12-26 08:13:19 geuzaine Exp $ */ +/* $Id: Widgets.cpp,v 1.25 2000-12-26 17:40:18 geuzaine Exp $ */ #include "Gmsh.h" #include "GmshUI.h" @@ -672,6 +672,10 @@ void CreateWidgets_FD(Widgets_T *w){ XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("PPM")); i++; w->FD.saveAsButt[10] = XmCreatePushButton(w->FD.saveAsPane[0], "MsaveAsButt10", arg, i); XtManageChild(w->FD.saveAsButt[10]); + i=0; + XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("YUV")); i++; + w->FD.saveAsButt[11] = XmCreatePushButton(w->FD.saveAsPane[0], "MsaveAsButt11", arg, i); + XtManageChild(w->FD.saveAsButt[11]); i=0; XtSetArg(arg[i], XmNsubMenuId, w->FD.saveAsPane[0]); i++; diff --git a/tutorial/t8.par b/tutorial/t8.par index 66b9d984c95d8e4520723f72bbe15c3ab26e5f02..b557546775f6b4b8717883cb41cf6dc731818ca0 100644 --- a/tutorial/t8.par +++ b/tutorial/t8.par @@ -1,12 +1,17 @@ # -# parameter file fpr mpeg_encode +# parameter file for mpeg_encode # PATTERN I +# PATTERN IB # PATTERN IBBBP # PATTERN IBBPBBPBBPBBPBB + BASE_FILE_FORMAT JPEG # BASE_FILE_FORMAT PPM +# BASE_FILE_FORMAT YUV +# YUV_SIZE 320x240 + GOP_SIZE 30 SLICES_PER_FRAME 1 PIXEL HALF @@ -26,5 +31,6 @@ INPUT_DIR . INPUT t8-*.jpg [01-50] # t8-*.ppm [01-50] +# t8-*.yuv [01-50] END_INPUT diff --git a/www/gmsh.html b/www/gmsh.html index 069b9a1e9b8e022cfa929739d8f32cae7e0bebee..582b0adba608ec5c98a7a7e1cc07cc4f78f795fc 100644 --- a/www/gmsh.html +++ b/www/gmsh.html @@ -303,8 +303,8 @@ files. <td><font face="Helvetica, Arial" size=-1> -New in 1.00: Added PPM output; Corrected nested If/Endif; Corrected -seg. fault on repeated saves; +New in 1.00: Added PPM and YUV output; Corrected nested If/Endif; +Corrected seg. fault on repeated saves; <p> New in 0.999: Added JPEG output and easy MPEG generation (see t8.geo in the tutorial); Clean up of export functions; small fixes; Linux versions