mirror of
https://github.com/matrix-construct/construct
synced 2024-11-29 02:02:38 +01:00
ircd::png: Add unit; start header; stub.
This commit is contained in:
parent
b26bb2ec6c
commit
7aff759abc
5 changed files with 74 additions and 1 deletions
|
@ -105,6 +105,7 @@
|
||||||
#include "rfc3986.h"
|
#include "rfc3986.h"
|
||||||
#include "net/net.h"
|
#include "net/net.h"
|
||||||
#include "server/server.h"
|
#include "server/server.h"
|
||||||
|
#include "png.h"
|
||||||
#include "magick.h"
|
#include "magick.h"
|
||||||
#include "resource/resource.h"
|
#include "resource/resource.h"
|
||||||
#include "client.h"
|
#include "client.h"
|
||||||
|
|
20
include/ircd/png.h
Normal file
20
include/ircd/png.h
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
// The Construct
|
||||||
|
//
|
||||||
|
// Copyright (C) The Construct Developers, Authors & Contributors
|
||||||
|
// Copyright (C) 2016-2021 Jason Volk <jason@zemos.net>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice is present in all copies. The
|
||||||
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#define HAVE_IRCD_PNG_H
|
||||||
|
|
||||||
|
/// Portable Network Graphics; wrappers a la carte
|
||||||
|
namespace ircd::png
|
||||||
|
{
|
||||||
|
bool is_animated(const const_buffer &);
|
||||||
|
|
||||||
|
extern const info::versions version_api, version_abi;
|
||||||
|
}
|
|
@ -96,6 +96,7 @@ libircd_la_LDFLAGS = \
|
||||||
@SODIUM_LDFLAGS@ \
|
@SODIUM_LDFLAGS@ \
|
||||||
@MAGIC_LDFLAGS@ \
|
@MAGIC_LDFLAGS@ \
|
||||||
@IMAGEMAGICK_LDFLAGS@ \
|
@IMAGEMAGICK_LDFLAGS@ \
|
||||||
|
@PNG_LDFLAGS@ \
|
||||||
@ZSTD_LDFLAGS@ \
|
@ZSTD_LDFLAGS@ \
|
||||||
@SNAPPY_LDFLAGS@ \
|
@SNAPPY_LDFLAGS@ \
|
||||||
@LZ4_LDFLAGS@ \
|
@LZ4_LDFLAGS@ \
|
||||||
|
@ -212,6 +213,7 @@ endif
|
||||||
if IMAGEMAGICK
|
if IMAGEMAGICK
|
||||||
libircd_la_SOURCES += magick.cc
|
libircd_la_SOURCES += magick.cc
|
||||||
endif
|
endif
|
||||||
|
libircd_la_SOURCES += png.cc
|
||||||
if OPENCL
|
if OPENCL
|
||||||
libircd_la_SOURCES += cl.cc
|
libircd_la_SOURCES += cl.cc
|
||||||
endif
|
endif
|
||||||
|
@ -305,6 +307,9 @@ parse.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
|
||||||
if PBC
|
if PBC
|
||||||
pbc.lo: AM_CPPFLAGS := @PBC_CPPFLAGS@ ${AM_CPPFLAGS}
|
pbc.lo: AM_CPPFLAGS := @PBC_CPPFLAGS@ ${AM_CPPFLAGS}
|
||||||
endif
|
endif
|
||||||
|
if PNG
|
||||||
|
png.o: AM_CPPFLAGS := @PNG_CPPFLAGS@ ${AM_CPPFLAGS}
|
||||||
|
endif PNG
|
||||||
rfc1459.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
|
rfc1459.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
|
||||||
rfc1459.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
|
rfc1459.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
|
||||||
rfc3986.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
|
rfc3986.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
// full license for this software is available in the LICENSE file.
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
#include <RB_INC_SIGNAL_H
|
#include <RB_INC_SIGNAL_H
|
||||||
#include <RB_INC_PNG_H
|
|
||||||
#include <RB_INC_MAGICK_API_H
|
#include <RB_INC_MAGICK_API_H
|
||||||
|
|
||||||
namespace ircd::magick
|
namespace ircd::magick
|
||||||
|
|
48
ircd/png.cc
Normal file
48
ircd/png.cc
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
// The Construct
|
||||||
|
//
|
||||||
|
// Copyright (C) The Construct Developers, Authors & Contributors
|
||||||
|
// Copyright (C) 2016-2021 Jason Volk <jason@zemos.net>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice is present in all copies. The
|
||||||
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
|
#include <RB_INC_PNG_H
|
||||||
|
|
||||||
|
decltype(ircd::png::version_api)
|
||||||
|
ircd::png::version_api
|
||||||
|
{
|
||||||
|
"png", info::versions::API,
|
||||||
|
#ifdef HAVE_PNG_H
|
||||||
|
PNG_LIBPNG_VER,
|
||||||
|
{
|
||||||
|
PNG_LIBPNG_VER_MAJOR,
|
||||||
|
PNG_LIBPNG_VER_MINOR,
|
||||||
|
PNG_LIBPNG_VER_RELEASE,
|
||||||
|
},
|
||||||
|
rstrip(lstrip(PNG_HEADER_VERSION_STRING, " "), "\n")
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Since libpng may not loaded prior to static initialization there is
|
||||||
|
/// no linked library identification. libmagick takes care of loading libpng
|
||||||
|
/// dynamically if it requires it for us.
|
||||||
|
decltype(ircd::png::version_abi)
|
||||||
|
ircd::png::version_abi
|
||||||
|
{
|
||||||
|
"png", info::versions::ABI,
|
||||||
|
};
|
||||||
|
|
||||||
|
bool
|
||||||
|
ircd::png::is_animated(const const_buffer &buf)
|
||||||
|
#ifdef PNG_APNG_SUPPORTED
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
#warning "Upgrade your libpng version for animation detection."
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
Loading…
Reference in a new issue