Age | Commit message (Collapse) | Author |
|
For alpha-only VG formats, R = G = B = 1.0.
|
|
|
|
|
|
|
|
|
|
|
|
Move depth/stencil buffer, blend texture view, and alpha mask view
creation to vg_context.c.
|
|
With this commit, the pipe states are entirely managed by the renderer.
The rest of the code interfaces with the renderer instead of
manipulating the states directly.
|
|
Let vg_context focus on OpenVG states and renderer focus on gallium
states.
|
|
This allows us to eventually make g3d states opaque.
|
|
vg_manager_validate_framebuffer should mark the fb dirty and have
vg_validate_state call cso_set_framebuffer. Rename VIEWPORT_DIRTY to
FRAMEBUFFER_DIRTY.
|
|
The states are designated for polygon filling. Polygon filling is a
two-pass process utilizing the stencil buffer. polygon_fill and
polygon_array_fill functions are updated to make use of the state.
|
|
vgMask renders to the alpha mask with special fragment shaders. The
operation can be supported by switching the renderer to FILTER state.
|
|
The state is designated to perform image filtering. execute_filter is
updated to make use of the state.
|
|
This state provides the ability to clear rectangles of the framebuffer
to the specified color, honoring scissoring. vegaClear is updated to
make use of the state.
|
|
The state can be used to set rectangles of the depth buffer to 0.0f.
update_clip_state is changed to use the state for scissor update.
|
|
This state provides glDrawTex-like function. It can be used for
vgSetPixels.
Rather than modifying every user of the renderer, this commit instead
modifies renderer_copy_surface to use DRAWTEX or COPY state internally
depending on whether the destination is the framebuffer.
|
|
Renderer states are high-level states to perform specific tasks. The
renderer is initially in INIT state. In that state, the renderer is
used for OpenVG pipeline.
This commit adds a new COPY state to the renderer. The state is used
for copying between two pipe resources using textured drawing. It can
be used for vgCopyImage, for example.
Rather than modifying every user of the renderer, this commit instead
modifies renderer_copy_texture to use the COPY state internally.
|
|
The typo was introduced by commit
231d5457b275c1d9bbeff14165cf3da33dda176b.
|
|
The blend sampler view is addressed with unnormalized coordinates in the
fragment shader. It should have the same orientation as the surface
does.
|
|
The alpha mask is addressed with unnormalized coordinates in the
fragment shader. It should have the same orientation as the surface
does.
This fixes "mask" OpenVG demo.
|
|
|
|
Fix a crash when the subrectangle is not inside the fb. Fix wrong
pipe transfer when sx > 0 or sy + height != fb->height.
This fixes "readpixels" demo.
|
|
These two samplers use non-normalized texture coordinates. wrap_r
cannot be PIPE_TEX_WRAP_REPEAT (the default).
This fixes
sp_tex_sample.c:1790:get_linear_unorm_wrap: Assertion `0' failed
assertion failure.
|
|
Fix "lookup" demo crash.
|
|
It is the name of the rendering API. This field is informative.
|
|
|
|
Drivers scons files for a later time
|
|
|
|
Use scons target and dependency system instead of ad-hoc options.
Now is simply a matter of naming what to build. For example:
scons libgl-xlib
scons libgl-gdi
scons graw-progs
scons llvmpipe
and so on. And there is also the possibility of scepcified subdirs, e.g.
scons src/gallium/drivers
If nothing is specified then everything will be build.
There might be some rough corners over the next days. Please bare with me.
|
|
This fixes a regression since 4531356817ec8383ac35932903773de67af92e37.
|
|
Remove duplicated includes.
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
Add struct st_context_attribs to describe context profiles and
attributes. Modify st_api::create_context to take the new struct
instead of an st_visual.
st_context_attribs can be used to support GLX_ARB_create_context_profile
and GLX_EXT_create_context_es2_profile in the future. But the
motivation for doing it now is to be able to replace ST_API_OPENGL_ES1
and ST_API_OPENGL_ES2 by profiles.
Having 3 st_api's to provide OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is
not a sane abstraction, since all of them share glapi for current
context/dispatch management.
|
|
Update u_draw_quad, st/vega, and st/mesa to use pipe_context::draw_vbo.
|
|
A vg_shader is destroyed with FREE.
|
|
[Manually fix a conflict in vg_context.c by Chia-I Wu]
|
|
The callback is used by st/vega to check if a visual specifies the
depth/stencil format. It forces st/vega to be loaded by st/egl to
perform the check. As noted in EGL spec, the depth/stencil format of a
visual should not affect OpenVG. It should be better to ignore the
field and always allocate the depth/stencil texture.
|
|
This lets us specify linear interpolation instead of perspective
interpolation for blit operations. Might be a bit faster.
|
|
Fix several portability issues and add SConscript for Windows build.
|
|
Match MALLOC with FREE. Otherwise, it causes weird segfaults when built
with memory debugging.
|
|
Conflicts:
src/mesa/state_tracker/st_gen_mipmap.c
src/mesa/state_tracker/st_texture.c
|
|
|
|
The linux-debug target builds...
|
|
The new target installs client API modules to EGL_DRIVER_INSTALL_DIR.
They are used by st/egl.
The client APIs are built from OpenGL and OpenVG state trackers. For
this to work, st/vega is modified to produce a static library,
libvega.a, instead. st/es is also not needed any more. It is removed
and --with-state-trackers=es is replaced by --enable-gles-overlay.
As st/egl now has its own client API modules, this solves the ABI issue
between st/egl and client APIs, as long as the client API modules are
distributed with st/egl. Plus, this allows st/egl to support OpenGL
with non-Gallium libGL.so.
|
|
Rename vgFooBar to vegaFooBar and use vgapi as the dispatcher. This
makes sure there is always a current context when the internal functions
are called. And eglGetProcAddress is finally supported.
|
|
This is a better place than in u_rect.c
|
|
The struct st_module isn't needed as it is the same thing as the st_api
struct. That is they both represent the API. Instead just use a single
function entry point to the the API.
|
|
There is no user of st_public now.
|
|
Add vg_context_update_draw_buffer (and helpers) that duplicates the
logic of st_resize_framebuffer. Use the new function instead of
st_resize_framebuffer in vg_manager.c.
|
|
The implementation requires not only a depth buffer, but also a stencil
buffer.
|