/*
* Copyright 2009 Corbin Simpson <MostAwesomeDude@gmail.com>
+ * Copyright 2009 Marek Olšák <maraeo@gmail.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
#include "pipe/p_state.h"
#include "tgsi/tgsi_scan.h"
+#include "compiler/radeon_code.h"
-#include "radeon_code.h"
+#include "r300_context.h"
+#include "r300_shader_semantics.h"
struct r300_context;
struct r300_vertex_shader {
/* Parent class */
struct pipe_shader_state state;
+
struct tgsi_shader_info info;
+ struct r300_shader_semantics outputs;
- /* Fallback shader, because Draw has issues */
- struct draw_vertex_shader* draw;
+ /* Whether the shader was replaced by a dummy one due to a shader
+ * compilation failure. */
+ boolean dummy;
- /* Has this shader been translated yet? */
- boolean translated;
+ /* Numbers of constants for each type. */
+ unsigned externals_count;
+ unsigned immediates_count;
+ /* HWTCL-specific. */
/* Machine code (if translated) */
struct r300_vertex_program_code code;
+
+ /* SWTCL-specific. */
+ void *draw_vs;
};
+void r300_init_vs_outputs(struct r300_context *r300,
+ struct r300_vertex_shader *vs);
-extern struct r300_vertex_program_code r300_passthrough_vertex_shader;
+void r300_translate_vertex_shader(struct r300_context *r300,
+ struct r300_vertex_shader *vs);
-void r300_translate_vertex_shader(struct r300_context* r300,
- struct r300_vertex_shader* vs);
+void r300_draw_init_vertex_shader(struct r300_context *r300,
+ struct r300_vertex_shader *vs);
#endif /* R300_VS_H */