/* Copyright (C) 2024 Aiden Gall
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see . */
#include "util.h"
#include
#include
#include
/* write farbfeld image to fd
* - canvas will be mutated unless host architecture is big endian */
void
farbfeld_write(FILE *const fd, uint16_t *const canvas, const size_t canvas_size,
uint32_t width, uint32_t height)
{
size_t i;
width = htonl(width);
height = htonl(height);
for (i = 0; i < canvas_size; i++)
canvas[i] = htons(canvas[i]);
efwrite("farbfeld", sizeof(char), 8, fd);
efwrite(&width, sizeof(uint32_t), 1, fd);
efwrite(&height, sizeof(uint32_t), 1, fd);
efwrite(canvas, sizeof(uint16_t), canvas_size, fd);
}