{
const unsigned num_written_culldistances =
draw_current_shader_num_written_culldistances(stage->draw);
+ const unsigned num_written_clipdistances =
+ draw_current_shader_num_written_clipdistances(stage->draw);
unsigned i;
debug_assert(num_written_culldistances);
for (i = 0; i < num_written_culldistances; ++i) {
- unsigned cull_idx = i / 4;
+ unsigned cull_idx = (num_written_clipdistances + i) / 4;
unsigned out_idx =
- draw_current_shader_culldistance_output(stage->draw, cull_idx);
- unsigned idx = i % 4;
+ draw_current_shader_ccdistance_output(stage->draw, cull_idx);
+ unsigned idx = (num_written_clipdistances + i) % 4;
float cull1 = header->v[0]->data[out_idx][idx];
boolean vert1_out = cull_distance_is_out(cull1);
if (vert1_out)
{
const unsigned num_written_culldistances =
draw_current_shader_num_written_culldistances(stage->draw);
+ const unsigned num_written_clipdistances =
+ draw_current_shader_num_written_clipdistances(stage->draw);
unsigned i;
debug_assert(num_written_culldistances);
for (i = 0; i < num_written_culldistances; ++i) {
- unsigned cull_idx = i / 4;
+ unsigned cull_idx = (num_written_clipdistances + i) / 4;
unsigned out_idx =
- draw_current_shader_culldistance_output(stage->draw, cull_idx);
- unsigned idx = i % 4;
+ draw_current_shader_ccdistance_output(stage->draw, cull_idx);
+ unsigned idx = (num_written_clipdistances + i) % 4;
float cull1 = header->v[0]->data[out_idx][idx];
float cull2 = header->v[1]->data[out_idx][idx];
boolean vert1_out = cull_distance_is_out(cull1);
{
const unsigned num_written_culldistances =
draw_current_shader_num_written_culldistances(stage->draw);
-
+ const unsigned num_written_clipdistances =
+ draw_current_shader_num_written_clipdistances(stage->draw);
/* Do the distance culling */
if (num_written_culldistances) {
unsigned i;
for (i = 0; i < num_written_culldistances; ++i) {
- unsigned cull_idx = i / 4;
+ unsigned cull_idx = (num_written_clipdistances + i) / 4;
unsigned out_idx =
- draw_current_shader_culldistance_output(stage->draw, cull_idx);
- unsigned idx = i % 4;
+ draw_current_shader_ccdistance_output(stage->draw, cull_idx);
+ unsigned idx = (num_written_clipdistances + i) % 4;
float cull1 = header->v[0]->data[out_idx][idx];
float cull2 = header->v[1]->data[out_idx][idx];
float cull3 = header->v[2]->data[out_idx][idx];
struct draw_stage *draw_cull_stage( struct draw_context *draw )
{
struct cull_stage *cull = CALLOC_STRUCT(cull_stage);
- if (cull == NULL)
+ if (!cull)
goto fail;
cull->stage.draw = draw;