From c4fd947beedbd1e2f8fdaf4ead3b2a8249bd239e Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 18 Jun 2009 14:11:59 -0600 Subject: glsl: added slang_operation_add_children() and slang_oper_child() helpers --- src/mesa/shader/slang/slang_compile_operation.c | 14 ++++++++++++++ src/mesa/shader/slang/slang_compile_operation.h | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/mesa/shader/slang/slang_compile_operation.c b/src/mesa/shader/slang/slang_compile_operation.c index e650616880..310a46b645 100644 --- a/src/mesa/shader/slang/slang_compile_operation.c +++ b/src/mesa/shader/slang/slang_compile_operation.c @@ -272,3 +272,17 @@ _slang_operation_swap(slang_operation *oper0, slang_operation *oper1) } +void +slang_operation_add_children(slang_operation *oper, GLuint num_children) +{ + GLuint i; + assert(oper->num_children == 0); + assert(oper->children == NULL); + oper->num_children = num_children; + oper->children = slang_operation_new(num_children); + for (i = 0; i < num_children; i++) { + oper->children[i].locals = _slang_variable_scope_new(oper->locals); + } +} + + diff --git a/src/mesa/shader/slang/slang_compile_operation.h b/src/mesa/shader/slang/slang_compile_operation.h index 37af5d617c..627356bb56 100644 --- a/src/mesa/shader/slang/slang_compile_operation.h +++ b/src/mesa/shader/slang/slang_compile_operation.h @@ -161,4 +161,15 @@ extern void _slang_operation_swap(slang_operation *oper0, slang_operation *oper1); +extern void +slang_operation_add_children(slang_operation *oper, GLuint num_children); + +static INLINE slang_operation * +slang_oper_child(slang_operation *oper, GLuint child) +{ + assert(child < oper->num_children); + return &oper->children[child]; +} + + #endif /* SLANG_COMPILE_OPERATION_H */ -- cgit v1.2.3