diff options
author | Robert Bragg <robert@linux.intel.com> | 2009-09-16 14:01:57 +0100 |
---|---|---|
committer | Robert Bragg <robert@linux.intel.com> | 2009-10-16 18:58:52 +0100 |
commit | 861766f4ad8f8d984e37643dcb7db0914c2e9b1b (patch) | |
tree | 33e1472f982bda53d44345b2221d4f0757eeec61 /cogl/cogl-journal-private.h | |
parent | 5387aa0e9e509f962f6007f6860e1168db43583c (diff) | |
download | cogl-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.h | 57 |
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 */ |