[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] gsoc-anurag-2023 f68109991 02/13: [dense] Populate headers f
From: |
Werner Lemberg |
Subject: |
[freetype2] gsoc-anurag-2023 f68109991 02/13: [dense] Populate headers for 'dense' module |
Date: |
Tue, 8 Aug 2023 16:02:52 -0400 (EDT) |
branch: gsoc-anurag-2023
commit f6810999181e195671a79e72b54768c51a6af784
Author: Anurag Thakur <anurag105csec21@bpitindia.edu.in>
Commit: Anurag Thakur <anurag105csec21@bpitindia.edu.in>
[dense] Populate headers for 'dense' module
* src/dense/ftdenserend.h (ft_dense_renderer_class): New Structures
* src/dense/ftdense.h (dense_worker): New Structure
(dense_render_line, dense_render_quadratic, dense_render_cubic): New
function declarations
(ft_dense_raster): Export dense raster funcs
* src/dense/ftdenseerrs.h: Add module error setup
---
src/dense/ftdense.h | 52 +++++++++++++++++++++++++++++++++++++++++++++++++
src/dense/ftdenseerrs.h | 13 +++++++++++--
src/dense/ftdenserend.h | 22 ++++++++++++++++++++-
3 files changed, 84 insertions(+), 3 deletions(-)
diff --git a/src/dense/ftdense.h b/src/dense/ftdense.h
index 9321aa3db..677b2ea33 100644
--- a/src/dense/ftdense.h
+++ b/src/dense/ftdense.h
@@ -1,7 +1,59 @@
+/* Dense rasterizer header*/
#ifndef FTDENSE_H_
#define FTDENSE_H_
+#include <ft2build.h>
+#include FT_CONFIG_CONFIG_H
+#include <freetype/ftimage.h>
+
+FT_BEGIN_HEADER
+
+#ifndef FT_EXPORT_VAR
+#define FT_EXPORT_VAR( x ) extern x
+#endif
+FT_EXPORT_VAR( const FT_Raster_Funcs ) ft_dense_raster;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ typedef struct
+ {
+ /** The array used to store signed area differences. */
+ float* m_a;
+ /** The number of elements in m_a. */
+ int m_a_size;
+ /** The width of the current raster in pixels. */
+ int m_w;
+ /** The height of the current raster in pixels. */
+ int m_h;
+ /** The x origin of the raster. */
+ int m_origin_x;
+ /** The y origin of the raster. */
+ int m_origin_y;
+
+ FT_Pos prev_x, prev_y;
+
+ FT_Outline outline;
+ } dense_worker;
+
+ void dense_render_line( dense_worker* worker, FT_Pos to_x, FT_Pos to_y );
+ void dense_render_quadratic( dense_worker* worker,
+ FT_Vector* control,
+ FT_Vector* to );
+ void dense_render_cubic( dense_worker* worker,
+ FT_Vector* control_1,
+ FT_Vector* control_2,
+ FT_Vector* to );
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+FT_END_HEADER
+
#endif /* FTDENSE_H_ */
/* END */
diff --git a/src/dense/ftdenseerrs.h b/src/dense/ftdenseerrs.h
index b7897e9cb..e1755c2c1 100644
--- a/src/dense/ftdenseerrs.h
+++ b/src/dense/ftdenseerrs.h
@@ -1,8 +1,17 @@
-/** Common error defines */
-
+/* Dense Renderer Error Codes */
#ifndef FTDENSEERRS_H_
#define FTDENSEERRS_H_
+#include <freetype/ftmoderr.h>
+
+#undef FTERRORS_H_
+
+#undef FT_ERR_PREFIX
+#define FT_ERR_PREFIX Dense_Err_
+#define FT_ERR_BASE FT_Mod_Err_Dense
+
+#include <freetype/fterrors.h>
+
#endif /* FTDENSEERRS_H_ */
/* END */
diff --git a/src/dense/ftdenserend.h b/src/dense/ftdenserend.h
index 409f7fe8c..c91b230ab 100644
--- a/src/dense/ftdenserend.h
+++ b/src/dense/ftdenserend.h
@@ -1,7 +1,27 @@
-
+/* Dense renderer interface (specification) */
#ifndef FTDENSEREND_H_
#define FTDENSEREND_H_
+
+#include <freetype/ftmodapi.h>
+#include <freetype/ftrender.h>
+#include <freetype/internal/ftobjs.h>
+
+FT_BEGIN_HEADER
+
+/**************************************************************************
+ *
+ * @renderer:
+ * ft_dense_renderer_class
+ *
+ * @description:
+ * Renderer to convert @FT_Outline to bitmaps.
+ *
+ */
+FT_DECLARE_RENDERER( ft_dense_renderer_class )
+
+FT_END_HEADER
+
#endif /* FTDENSEREND_H_ */
/* END */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] gsoc-anurag-2023 f68109991 02/13: [dense] Populate headers for 'dense' module,
Werner Lemberg <=