blob: b64599a9415bef2b9dccb47bed68005dcb642a59 [file] [log] [blame]
/*
* R : A Computer Language for Statistical Data Analysis
* Copyright (C) 2012-2014 The R Core Team
*
* 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 2 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, a copy is available at
* https://www.R-project.org/Licenses/
*/
/* This should be regarded as part of the graphics engine:
it is now a stub for code in grDevices */
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <Defn.h>
#include <R_ext/GraphicsEngine.h>
typedef unsigned int (*F1)(SEXP x, int i, unsigned int bg);
typedef const char * (*F2)(unsigned int col);
typedef unsigned int (*F3)(const char *s);
typedef void (*F4)(Rboolean save);
static F1 ptr_RGBpar3;
static F2 ptr_col2name;
static F3 ptr_R_GE_str2col;
static F4 ptr_savePalette;
void Rg_set_col_ptrs(F1 f1, F2 f2, F3 f3, F4 f4)
{
ptr_RGBpar3 = f1;
ptr_col2name = f2;
ptr_R_GE_str2col = f3;
ptr_savePalette = f4;
}
/* used in grid/src/gpar.c with bg = R_TRANWHITE,
in packages Cairo, canvas and jpeg */
/* in GraphicsEngine.h */
unsigned int RGBpar3(SEXP x, int i, unsigned int bg)
{
if (!ptr_RGBpar3) error("package grDevices must be loaded");
return (ptr_RGBpar3)(x, i, bg);
}
/* in GraphicsEngine.h, used by devices */
unsigned int RGBpar(SEXP x, int i)
{
return RGBpar3(x, i, R_TRANWHITE);
}
/* used in grid */
/* in GraphicsEngine.h */
const char *col2name(unsigned int col)
{
if (!ptr_col2name) error("package grDevices must be loaded");
return (ptr_col2name)(col);
}
/* used in grDevices for fg and bg of devices */
/* in GraphicsEngine.h */
unsigned int R_GE_str2col(const char *s)
{
if (!ptr_R_GE_str2col) error("package grDevices must be loaded");
return (ptr_R_GE_str2col)(s);
}
/* used in engine.c */
attribute_hidden
void savePalette(Rboolean save)
{
if (!ptr_savePalette) error("package grDevices must be loaded");
(ptr_savePalette)(save);
}