Clone of mesa.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

nvfx_state_blend.c 1.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include "nvfx_context.h"
  2. static boolean
  3. nvfx_state_blend_validate(struct nvfx_context *nvfx)
  4. {
  5. so_ref(nvfx->blend->so, &nvfx->state.hw[NVFX_STATE_BLEND]);
  6. return TRUE;
  7. }
  8. struct nvfx_state_entry nvfx_state_blend = {
  9. .validate = nvfx_state_blend_validate,
  10. .dirty = {
  11. .pipe = NVFX_NEW_BLEND,
  12. .hw = NVFX_STATE_BLEND
  13. }
  14. };
  15. static boolean
  16. nvfx_state_blend_colour_validate(struct nvfx_context *nvfx)
  17. {
  18. struct nouveau_stateobj *so = so_new(1, 1, 0);
  19. struct pipe_blend_color *bcol = &nvfx->blend_colour;
  20. so_method(so, nvfx->screen->eng3d, NV34TCL_BLEND_COLOR, 1);
  21. so_data (so, ((float_to_ubyte(bcol->color[3]) << 24) |
  22. (float_to_ubyte(bcol->color[0]) << 16) |
  23. (float_to_ubyte(bcol->color[1]) << 8) |
  24. (float_to_ubyte(bcol->color[2]) << 0)));
  25. so_ref(so, &nvfx->state.hw[NVFX_STATE_BCOL]);
  26. so_ref(NULL, &so);
  27. return TRUE;
  28. }
  29. struct nvfx_state_entry nvfx_state_blend_colour = {
  30. .validate = nvfx_state_blend_colour_validate,
  31. .dirty = {
  32. .pipe = NVFX_NEW_BCOL,
  33. .hw = NVFX_STATE_BCOL
  34. }
  35. };