summaryrefslogtreecommitdiff
path: root/cogl/cogl-journal-private.h
diff options
context:
space:
mode:
authorRobert Bragg <robert@linux.intel.com>2009-09-16 14:01:57 +0100
committerRobert Bragg <robert@linux.intel.com>2009-10-16 18:58:52 +0100
commit861766f4ad8f8d984e37643dcb7db0914c2e9b1b (patch)
tree33e1472f982bda53d44345b2221d4f0757eeec61 /cogl/cogl-journal-private.h
parent5387aa0e9e509f962f6007f6860e1168db43583c (diff)
downloadcogl-861766f4ad8f8d984e37643dcb7db0914c2e9b1b.tar.gz
[cogl-primitives] Split the journal out from cogl-primitives.c
The Journal can be considered a standalone component, so even though it's currently only used to log quads, it seems better to split it out into its own file.
Diffstat (limited to 'cogl/cogl-journal-private.h')
-rw-r--r--cogl/cogl-journal-private.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/cogl/cogl-journal-private.h b/cogl/cogl-journal-private.h
new file mode 100644
index 00000000..dc008f67
--- /dev/null
+++ b/cogl/cogl-journal-private.h
@@ -0,0 +1,57 @@
+/*
+ * Cogl
+ *
+ * An object oriented GL/GLES Abstraction/Utility Layer
+ *
+ * Copyright (C) 2007,2008,2009 Intel Corporation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __COGL_JOURNAL_PRIVATE_H
+#define __COGL_JOURNAL_PRIVATE_H
+
+#include "cogl-handle.h"
+
+/* To improve batching of geometry when submitting vertices to OpenGL we
+ * log the texture rectangles we want to draw to a journal, so when we
+ * later flush the journal we aim to batch data, and gl draw calls. */
+typedef struct _CoglJournalEntry
+{
+ CoglHandle material;
+ int n_layers;
+ CoglMaterialFlushOptions flush_options;
+ CoglMatrix model_view;
+ /* XXX: These entries are pretty big now considering the padding in
+ * CoglMaterialFlushOptions and CoglMatrix, so we might need to optimize this
+ * later. */
+} CoglJournalEntry;
+
+void _cogl_journal_flush (void);
+
+void
+_cogl_journal_log_quad (float x_1,
+ float y_1,
+ float x_2,
+ float y_2,
+ CoglHandle material,
+ int n_layers,
+ guint32 fallback_layers,
+ GLuint layer0_override_texture,
+ float *tex_coords,
+ unsigned int tex_coords_len);
+
+#endif /* __COGL_JOURNAL_PRIVATE_H */