Home | History | Annotate | Download | only in program

Lines Matching defs:prog

264 _mesa_init_program_struct( struct gl_context *ctx, struct gl_program *prog,
268 if (prog) {
270 memset(prog, 0, sizeof(*prog));
271 prog->Id = id;
272 prog->Target = target;
273 prog->Resident = GL_TRUE;
274 prog->RefCount = 1;
275 prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB;
279 prog->SamplerUnits[i] = i;
282 return prog;
290 _mesa_init_fragment_program( struct gl_context *ctx, struct gl_fragment_program *prog,
293 if (prog)
294 return _mesa_init_program_struct( ctx, &prog->Base, target, id );
304 _mesa_init_vertex_program( struct gl_context *ctx, struct gl_vertex_program *prog,
307 if (prog)
308 return _mesa_init_program_struct( ctx, &prog->Base, target, id );
318 _mesa_init_geometry_program( struct gl_context *ctx, struct gl_geometry_program *prog,
321 if (prog)
322 return _mesa_init_program_struct( ctx, &prog->Base, target, id );
343 struct gl_program *prog;
347 prog = _mesa_init_vertex_program(ctx, CALLOC_STRUCT(gl_vertex_program),
352 prog =_mesa_init_fragment_program(ctx,
357 prog = _mesa_init_geometry_program(ctx,
363 prog = NULL;
365 return prog;
376 _mesa_delete_program(struct gl_context *ctx, struct gl_program *prog)
379 ASSERT(prog);
380 ASSERT(prog->RefCount==0);
382 if (prog == &_mesa_DummyProgram)
385 if (prog->String)
386 free(prog->String);
388 if (prog->Instructions) {
389 _mesa_free_instructions(prog->Instructions, prog->NumInstructions);
391 if (prog->Parameters) {
392 _mesa_free_parameter_list(prog->Parameters);
395 free(prog);
422 struct gl_program *prog)
426 if (*ptr && prog) {
429 ASSERT(prog->Target == GL_VERTEX_PROGRAM_ARB);
431 ASSERT(prog->Target == GL_FRAGMENT_PROGRAM_ARB ||
432 prog->Target == GL_FRAGMENT_PROGRAM_NV);
434 ASSERT(prog->Target == MESA_GEOMETRY_PROGRAM);
464 if (prog) {
465 /*_glthread_LOCK_MUTEX(prog->Mutex);*/
466 prog->RefCount++;
469 prog, prog->Id,
470 (prog->Target == GL_VERTEX_PROGRAM_ARB ? "VP" :
471 (prog->Target == MESA_GEOMETRY_PROGRAM ? "GP" : "FP")),
472 prog->RefCount);
474 /*_glthread_UNLOCK_MUTEX(prog->Mutex);*/
477 *ptr = prog;
487 _mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog)
491 clone = ctx->Driver.NewProgram(ctx, prog->Target, prog->Id);
495 assert(clone->Target == prog->Target);
498 clone->String = (GLubyte *) _mesa_strdup((char *) prog->String);
499 clone->Format = prog->Format;
500 clone->Instructions = _mesa_alloc_instructions(prog->NumInstructions);
505 _mesa_copy_instructions(clone->Instructions, prog->Instructions,
506 prog->NumInstructions);
507 clone->InputsRead = prog->InputsRead;
508 clone->OutputsWritten = prog->OutputsWritten;
509 clone->SamplersUsed = prog->SamplersUsed;
510 clone->ShadowSamplers = prog->ShadowSamplers;
511 memcpy(clone->TexturesUsed, prog->TexturesUsed, sizeof(prog->TexturesUsed));
513 if (prog->Parameters)
514 clone->Parameters = _mesa_clone_parameter_list(prog->Parameters);
515 memcpy(clone->LocalParams, prog->LocalParams, sizeof(clone->LocalParams));
516 memcpy(clone->LocalParams, prog->LocalParams, sizeof(clone->LocalParams));
517 clone->IndirectRegisterFiles = prog->IndirectRegisterFiles;
518 clone->NumInstructions = prog->NumInstructions;
519 clone->NumTemporaries = prog->NumTemporaries;
520 clone->NumParameters = prog->NumParameters;
521 clone->NumAttributes = prog->NumAttributes;
522 clone->NumAddressRegs = prog->NumAddressRegs;
523 clone->NumNativeInstructions = prog->NumNativeInstructions;
524 clone->NumNativeTemporaries = prog->NumNativeTemporaries;
525 clone->NumNativeParameters = prog->NumNativeParameters;
526 clone->NumNativeAttributes = prog->NumNativeAttributes;
527 clone->NumNativeAddressRegs = prog
528 clone->NumAluInstructions = prog->NumAluInstructions;
529 clone->NumTexInstructions = prog->NumTexInstructions;
530 clone->NumTexIndirections = prog->NumTexIndirections;
531 clone->NumNativeAluInstructions = prog->NumNativeAluInstructions;
532 clone->NumNativeTexInstructions = prog->NumNativeTexInstructions;
533 clone->NumNativeTexIndirections = prog->NumNativeTexIndirections;
535 switch (prog->Target) {
538 const struct gl_vertex_program *vp = gl_vertex_program_const(prog);
546 const struct gl_fragment_program *fp = gl_fragment_program_const(prog);
556 const struct gl_geometry_program *gp = gl_geometry_program_const(prog);
576 _mesa_insert_instructions(struct gl_program *prog, GLuint start, GLuint count)
578 const GLuint origLen = prog->NumInstructions;
584 for (i = 0; i < prog->NumInstructions; i++) {
585 struct prog_instruction *inst = prog->Instructions + i;
600 _mesa_copy_instructions(newInst, prog->Instructions, start);
607 prog->Instructions + start,
611 _mesa_free_instructions(prog->Instructions, origLen);
614 prog->Instructions = newInst;
615 prog->NumInstructions = newLen;
625 _mesa_delete_instructions(struct gl_program *prog, GLuint start, GLuint count)
627 const GLuint origLen = prog->NumInstructions;
633 for (i = 0; i < prog->NumInstructions; i++) {
634 struct prog_instruction *inst = prog->Instructions + i;
649 _mesa_copy_instructions(newInst, prog->Instructions, start);
653 prog->Instructions + start + count,
657 _mesa_free_instructions(prog->Instructions, origLen);
660 prog->Instructions = newInst;
661 prog->NumInstructions = newLen;
859 _mesa_find_used_registers(const struct gl_program *prog,
867 for (i = 0; i < prog->NumInstructions; i++) {
868 const struct prog_instruction *inst = prog->Instructions + i;
1016 _mesa_postprocess_program(struct gl_context *ctx, struct gl_program *prog)
1021 GLint whiteIndex = _mesa_add_unnamed_constant(prog->Parameters,
1027 for (i = 0; i < prog->NumInstructions; i++) {
1028 struct prog_instruction *inst = prog->Instructions + i;