From 375d87a9b0ec1cf2fffd705adb870c86144d2400 Mon Sep 17 00:00:00 2001 From: Johannes Hofmann Date: Mon, 26 Oct 2026 20:05:20 +0100 Subject: Replace the C++ implementation with the Rust port The Rust port (formerly gipfel-rs) is now the official successor to the FLTK/GSL C++ code base. This squashes the port into a single commit and removes the C++ sources (they remain in the git history below). Layout: crates/gipfel-core headless core: hills, panorama geometry, projections (maxima-generated derivatives), pure-Rust LM fit, gipfel: JPEG comment + EXIF I/O, profiles, stitching crates/gipfel-cli command-line tools (export, info, stitch, profiles) crates/gipfel-app Cosmic DE (libcosmic) GUI, binary name `gipfel` codegen/ maxima scripts + regen.sh for the projection code tests/ golden files + C++ reference harnesses (historical) The original README is kept for now; it will be updated to describe the Rust build. gipfel.dat, AUTHORS, ChangeLog and NEWS are unchanged. --- src/JPEGOutputImage.cxx | 104 ------------------------------------------------ 1 file changed, 104 deletions(-) delete mode 100644 src/JPEGOutputImage.cxx (limited to 'src/JPEGOutputImage.cxx') diff --git a/src/JPEGOutputImage.cxx b/src/JPEGOutputImage.cxx deleted file mode 100644 index 8bbd40b..0000000 --- a/src/JPEGOutputImage.cxx +++ /dev/null @@ -1,104 +0,0 @@ -// -// Copyright 2006-2009 Johannes Hofmann -// -// This software may be used and distributed according to the terms -// of the GNU General Public License, incorporated herein by reference. - -#include -#include -#include -extern "C" { -#include -} - -#include "JPEGOutputImage.H" - -JPEGOutputImage::JPEGOutputImage(const char *f, int q) : OutputImage() { - file = strdup(f); - fp = NULL; - row = NULL; - quality = q; -} - -JPEGOutputImage::~JPEGOutputImage() { - if (row) - free(row); - if (file) - free(file); -} - -int -JPEGOutputImage::init_internal() { - if (row) - free(row); - row = NULL; - - row = (unsigned char*) calloc(3 * W, sizeof(char)); - if (!row) { - perror("calloc"); - return 1; - } - - if (fp) - fclose(fp); - - if ((fp = fopen(file, "wb")) == NULL) { - fprintf(stderr, "can't open %s\n", file); - return 1; - } - - cinfo.err = jpeg_std_error(&jerr); - jpeg_create_compress(&cinfo); - jpeg_stdio_dest(&cinfo, fp); - cinfo.image_width = W; - cinfo.image_height = H; - cinfo.input_components = 3; /* # of color components per pixel */ - cinfo.in_color_space = JCS_RGB; - - jpeg_set_defaults(&cinfo); - jpeg_set_quality(&cinfo, quality, TRUE); - - jpeg_start_compress(&cinfo, TRUE); - - return 0; -} - -int -JPEGOutputImage::set_pixel_internal(int x, int r, int g, int b) { - row[x*3+0] = (unsigned char) (r / 255); - row[x*3+1] = (unsigned char) (g / 255); - row[x*3+2] = (unsigned char) (b / 255); - - return 0; -} - -int -JPEGOutputImage::next_line_internal() { - JSAMPROW row_pointer[1]; - - row_pointer[0] = row; - jpeg_write_scanlines(&cinfo, row_pointer, 1); - memset(row, 0, sizeof(char) * 3 * W); - return 0; -} - -int -JPEGOutputImage::done_internal() { - jpeg_finish_compress(&cinfo); - jpeg_destroy_compress(&cinfo); - - if (fp) - fclose(fp); - fp = NULL; - - if (row) - free(row); - row = NULL; - - if (fp) - fclose(fp); - fp = NULL; - - return 0; -} - -- cgit v1.2.3