Compare commits
87 Commits
mesa_7_3_r
...
mesa_7_3
Author | SHA1 | Date | |
---|---|---|---|
|
faa6d8af59 | ||
|
b6c41fd933 | ||
|
b8bd0b0ddc | ||
|
fc3971d800 | ||
|
046e88fc0b | ||
|
194d039f1e | ||
|
470e10dfaa | ||
|
8c7135ee14 | ||
|
4683cab29a | ||
|
787a001a67 | ||
|
dd92f483b0 | ||
|
65118a51b6 | ||
|
ab9b4e1f59 | ||
|
39e6d0d810 | ||
|
b5da7feee0 | ||
|
0f548dbc98 | ||
|
9d216be8cf | ||
|
eb26cc6cf5 | ||
|
bb63a663b1 | ||
|
dace4e3e2a | ||
|
bbda892c55 | ||
|
61a387dca1 | ||
|
437fa85ba3 | ||
|
b00477acf3 | ||
|
7374285f07 | ||
|
5c84a1032c | ||
|
dbda49a9e6 | ||
|
11351f0c8a | ||
|
a5b5bc9f95 | ||
|
f97792421b | ||
|
396711b840 | ||
|
dbd8e4066b | ||
|
b7f802eca2 | ||
|
a61a1a8181 | ||
|
345a08a77f | ||
|
12c6d28cc7 | ||
|
e442fe5ba5 | ||
|
66a4f5cf9a | ||
|
a740858fc0 | ||
|
e7c988d065 | ||
|
4a8356209d | ||
|
e1ba29ea19 | ||
|
fbf13bcb8a | ||
|
8f8435637d | ||
|
7d08091767 | ||
|
b5f32e1d5a | ||
|
0dffd22349 | ||
|
947d1c5b2a | ||
|
c7f43543af | ||
|
5912cdff3e | ||
|
03188b09e0 | ||
|
fae9604727 | ||
|
aac4a0509e | ||
|
b5f89e5f17 | ||
|
c12d24b513 | ||
|
2549c26a8b | ||
|
a98dccca36 | ||
|
1b3e3e6b84 | ||
|
49b53407c7 | ||
|
d911e3e24f | ||
|
658ab3c3ae | ||
|
8f7349dbb4 | ||
|
d687476edd | ||
|
c157a5bb91 | ||
|
14eca6b573 | ||
|
ef0e0f2550 | ||
|
34d17d2bdc | ||
|
01a0938776 | ||
|
1f47388dfe | ||
|
34500a6da5 | ||
|
00c02626d8 | ||
|
eeeed45c2c | ||
|
3a5463d158 | ||
|
de35989cde | ||
|
29f603a270 | ||
|
7f7fc3e3af | ||
|
a0318d7f8e | ||
|
06fdb6a74c | ||
|
88fdddcbbe | ||
|
1598be5083 | ||
|
436024561a | ||
|
0f0922f93c | ||
|
33f6dc3c33 | ||
|
356428d4e4 | ||
|
b4866f8a52 | ||
|
297a9606ea | ||
|
44557bf065 |
18
Makefile
18
Makefile
@@ -174,10 +174,10 @@ ultrix-gcc:
|
||||
|
||||
# Rules for making release tarballs
|
||||
|
||||
DIRECTORY = Mesa-7.3-rc1
|
||||
LIB_NAME = MesaLib-7.3-rc1
|
||||
DEMO_NAME = MesaDemos-7.3-rc1
|
||||
GLUT_NAME = MesaGLUT-7.3-rc1
|
||||
DIRECTORY = Mesa-7.3-rc3
|
||||
LIB_NAME = MesaLib-7.3-rc3
|
||||
DEMO_NAME = MesaDemos-7.3-rc3
|
||||
GLUT_NAME = MesaGLUT-7.3-rc3
|
||||
|
||||
MAIN_FILES = \
|
||||
$(DIRECTORY)/Makefile* \
|
||||
@@ -223,6 +223,7 @@ MAIN_FILES = \
|
||||
$(DIRECTORY)/src/mesa/sources \
|
||||
$(DIRECTORY)/src/mesa/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/gl.pc.in \
|
||||
$(DIRECTORY)/src/mesa/osmesa.pc.in \
|
||||
$(DIRECTORY)/src/mesa/depend \
|
||||
$(DIRECTORY)/src/mesa/main/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/main/descrip.mms \
|
||||
@@ -297,14 +298,7 @@ MAIN_FILES = \
|
||||
$(DIRECTORY)/vms/analyze_map.com \
|
||||
$(DIRECTORY)/vms/xlib.opt \
|
||||
$(DIRECTORY)/vms/xlib_share.opt \
|
||||
$(DIRECTORY)/windows/VC8/mesa/mesa.sln \
|
||||
$(DIRECTORY)/windows/VC8/mesa/gdi/gdi.vcproj \
|
||||
$(DIRECTORY)/windows/VC8/mesa/glu/glu.vcproj \
|
||||
$(DIRECTORY)/windows/VC8/mesa/mesa/mesa.vcproj \
|
||||
$(DIRECTORY)/windows/VC8/mesa/osmesa/osmesa.vcproj \
|
||||
$(DIRECTORY)/windows/VC8/progs/progs.sln \
|
||||
$(DIRECTORY)/windows/VC8/progs/demos/gears.vcproj \
|
||||
$(DIRECTORY)/windows/VC8/progs/glut/glut.vcproj
|
||||
$(DIRECTORY)/windows/VC8/
|
||||
|
||||
|
||||
DRI_FILES = \
|
||||
|
@@ -22,7 +22,7 @@ AC_CONFIG_AUX_DIR([bin])
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
dnl Versions for external dependencies
|
||||
LIBDRM_REQUIRED=2.3.1
|
||||
LIBDRM_REQUIRED=2.4.3
|
||||
DRI2PROTO_REQUIRED=1.99.3
|
||||
|
||||
dnl Check for progs
|
||||
@@ -83,11 +83,8 @@ dnl Compiler macros
|
||||
DEFINES=""
|
||||
AC_SUBST([DEFINES])
|
||||
case "$host_os" in
|
||||
*-gnu)
|
||||
if test "x$GCC" = xyes; then
|
||||
DEFINES="$DEFINES -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
|
||||
fi
|
||||
DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS"
|
||||
*-gnu*)
|
||||
DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
|
||||
;;
|
||||
solaris*)
|
||||
DEFINES="$DEFINES -DPTHREADS -DSVR4"
|
||||
|
@@ -16,7 +16,7 @@ Status
|
||||
|
||||
Version
|
||||
|
||||
Last Modified Date: 8 June 2000
|
||||
Last Modified Date: 12 January 2009
|
||||
|
||||
Number
|
||||
|
||||
@@ -69,6 +69,12 @@ Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
|
||||
<width> and <height> indicate the size in pixels. Coordinate (0,0)
|
||||
corresponds to the lower-left pixel of the window, like glReadPixels.
|
||||
|
||||
If dpy and drawable are the display and drawable for the calling
|
||||
thread's current context, glXCopySubBufferMESA performs an
|
||||
implicit glFlush before it returns. Subsequent OpenGL commands
|
||||
may be issued immediately after calling glXCopySubBufferMESA, but
|
||||
are not executed until the copy is completed.
|
||||
|
||||
GLX Protocol
|
||||
|
||||
None at this time. The extension is implemented in terms of ordinary
|
||||
@@ -84,5 +90,7 @@ New State
|
||||
|
||||
Revision History
|
||||
|
||||
8 June 2000 - initial specification
|
||||
12 January 2009 Ian Romanick - Added language about implicit flush
|
||||
and command completion.
|
||||
8 June 2000 Brian Paul - initial specification
|
||||
|
||||
|
@@ -48,7 +48,7 @@ a:visited {
|
||||
<li><a href="lists.html" target="MainFrame">Mailing Lists</a>
|
||||
<li><a href="bugs.html" target="MainFrame">Bug Database</a>
|
||||
<li><a href="webmaster.html" target="MainFrame">Webmaster</a>
|
||||
<li><a href="http://dri.freedesktop.org/" target="MainFrame">Wiki</a>
|
||||
<li><a href="http://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
|
||||
</ul>
|
||||
|
||||
<b>User Topics</b>
|
||||
|
@@ -29,7 +29,7 @@ Setting this variable automatically sets the MESA_TEX_PROG variable as well.
|
||||
|
||||
<p>
|
||||
The following are only applicable to the Xlib software driver.
|
||||
See <A HREF="README.X11">README.X11</A> for details.
|
||||
See the <A HREF="xlibdriver.html">Xlib software driver page</A> for details.
|
||||
</p>
|
||||
<ul>
|
||||
<li>MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode
|
||||
|
@@ -15,17 +15,40 @@ Here are some specific ideas and areas where help would be appreciated:
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Enable -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
|
||||
<b>Driver patching and testing.</b>
|
||||
Patches are often posted to the mesa3d-dev mailing list, but aren't
|
||||
immediately checked into git because not enough people are testing them.
|
||||
Just applying patches, testing and reporting back is helpful.
|
||||
<li>
|
||||
<b>Driver debugging.</b>
|
||||
There are plenty of open bugs in the bug database.
|
||||
<li>
|
||||
<b>Remove aliasing warnings.</b>
|
||||
Enable gcc -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
|
||||
issues in the code.
|
||||
<li>
|
||||
Windows 98/NT driver building, maintenance and testing
|
||||
<b>Windows driver building, testing and maintenance.</b>
|
||||
The Visual Studio project files aren't always updated in a timely manner
|
||||
when new source files are added or old ones are removed.
|
||||
Fixing these tends to delay new Mesa releases.
|
||||
<li>
|
||||
Maintenance and testing of lesser-used drivers, such as DOS/DJGPP, GGI, etc.
|
||||
<b>Maintenance and testing of lesser-used drivers.</b>
|
||||
Drivers such as DOS/DJGPP, GGI, etc that aren't being maintained are being
|
||||
deprecated starting in Mesa 7.3.
|
||||
<li>
|
||||
<b>Contribute more tests to
|
||||
<a href="http://glean.sourceforge.net/" target="_parent">glean</a>.</b>
|
||||
<li>
|
||||
<b>Automatic testing.
|
||||
</b>
|
||||
It would be great if someone would set up an automated system for grabbing
|
||||
the latest Mesa code and run tests (such as glean) then report issues to
|
||||
the mailing list.
|
||||
</ol>
|
||||
|
||||
|
||||
<p>
|
||||
If you want to help with Mesa, first join the Mesa developer's
|
||||
If you want to do something new in Mesa, first join the Mesa developer's
|
||||
mailing list.
|
||||
Then post a message to propose what you want to do, just to make sure
|
||||
there's no issues.
|
||||
|
@@ -11,10 +11,11 @@
|
||||
<H1>News</H1>
|
||||
|
||||
|
||||
<h2>January TBD, 2009</h2>
|
||||
<h2>January 22, 2009</h2>
|
||||
<p>
|
||||
<a href="relnotes-7.3.html">Mesa 7.3</a> is released.
|
||||
This is a new development release.
|
||||
Mesa 7.4 will follow and will have bug fixes relative to 7.3.
|
||||
</p>
|
||||
|
||||
|
||||
|
@@ -8,7 +8,7 @@
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.3 Release Notes / TBD January 2009</H1>
|
||||
<H1>Mesa 7.3 Release Notes / 22 January 2009</H1>
|
||||
|
||||
<p>
|
||||
Mesa 7.3 is a new development release.
|
||||
@@ -43,6 +43,12 @@ tbd
|
||||
<ul>
|
||||
<li>Assorted GLSL bug fixes
|
||||
<li>Assorted i965 driver fixes
|
||||
<li>Fix for wglCreateLayerContext() in WGL/Windows driver
|
||||
<li>Build fixes for OpenBSD and gcc 2.95
|
||||
<li>GLSL preprocessor handles #pragma now
|
||||
<li>Fix incorrect transformation of GL_SPOT_DIRECTION
|
||||
<li>Fixed several bugs (#18367 and #19625) in glXMakeContextCurrent()
|
||||
<li>Assorted Windows build fixes
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
@@ -27,16 +27,27 @@ the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Details about particular drivers follows.
|
||||
Be warned that some drivers may be out of date and no longer function.
|
||||
Details about particular drivers follows:
|
||||
</p>
|
||||
|
||||
<UL>
|
||||
<LI><a href="xlibdriver.html">Xlib driver</a> for the X Window System
|
||||
<li><a href="http://dri.freedesktop.org/" target="_parent">
|
||||
DRI hardware drivers</a> for the X window system
|
||||
<li><a href="http://dri.freedesktop.org/" target="_parent"> DRI hardware
|
||||
drivers</a> for the X Window System
|
||||
<LI><a href="xlibdriver.html">Xlib software driver</a> for the X Window System
|
||||
and Unix-like operating systems
|
||||
<LI>Microsoft Windows <A HREF="README.WIN32">(README.WIN32)</A>
|
||||
<LI>DEC VMS <A HREF="README.VMS">(README.VMS)</A>
|
||||
</UL>
|
||||
|
||||
|
||||
<h2>Deprecated Systems</h2>
|
||||
|
||||
<p>
|
||||
These drivers have not been maintained and are being deprecated.
|
||||
They can be saved if someone steps up to help.
|
||||
</p>
|
||||
|
||||
<UL>
|
||||
<LI>3dfx/Glide <A HREF="README.3DFX">(README.3DFX)</A>
|
||||
<LI>GGI <A HREF="README.GGI">(README.GGI)</A>
|
||||
<LI>Amiga Amiwin <A HREF="README.AMIWIN">(README.AMIWIN)</A>
|
||||
@@ -49,6 +60,10 @@ DRI hardware drivers</a> for the X window system
|
||||
<LI>OpenStep <A HREF="README.OpenStep">(README.OpenStep)</A>
|
||||
<LI>OS/2 <A HREF="README.OS2">(README.OS2)</A>
|
||||
<LI>WindML <A HREF="README.WINDML">(README.WINDML)</A>
|
||||
</UL>
|
||||
|
||||
And for historical reference:
|
||||
<UL>
|
||||
<LI><a href="http://utah-glx.sourceforge.net/" target="_parent">Utah GLX drivers</a>
|
||||
</UL>
|
||||
|
||||
|
@@ -624,6 +624,8 @@ struct __DRIswrastExtensionRec {
|
||||
#define __DRI_BUFFER_DEPTH 4
|
||||
#define __DRI_BUFFER_STENCIL 5
|
||||
#define __DRI_BUFFER_ACCUM 6
|
||||
#define __DRI_BUFFER_FAKE_FRONT_LEFT 7
|
||||
#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8
|
||||
|
||||
struct __DRIbufferRec {
|
||||
unsigned int attachment;
|
||||
|
@@ -26,6 +26,7 @@ SOURCES = \
|
||||
arraytexture.c \
|
||||
blendminmax.c \
|
||||
blendsquare.c \
|
||||
blendxor.c \
|
||||
bufferobj.c \
|
||||
bug_3050.c \
|
||||
bug_3101.c \
|
||||
@@ -60,6 +61,7 @@ SOURCES = \
|
||||
projtex.c \
|
||||
random.c \
|
||||
readrate.c \
|
||||
rubberband.c \
|
||||
seccolor.c \
|
||||
shader_api.c \
|
||||
sharedtex.c \
|
||||
|
196
progs/tests/blendxor.c
Normal file
196
progs/tests/blendxor.c
Normal file
@@ -0,0 +1,196 @@
|
||||
/**
|
||||
* Test XOR emulation with blending.
|
||||
*
|
||||
*/
|
||||
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <GL/glut.h>
|
||||
#include "readtex.c"
|
||||
|
||||
#define IMAGE_FILE "../images/arch.rgb"
|
||||
|
||||
static int ImgWidth, ImgHeight;
|
||||
static GLenum ImgFormat;
|
||||
static GLubyte *Image = NULL;
|
||||
|
||||
static int Win;
|
||||
static int Width = 600, Height = 600;
|
||||
|
||||
struct rect
|
||||
{
|
||||
int x0, y0, x1, y1;
|
||||
};
|
||||
|
||||
static struct rect OldRect, NewRect;
|
||||
|
||||
static GLboolean ButtonDown = GL_FALSE;
|
||||
static GLboolean LogicOp = 0*GL_TRUE;
|
||||
|
||||
|
||||
static const GLfloat red[4] = {1.0, 0.2, 0.2, 1.0};
|
||||
static const GLfloat green[4] = {0.2, 1.0, 0.2, 1.0};
|
||||
static const GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0};
|
||||
|
||||
|
||||
static void
|
||||
PrintString(const char *s)
|
||||
{
|
||||
while (*s) {
|
||||
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
|
||||
s++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Draw(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glWindowPos2i((Width - ImgWidth) / 2, (Height - ImgHeight) / 2);
|
||||
glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
|
||||
|
||||
/*
|
||||
* Draw 2D XOR rects
|
||||
*/
|
||||
glColor3f(1, 1, 1);
|
||||
|
||||
glWindowPos2i(100, Height - 20);
|
||||
PrintString("XOR LogicOp:");
|
||||
glLogicOp(GL_XOR);
|
||||
glEnable(GL_COLOR_LOGIC_OP);
|
||||
glRecti(100, 30, 250, Height - 30);
|
||||
glDisable(GL_COLOR_LOGIC_OP);
|
||||
|
||||
glWindowPos2i(Width/2 + 10, Height - 20);
|
||||
PrintString("Invert Blending:");
|
||||
glBlendFunc(GL_ONE, GL_ONE);
|
||||
glBlendEquation(GL_FUNC_SUBTRACT);
|
||||
glEnable(GL_BLEND);
|
||||
glRecti(Width / 2, 30, Width / 2 + 150, Height - 30);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Reshape(int width, int height)
|
||||
{
|
||||
Width = width;
|
||||
Height = height;
|
||||
glViewport(0, 0, width, height);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(0, Width, 0, Height, -1, 1);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Key(unsigned char key, int x, int y)
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 'b':
|
||||
case 'B':
|
||||
LogicOp = GL_FALSE;
|
||||
break;
|
||||
case 'l':
|
||||
case 'L':
|
||||
LogicOp = GL_TRUE;
|
||||
break;
|
||||
case 27:
|
||||
glutDestroyWindow(Win);
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
SpecialKey(int key, int x, int y)
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case GLUT_KEY_UP:
|
||||
break;
|
||||
case GLUT_KEY_DOWN:
|
||||
break;
|
||||
case GLUT_KEY_LEFT:
|
||||
break;
|
||||
case GLUT_KEY_RIGHT:
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
MouseMotion(int x, int y)
|
||||
{
|
||||
if (ButtonDown) {
|
||||
NewRect.x1 = x;
|
||||
NewRect.y1 = y;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
MouseButton(int button, int state, int x, int y)
|
||||
{
|
||||
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
|
||||
ButtonDown = GL_TRUE;
|
||||
NewRect.x0 = NewRect.x1 = x;
|
||||
NewRect.y0 = NewRect.y1 = y;
|
||||
OldRect = NewRect;
|
||||
}
|
||||
else if (button == GLUT_LEFT_BUTTON && state == GLUT_UP) {
|
||||
ButtonDown = GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Init(void)
|
||||
{
|
||||
/*
|
||||
* Load image and scale if needed.
|
||||
*/
|
||||
Image = LoadRGBImage(IMAGE_FILE, &ImgWidth, &ImgHeight, &ImgFormat);
|
||||
if (!Image) {
|
||||
printf("Couldn't read %s\n", IMAGE_FILE);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_PACK_ALIGNMENT, 1);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitWindowSize(Width, Height);
|
||||
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
|
||||
Win = glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutSpecialFunc(SpecialKey);
|
||||
glutMotionFunc(MouseMotion);
|
||||
glutMouseFunc(MouseButton);
|
||||
glutDisplayFunc(Draw);
|
||||
Init();
|
||||
glutPostRedisplay();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
245
progs/tests/rubberband.c
Normal file
245
progs/tests/rubberband.c
Normal file
@@ -0,0 +1,245 @@
|
||||
/**
|
||||
* Test rubber-band selection box w/ logicops and blend.
|
||||
*/
|
||||
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <GL/glut.h>
|
||||
#include "readtex.c"
|
||||
|
||||
#define IMAGE_FILE "../images/arch.rgb"
|
||||
|
||||
static int ImgWidth, ImgHeight;
|
||||
static GLenum ImgFormat;
|
||||
static GLubyte *Image = NULL;
|
||||
|
||||
static int Win;
|
||||
static int Width = 512, Height = 512;
|
||||
|
||||
struct rect
|
||||
{
|
||||
int x0, y0, x1, y1;
|
||||
};
|
||||
|
||||
static struct rect OldRect, NewRect;
|
||||
|
||||
static GLboolean ButtonDown = GL_FALSE;
|
||||
static GLboolean LogicOp = 0*GL_TRUE;
|
||||
|
||||
static GLboolean RedrawBackground = GL_TRUE;
|
||||
|
||||
static const GLfloat red[4] = {1.0, 0.2, 0.2, 1.0};
|
||||
static const GLfloat green[4] = {0.2, 1.0, 0.2, 1.0};
|
||||
static const GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0};
|
||||
|
||||
|
||||
/*
|
||||
* Draw rubberband box in front buffer
|
||||
*/
|
||||
static void
|
||||
DrawRect(const struct rect *r)
|
||||
{
|
||||
glDrawBuffer(GL_FRONT);
|
||||
|
||||
if (LogicOp) {
|
||||
glLogicOp(GL_XOR);
|
||||
glEnable(GL_COLOR_LOGIC_OP);
|
||||
}
|
||||
else {
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_ONE, GL_ONE);
|
||||
glBlendEquation(GL_FUNC_SUBTRACT);
|
||||
}
|
||||
|
||||
glColor3f(1, 1, 1);
|
||||
|
||||
glLineWidth(3.0);
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
glVertex2i(r->x0, r->y0);
|
||||
glVertex2i(r->x1, r->y0);
|
||||
glVertex2i(r->x1, r->y1);
|
||||
glVertex2i(r->x0, r->y1);
|
||||
glEnd();
|
||||
|
||||
glDisable(GL_COLOR_LOGIC_OP);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
glDrawBuffer(GL_BACK);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
PrintString(const char *s)
|
||||
{
|
||||
while (*s) {
|
||||
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
|
||||
s++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
DrawBackground(void)
|
||||
{
|
||||
char s[100];
|
||||
|
||||
sprintf(s, "[L/B] %s mode. Use mouse to make selection box.",
|
||||
LogicOp ? "LogicOp" : "Blend");
|
||||
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glWindowPos2i((Width - ImgWidth) / 2, (Height - ImgHeight) / 2);
|
||||
glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
|
||||
|
||||
glWindowPos2i(10, 10);
|
||||
PrintString(s);
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Draw(void)
|
||||
{
|
||||
if (RedrawBackground) {
|
||||
DrawBackground();
|
||||
}
|
||||
|
||||
if (ButtonDown) {
|
||||
if (!RedrawBackground)
|
||||
DrawRect(&OldRect); /* erase old */
|
||||
|
||||
DrawRect(&NewRect); /* draw new */
|
||||
|
||||
OldRect = NewRect;
|
||||
}
|
||||
|
||||
RedrawBackground = GL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Reshape(int width, int height)
|
||||
{
|
||||
Width = width;
|
||||
Height = height;
|
||||
|
||||
glViewport(0, 0, width, height);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(0, Width, Height, 0, -1, 1); /* Inverted Y! */
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
|
||||
RedrawBackground = GL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Key(unsigned char key, int x, int y)
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 'b':
|
||||
case 'B':
|
||||
LogicOp = GL_FALSE;
|
||||
break;
|
||||
case 'l':
|
||||
case 'L':
|
||||
LogicOp = GL_TRUE;
|
||||
break;
|
||||
case 27:
|
||||
glutDestroyWindow(Win);
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
RedrawBackground = GL_TRUE;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
SpecialKey(int key, int x, int y)
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case GLUT_KEY_UP:
|
||||
break;
|
||||
case GLUT_KEY_DOWN:
|
||||
break;
|
||||
case GLUT_KEY_LEFT:
|
||||
break;
|
||||
case GLUT_KEY_RIGHT:
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
MouseMotion(int x, int y)
|
||||
{
|
||||
if (ButtonDown) {
|
||||
NewRect.x1 = x;
|
||||
NewRect.y1 = y;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
MouseButton(int button, int state, int x, int y)
|
||||
{
|
||||
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
|
||||
ButtonDown = GL_TRUE;
|
||||
RedrawBackground = GL_TRUE;
|
||||
NewRect.x0 = NewRect.x1 = x;
|
||||
NewRect.y0 = NewRect.y1 = y;
|
||||
OldRect = NewRect;
|
||||
}
|
||||
else if (button == GLUT_LEFT_BUTTON && state == GLUT_UP) {
|
||||
ButtonDown = GL_FALSE;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Init(void)
|
||||
{
|
||||
Image = LoadRGBImage(IMAGE_FILE, &ImgWidth, &ImgHeight, &ImgFormat);
|
||||
if (!Image) {
|
||||
printf("Couldn't read %s\n", IMAGE_FILE);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_PACK_ALIGNMENT, 1);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitWindowSize(Width, Height);
|
||||
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
|
||||
Win = glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutSpecialFunc(SpecialKey);
|
||||
glutMotionFunc(MouseMotion);
|
||||
glutMouseFunc(MouseButton);
|
||||
glutDisplayFunc(Draw);
|
||||
Init();
|
||||
glutPostRedisplay();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -113,7 +113,7 @@ swrastGetDrawableInfo(__DRIdrawable * draw,
|
||||
int *x, int *y, int *w, int *h, void *loaderPrivate)
|
||||
{
|
||||
__GLXDRIdrawablePrivate *pdp = loaderPrivate;
|
||||
__GLXDRIdrawable *pdraw = &(pdp->base);;
|
||||
__GLXDRIdrawable *pdraw = &(pdp->base);
|
||||
Display *dpy = pdraw->psc->dpy;
|
||||
Drawable drawable;
|
||||
|
||||
@@ -141,7 +141,7 @@ swrastPutImage(__DRIdrawable * draw, int op,
|
||||
int x, int y, int w, int h, char *data, void *loaderPrivate)
|
||||
{
|
||||
__GLXDRIdrawablePrivate *pdp = loaderPrivate;
|
||||
__GLXDRIdrawable *pdraw = &(pdp->base);;
|
||||
__GLXDRIdrawable *pdraw = &(pdp->base);
|
||||
Display *dpy = pdraw->psc->dpy;
|
||||
Drawable drawable;
|
||||
XImage *ximage;
|
||||
@@ -176,7 +176,7 @@ swrastGetImage(__DRIdrawable * draw,
|
||||
int x, int y, int w, int h, char *data, void *loaderPrivate)
|
||||
{
|
||||
__GLXDRIdrawablePrivate *pdp = loaderPrivate;
|
||||
__GLXDRIdrawable *pdraw = &(pdp->base);;
|
||||
__GLXDRIdrawable *pdraw = &(pdp->base);
|
||||
Display *dpy = pdraw->psc->dpy;
|
||||
Drawable drawable;
|
||||
XImage *ximage;
|
||||
|
@@ -220,14 +220,14 @@ GetDrawableAttribute(Display * dpy, GLXDrawable drawable,
|
||||
unsigned int length;
|
||||
unsigned int i;
|
||||
unsigned int num_attributes;
|
||||
GLboolean use_glx_1_3;
|
||||
|
||||
if ((dpy == NULL) || (drawable == 0)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
priv = __glXInitialize(dpy);
|
||||
GLboolean use_glx_1_3 = ((priv->majorVersion > 1)
|
||||
|| (priv->minorVersion >= 3));
|
||||
use_glx_1_3 = ((priv->majorVersion > 1) || (priv->minorVersion >= 3));
|
||||
|
||||
*value = 0;
|
||||
|
||||
|
@@ -864,6 +864,12 @@ PUBLIC void glXSwapBuffers(Display *dpy, GLXDrawable drawable)
|
||||
GLXContext gc;
|
||||
GLXContextTag tag;
|
||||
CARD8 opcode;
|
||||
#ifdef USE_XCB
|
||||
xcb_connection_t *c;
|
||||
#else
|
||||
xGLXSwapBuffersReq *req;
|
||||
#endif
|
||||
|
||||
#ifdef GLX_DIRECT_RENDERING
|
||||
__GLXDRIdrawable *pdraw = GetGLXDRIDrawable(dpy, drawable, NULL);
|
||||
|
||||
@@ -892,12 +898,10 @@ PUBLIC void glXSwapBuffers(Display *dpy, GLXDrawable drawable)
|
||||
}
|
||||
|
||||
#ifdef USE_XCB
|
||||
xcb_connection_t* c = XGetXCBConnection(dpy);
|
||||
c = XGetXCBConnection(dpy);
|
||||
xcb_glx_swap_buffers(c, tag, drawable);
|
||||
xcb_flush(c);
|
||||
#else
|
||||
xGLXSwapBuffersReq *req;
|
||||
|
||||
/* Send the glXSwapBuffers request */
|
||||
LockDisplay(dpy);
|
||||
GetReq(GLXSwapBuffers,req);
|
||||
|
@@ -312,13 +312,11 @@ SendMakeCurrentRequest(Display * dpy, CARD8 opcode,
|
||||
|
||||
#ifdef GLX_DIRECT_RENDERING
|
||||
static __GLXDRIdrawable *
|
||||
FetchDRIDrawable(Display * dpy,
|
||||
GLXDrawable glxDrawable, GLXContext gc, Bool pre13)
|
||||
FetchDRIDrawable(Display * dpy, GLXDrawable glxDrawable, GLXContext gc)
|
||||
{
|
||||
__GLXdisplayPrivate *const priv = __glXInitialize(dpy);
|
||||
__GLXDRIdrawable *pdraw;
|
||||
__GLXscreenConfigs *psc;
|
||||
XID drawable;
|
||||
|
||||
if (priv == NULL)
|
||||
return NULL;
|
||||
@@ -330,15 +328,7 @@ FetchDRIDrawable(Display * dpy,
|
||||
if (__glxHashLookup(psc->drawHash, glxDrawable, (void *) &pdraw) == 0)
|
||||
return pdraw;
|
||||
|
||||
/* If this is glXMakeCurrent (pre GLX 1.3) we allow creating the
|
||||
* GLX drawable on the fly. Otherwise we pass None as the X
|
||||
* drawable */
|
||||
if (pre13)
|
||||
drawable = glxDrawable;
|
||||
else
|
||||
drawable = None;
|
||||
|
||||
pdraw = psc->driScreen->createDrawable(psc, drawable,
|
||||
pdraw = psc->driScreen->createDrawable(psc, glxDrawable,
|
||||
glxDrawable, gc->mode);
|
||||
if (__glxHashInsert(psc->drawHash, glxDrawable, pdraw)) {
|
||||
(*pdraw->destroyDrawable) (pdraw);
|
||||
@@ -357,7 +347,7 @@ FetchDRIDrawable(Display * dpy,
|
||||
*/
|
||||
static Bool
|
||||
MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
GLXDrawable read, GLXContext gc, Bool pre13)
|
||||
GLXDrawable read, GLXContext gc)
|
||||
{
|
||||
xGLXMakeCurrentReply reply;
|
||||
const GLXContext oldGC = __glXGetCurrentContext();
|
||||
@@ -365,7 +355,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
const CARD8 oldOpcode = ((gc == oldGC) || (oldGC == &dummyContext))
|
||||
? opcode : __glXSetupForCommand(oldGC->currentDpy);
|
||||
Bool bindReturnValue;
|
||||
|
||||
__GLXattribute *state;
|
||||
|
||||
if (!opcode || !oldOpcode) {
|
||||
return GL_FALSE;
|
||||
@@ -384,8 +374,21 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
#ifdef GLX_DIRECT_RENDERING
|
||||
/* Bind the direct rendering context to the drawable */
|
||||
if (gc && gc->driContext) {
|
||||
__GLXDRIdrawable *pdraw = FetchDRIDrawable(dpy, draw, gc, pre13);
|
||||
__GLXDRIdrawable *pread = FetchDRIDrawable(dpy, read, gc, pre13);
|
||||
__GLXDRIdrawable *pdraw = FetchDRIDrawable(dpy, draw, gc);
|
||||
__GLXDRIdrawable *pread = FetchDRIDrawable(dpy, read, gc);
|
||||
|
||||
if ((pdraw == NULL) || (pread == NULL)) {
|
||||
xError error;
|
||||
|
||||
error.errorCode = GLXBadDrawable;
|
||||
error.resourceID = (pdraw == NULL) ? draw : read;
|
||||
error.sequenceNumber = dpy->request;
|
||||
error.type = X_Error;
|
||||
error.majorCode = gc->majorOpcode;
|
||||
error.minorCode = X_GLXMakeContextCurrent;
|
||||
_XError(dpy, &error);
|
||||
return False;
|
||||
}
|
||||
|
||||
bindReturnValue =
|
||||
(gc->driContext->bindContext) (gc->driContext, pdraw, pread);
|
||||
@@ -489,8 +492,7 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
} while (0);
|
||||
#endif
|
||||
|
||||
__GLXattribute *state =
|
||||
(__GLXattribute *) (gc->client_state_private);
|
||||
state = (__GLXattribute *) (gc->client_state_private);
|
||||
|
||||
gc->currentContextTag = reply.contextTag;
|
||||
if (state->array_state == NULL) {
|
||||
@@ -517,15 +519,16 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
|
||||
PUBLIC Bool
|
||||
glXMakeCurrent(Display * dpy, GLXDrawable draw, GLXContext gc)
|
||||
{
|
||||
return MakeContextCurrent(dpy, draw, draw, gc, True);
|
||||
return MakeContextCurrent(dpy, draw, draw, gc);
|
||||
}
|
||||
|
||||
PUBLIC
|
||||
GLX_ALIAS(Bool, glXMakeCurrentReadSGI,
|
||||
(Display * dpy, GLXDrawable d, GLXDrawable r, GLXContext ctx),
|
||||
(dpy, d, r, ctx, False), MakeContextCurrent)
|
||||
(dpy, d, r, ctx), MakeContextCurrent)
|
||||
|
||||
PUBLIC GLX_ALIAS(Bool, glXMakeContextCurrent,
|
||||
(Display * dpy, GLXDrawable d, GLXDrawable r,
|
||||
GLXContext ctx), (dpy, d, r, ctx, False),
|
||||
MakeContextCurrent)
|
||||
PUBLIC
|
||||
GLX_ALIAS(Bool, glXMakeContextCurrent,
|
||||
(Display * dpy, GLXDrawable d, GLXDrawable r,
|
||||
GLXContext ctx), (dpy, d, r, ctx),
|
||||
MakeContextCurrent)
|
||||
|
@@ -108,6 +108,28 @@ do { \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* Same as above, but for two drawables simultaneously.
|
||||
*
|
||||
*/
|
||||
|
||||
#define DRI_VALIDATE_TWO_DRAWABLES_INFO(psp, pdp, prp) \
|
||||
do { \
|
||||
while (*((pdp)->pStamp) != (pdp)->lastStamp || \
|
||||
*((prp)->pStamp) != (prp)->lastStamp) { \
|
||||
register unsigned int hwContext = (psp)->pSAREA->lock.lock & \
|
||||
~(DRM_LOCK_HELD | DRM_LOCK_CONT); \
|
||||
DRM_UNLOCK((psp)->fd, &(psp)->pSAREA->lock, hwContext); \
|
||||
\
|
||||
DRM_SPINLOCK(&(psp)->pSAREA->drawable_lock, (psp)->drawLockID); \
|
||||
DRI_VALIDATE_DRAWABLE_INFO_ONCE(pdp); \
|
||||
DRI_VALIDATE_DRAWABLE_INFO_ONCE(prp); \
|
||||
DRM_SPINUNLOCK(&(psp)->pSAREA->drawable_lock, (psp)->drawLockID); \
|
||||
\
|
||||
DRM_LIGHT_LOCK((psp)->fd, &(psp)->pSAREA->lock, hwContext); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
/**
|
||||
* Driver callback functions.
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#include "shader/prog_parameter.h"
|
||||
#include "shader/program.h"
|
||||
#include "shader/programopt.h"
|
||||
#include "shader/prog_print.h"
|
||||
|
||||
#include "tnl/tnl.h"
|
||||
#include "tnl/t_context.h"
|
||||
@@ -1048,6 +1049,9 @@ i915ProgramStringNotify(GLcontext * ctx,
|
||||
_mesa_append_fog_code(ctx, &p->FragProg);
|
||||
p->FragProg.FogOption = GL_NONE;
|
||||
}
|
||||
|
||||
if (INTEL_DEBUG & DEBUG_STATE)
|
||||
_mesa_print_program(prog);
|
||||
}
|
||||
|
||||
_tnl_program_string(ctx, target, prog);
|
||||
|
@@ -92,7 +92,6 @@ static void intel_start_inline(struct intel_context *intel, uint32_t prim)
|
||||
BATCH_LOCALS;
|
||||
uint32_t batch_flags = LOOP_CLIPRECTS;
|
||||
|
||||
intel_wait_flips(intel);
|
||||
intel->vtbl.emit_state(intel);
|
||||
|
||||
intel->no_batch_wrap = GL_TRUE;
|
||||
@@ -214,8 +213,7 @@ void intel_flush_prim(struct intel_context *intel)
|
||||
return;
|
||||
|
||||
/* Clear the current prims out of the context state so that a batch flush
|
||||
* flush triggered by wait_flips or emit_state doesn't loop back to
|
||||
* flush_prim again.
|
||||
* flush triggered by emit_state doesn't loop back to flush_prim again.
|
||||
*/
|
||||
vb_bo = intel->prim.vb_bo;
|
||||
dri_bo_reference(vb_bo);
|
||||
@@ -227,8 +225,6 @@ void intel_flush_prim(struct intel_context *intel)
|
||||
intel->prim.start_offset = ALIGN(intel->prim.start_offset, 128);
|
||||
intel->prim.flush = NULL;
|
||||
|
||||
intel_wait_flips(intel);
|
||||
|
||||
intel->vtbl.emit_state(intel);
|
||||
|
||||
aper_array[0] = intel->batch->buf;
|
||||
|
@@ -143,6 +143,9 @@ GLboolean brwCreateContext( const __GLcontextModes *mesaVis,
|
||||
ctx->Const.MaxCubeTextureLevels = 12;
|
||||
ctx->Const.MaxTextureRectSize = (1<<11);
|
||||
|
||||
/* if conformance mode is set, swrast can handle any size AA point */
|
||||
ctx->Const.MaxPointSizeAA = 255.0;
|
||||
|
||||
/* ctx->Const.MaxNativeVertexProgramTemps = 32; */
|
||||
|
||||
brw_init_attribs( brw );
|
||||
|
@@ -111,9 +111,15 @@ static void brwProgramStringNotify( GLcontext *ctx,
|
||||
struct gl_program *prog )
|
||||
{
|
||||
if (target == GL_FRAGMENT_PROGRAM_ARB) {
|
||||
struct gl_fragment_program *fprog = (struct gl_fragment_program *) prog;
|
||||
struct brw_context *brw = brw_context(ctx);
|
||||
struct brw_fragment_program *p = (struct brw_fragment_program *)prog;
|
||||
struct brw_fragment_program *fp = (struct brw_fragment_program *)brw->fragment_program;
|
||||
if (fprog->FogOption) {
|
||||
_mesa_append_fog_code(ctx, fprog);
|
||||
fprog->FogOption = GL_NONE;
|
||||
}
|
||||
|
||||
if (p == fp)
|
||||
brw->state.dirty.brw |= BRW_NEW_FRAGMENT_PROGRAM;
|
||||
p->id = brw->program_id++;
|
||||
|
@@ -73,10 +73,12 @@ static void compile_sf_prog( struct brw_context *brw,
|
||||
c.attr_to_idx[i] = idx;
|
||||
c.idx_to_attr[idx] = i;
|
||||
if (i >= VERT_RESULT_TEX0 && i <= VERT_RESULT_TEX7) {
|
||||
c.point_attrs[i].CoordReplace =
|
||||
brw->attribs.Point->CoordReplace[i - VERT_RESULT_TEX0];
|
||||
} else
|
||||
c.point_attrs[i].CoordReplace = GL_FALSE;
|
||||
c.point_attrs[i].CoordReplace =
|
||||
brw->attribs.Point->CoordReplace[i - VERT_RESULT_TEX0];
|
||||
}
|
||||
else {
|
||||
c.point_attrs[i].CoordReplace = GL_FALSE;
|
||||
}
|
||||
idx++;
|
||||
}
|
||||
|
||||
@@ -106,7 +108,6 @@ static void compile_sf_prog( struct brw_context *brw,
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* get the program
|
||||
*/
|
||||
|
@@ -42,22 +42,15 @@ static void upload_sf_vp(struct brw_context *brw)
|
||||
GLcontext *ctx = &brw->intel.ctx;
|
||||
const GLfloat depth_scale = 1.0F / ctx->DrawBuffer->_DepthMaxF;
|
||||
struct brw_sf_viewport sfv;
|
||||
struct intel_renderbuffer *irb =
|
||||
intel_renderbuffer(ctx->DrawBuffer->_ColorDrawBuffers[0]);
|
||||
GLfloat y_scale, y_bias;
|
||||
|
||||
memset(&sfv, 0, sizeof(sfv));
|
||||
|
||||
if (ctx->DrawBuffer->Name) {
|
||||
/* User-created FBO */
|
||||
if (irb && !irb->RenderToTexture) {
|
||||
y_scale = -1.0;
|
||||
y_bias = ctx->DrawBuffer->Height;
|
||||
} else {
|
||||
y_scale = 1.0;
|
||||
y_bias = 0;
|
||||
}
|
||||
} else {
|
||||
if (intel_rendering_to_texture(ctx)) {
|
||||
y_scale = 1.0;
|
||||
y_bias = 0;
|
||||
}
|
||||
else {
|
||||
y_scale = -1.0;
|
||||
y_bias = ctx->DrawBuffer->Height;
|
||||
}
|
||||
@@ -120,6 +113,7 @@ struct brw_sf_unit_key {
|
||||
GLboolean scissor, line_smooth, point_sprite, point_attenuated;
|
||||
float line_width;
|
||||
float point_size;
|
||||
GLboolean render_to_texture;
|
||||
};
|
||||
|
||||
static void
|
||||
@@ -150,6 +144,8 @@ sf_unit_populate_key(struct brw_context *brw, struct brw_sf_unit_key *key)
|
||||
key->point_sprite = brw->attribs.Point->PointSprite;
|
||||
key->point_size = brw->attribs.Point->Size;
|
||||
key->point_attenuated = brw->attribs.Point->_Attenuated;
|
||||
|
||||
key->render_to_texture = intel_rendering_to_texture(&brw->intel.ctx);
|
||||
}
|
||||
|
||||
static dri_bo *
|
||||
@@ -196,6 +192,11 @@ sf_unit_create_from_key(struct brw_context *brw, struct brw_sf_unit_key *key,
|
||||
else
|
||||
sf.sf5.front_winding = BRW_FRONTWINDING_CW;
|
||||
|
||||
/* The viewport is inverted for rendering to texture, and that inverts
|
||||
* polygon front/back orientation.
|
||||
*/
|
||||
sf.sf5.front_winding ^= key->render_to_texture;
|
||||
|
||||
switch (key->cull_face) {
|
||||
case GL_FRONT:
|
||||
sf.sf6.cull_mode = BRW_CULLMODE_FRONT;
|
||||
@@ -229,7 +230,7 @@ sf_unit_create_from_key(struct brw_context *brw, struct brw_sf_unit_key *key,
|
||||
/* XXX clamp max depends on AA vs. non-AA */
|
||||
|
||||
sf.sf7.sprite_point = key->point_sprite;
|
||||
sf.sf7.point_size = CLAMP(nearbyint(key->point_size), 1, 255) * (1<<3);
|
||||
sf.sf7.point_size = CLAMP(rint(key->point_size), 1, 255) * (1<<3);
|
||||
sf.sf7.use_point_size_state = !key->point_attenuated;
|
||||
sf.sf7.aa_line_distance_mode = 0;
|
||||
|
||||
|
@@ -1006,7 +1006,7 @@ void brw_vs_emit(struct brw_vs_compile *c )
|
||||
GLuint file;
|
||||
|
||||
if (INTEL_DEBUG & DEBUG_VS) {
|
||||
_mesa_printf("\n\n\nvs-emit:\n");
|
||||
_mesa_printf("vs-emit:\n");
|
||||
_mesa_print_program(&c->vp->program.Base);
|
||||
_mesa_printf("\n");
|
||||
}
|
||||
|
@@ -40,62 +40,20 @@
|
||||
GLuint brw_wm_nr_args( GLuint opcode )
|
||||
{
|
||||
switch (opcode) {
|
||||
|
||||
case WM_PIXELXY:
|
||||
case OPCODE_ABS:
|
||||
case OPCODE_FLR:
|
||||
case OPCODE_FRC:
|
||||
case OPCODE_SWZ:
|
||||
case OPCODE_MOV:
|
||||
case OPCODE_COS:
|
||||
case OPCODE_EX2:
|
||||
case OPCODE_LG2:
|
||||
case OPCODE_RCP:
|
||||
case OPCODE_RSQ:
|
||||
case OPCODE_SIN:
|
||||
case OPCODE_SCS:
|
||||
case OPCODE_TEX:
|
||||
case OPCODE_TXB:
|
||||
case OPCODE_TXP:
|
||||
case OPCODE_KIL:
|
||||
case OPCODE_LIT:
|
||||
case OPCODE_NRM3:
|
||||
case OPCODE_NRM4:
|
||||
case WM_CINTERP:
|
||||
case WM_WPOSXY:
|
||||
case WM_CINTERP:
|
||||
case WM_WPOSXY:
|
||||
return 1;
|
||||
|
||||
case OPCODE_POW:
|
||||
case OPCODE_SUB:
|
||||
case OPCODE_SGE:
|
||||
case OPCODE_SGT:
|
||||
case OPCODE_SLE:
|
||||
case OPCODE_SLT:
|
||||
case OPCODE_SEQ:
|
||||
case OPCODE_SNE:
|
||||
case OPCODE_ADD:
|
||||
case OPCODE_MAX:
|
||||
case OPCODE_MIN:
|
||||
case OPCODE_MUL:
|
||||
case OPCODE_XPD:
|
||||
case OPCODE_DP3:
|
||||
case OPCODE_DP4:
|
||||
case OPCODE_DPH:
|
||||
case OPCODE_DST:
|
||||
case WM_LINTERP:
|
||||
case WM_LINTERP:
|
||||
case WM_DELTAXY:
|
||||
case WM_PIXELW:
|
||||
return 2;
|
||||
|
||||
case WM_FB_WRITE:
|
||||
case WM_PINTERP:
|
||||
case OPCODE_MAD:
|
||||
case OPCODE_CMP:
|
||||
case OPCODE_LRP:
|
||||
case WM_PINTERP:
|
||||
return 3;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
assert(opcode < MAX_OPCODE);
|
||||
return _mesa_num_inst_src_regs(opcode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,6 +136,9 @@ static void do_wm_prog( struct brw_context *brw,
|
||||
*/
|
||||
brw_wm_emit(c);
|
||||
}
|
||||
if (INTEL_DEBUG & DEBUG_WM)
|
||||
fprintf(stderr, "\n");
|
||||
|
||||
/* get the program
|
||||
*/
|
||||
program = brw_get_program(&c->func, &program_size);
|
||||
|
@@ -163,9 +163,9 @@ void brw_wm_print_program( struct brw_wm_compile *c,
|
||||
{
|
||||
GLuint insn;
|
||||
|
||||
_mesa_printf("\n\n\n%s:\n", stage);
|
||||
_mesa_printf("%s:\n", stage);
|
||||
for (insn = 0; insn < c->nr_insns; insn++)
|
||||
brw_wm_print_insn(c, &c->instruction[insn]);
|
||||
_mesa_printf("\n\n\n");
|
||||
_mesa_printf("\n");
|
||||
}
|
||||
|
||||
|
@@ -811,57 +811,6 @@ static void precalc_txp( struct brw_wm_compile *c,
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* Add instructions to perform fog blending
|
||||
*/
|
||||
|
||||
static void fog_blend( struct brw_wm_compile *c,
|
||||
struct prog_src_register fog_factor )
|
||||
{
|
||||
struct prog_dst_register outcolor = dst_reg(PROGRAM_OUTPUT, FRAG_RESULT_COLR);
|
||||
struct prog_src_register fogcolor = search_or_add_param5( c, STATE_FOG_COLOR, 0,0,0,0 );
|
||||
|
||||
/* color.xyz = LRP fog_factor.xxxx, output_color, fog_color */
|
||||
|
||||
emit_op(c,
|
||||
OPCODE_LRP,
|
||||
dst_mask(outcolor, WRITEMASK_XYZ),
|
||||
0, 0, 0,
|
||||
fog_factor,
|
||||
src_reg_from_dst(outcolor),
|
||||
fogcolor);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* This one is simple - just take the interpolated fog coordinate and
|
||||
* use it as the fog blend factor.
|
||||
*/
|
||||
static void fog_interpolated( struct brw_wm_compile *c )
|
||||
{
|
||||
struct prog_src_register fogc = src_reg(PROGRAM_INPUT, FRAG_ATTRIB_FOGC);
|
||||
|
||||
if (!(c->fp_interp_emitted & (1<<FRAG_ATTRIB_FOGC)))
|
||||
emit_interp(c, FRAG_ATTRIB_FOGC);
|
||||
|
||||
fog_blend( c, src_swizzle1(fogc, GET_SWZ(fogc.Swizzle,X)));
|
||||
}
|
||||
|
||||
static void emit_fog( struct brw_wm_compile *c )
|
||||
{
|
||||
if (!c->fp->program.FogOption)
|
||||
return;
|
||||
|
||||
if (1)
|
||||
fog_interpolated( c );
|
||||
else {
|
||||
/* TODO: per-pixel fog */
|
||||
assert(0);
|
||||
}
|
||||
}
|
||||
|
||||
static void emit_fb_write( struct brw_wm_compile *c )
|
||||
{
|
||||
struct prog_src_register payload_r0_depth = src_reg(PROGRAM_PAYLOAD, PAYLOAD_DEPTH);
|
||||
@@ -964,7 +913,7 @@ void brw_wm_pass_fp( struct brw_wm_compile *c )
|
||||
GLuint insn;
|
||||
|
||||
if (INTEL_DEBUG & DEBUG_WM) {
|
||||
_mesa_printf("\n\n\npre-fp:\n");
|
||||
_mesa_printf("pre-fp:\n");
|
||||
_mesa_print_program(&fp->program.Base);
|
||||
_mesa_printf("\n");
|
||||
}
|
||||
@@ -1059,7 +1008,6 @@ void brw_wm_pass_fp( struct brw_wm_compile *c )
|
||||
emit_ddy(c, inst);
|
||||
break;
|
||||
case OPCODE_END:
|
||||
emit_fog(c);
|
||||
emit_fb_write(c);
|
||||
break;
|
||||
case OPCODE_PRINT:
|
||||
@@ -1072,7 +1020,7 @@ void brw_wm_pass_fp( struct brw_wm_compile *c )
|
||||
}
|
||||
|
||||
if (INTEL_DEBUG & DEBUG_WM) {
|
||||
_mesa_printf("\n\n\npass_fp:\n");
|
||||
_mesa_printf("pass_fp:\n");
|
||||
print_insns( c->prog_instructions, c->nr_fp_insns );
|
||||
_mesa_printf("\n");
|
||||
}
|
||||
|
@@ -892,15 +892,19 @@ static void emit_lrp(struct brw_wm_compile *c,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For GLSL shaders, this KIL will be unconditional.
|
||||
* It may be contained inside an IF/ENDIF structure of course.
|
||||
*/
|
||||
static void emit_kil(struct brw_wm_compile *c)
|
||||
{
|
||||
struct brw_compile *p = &c->func;
|
||||
struct brw_reg depth = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW);
|
||||
brw_push_insn_state(p);
|
||||
brw_set_mask_control(p, BRW_MASK_DISABLE);
|
||||
brw_NOT(p, c->emit_mask_reg, brw_mask_reg(1)); //IMASK
|
||||
brw_AND(p, depth, c->emit_mask_reg, depth);
|
||||
brw_pop_insn_state(p);
|
||||
struct brw_compile *p = &c->func;
|
||||
struct brw_reg depth = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW);
|
||||
brw_push_insn_state(p);
|
||||
brw_set_mask_control(p, BRW_MASK_DISABLE);
|
||||
brw_NOT(p, c->emit_mask_reg, brw_mask_reg(1)); //IMASK
|
||||
brw_AND(p, depth, c->emit_mask_reg, depth);
|
||||
brw_pop_insn_state(p);
|
||||
}
|
||||
|
||||
static void emit_mad(struct brw_wm_compile *c,
|
||||
|
@@ -244,7 +244,7 @@ brw_wm_sampler_populate_key(struct brw_context *brw,
|
||||
entry->minfilter = texObj->MinFilter;
|
||||
entry->magfilter = texObj->MagFilter;
|
||||
entry->comparemode = texObj->CompareMode;
|
||||
entry->comparefunc = texObj->CompareFunc;
|
||||
entry->comparefunc = texObj->CompareFunc;
|
||||
|
||||
dri_bo_unreference(brw->wm.sdc_bo[unit]);
|
||||
if (firstImage->_BaseFormat == GL_DEPTH_COMPONENT) {
|
||||
|
@@ -192,21 +192,27 @@ brw_create_texture_surface( struct brw_context *brw,
|
||||
if (key->bo)
|
||||
surf.ss0.surface_format = translate_tex_format(key->format, key->depthmode);
|
||||
else {
|
||||
switch(key->depth) {
|
||||
case 32: surf.ss0.surface_format = BRW_SURFACEFORMAT_B8G8R8A8_UNORM; break;
|
||||
default:
|
||||
case 24: surf.ss0.surface_format = BRW_SURFACEFORMAT_B8G8R8X8_UNORM; break;
|
||||
case 16: surf.ss0.surface_format = BRW_SURFACEFORMAT_B5G6R5_UNORM; break;
|
||||
}
|
||||
switch (key->depth) {
|
||||
case 32:
|
||||
surf.ss0.surface_format = BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
|
||||
break;
|
||||
default:
|
||||
case 24:
|
||||
surf.ss0.surface_format = BRW_SURFACEFORMAT_B8G8R8X8_UNORM;
|
||||
break;
|
||||
case 16:
|
||||
surf.ss0.surface_format = BRW_SURFACEFORMAT_B5G6R5_UNORM;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* This is ok for all textures with channel width 8bit or less:
|
||||
*/
|
||||
/* surf.ss0.data_return_format = BRW_SURFACERETURNFORMAT_S1; */
|
||||
if (key->bo)
|
||||
surf.ss1.base_addr = key->bo->offset; /* reloc */
|
||||
surf.ss1.base_addr = key->bo->offset; /* reloc */
|
||||
else
|
||||
surf.ss1.base_addr = key->offset;
|
||||
surf.ss1.base_addr = key->offset;
|
||||
|
||||
surf.ss2.mip_count = key->last_level - key->first_level;
|
||||
surf.ss2.width = key->width - 1;
|
||||
|
@@ -544,7 +544,6 @@ intelClearWithBlit(GLcontext *ctx, GLbitfield mask)
|
||||
_mesa_debug(ctx, "hardware blit clear buf %d rb id %d\n",
|
||||
buf, irb->Base.Name);
|
||||
*/
|
||||
intel_wait_flips(intel);
|
||||
|
||||
assert(b.x1 < b.x2);
|
||||
assert(b.y1 < b.y2);
|
||||
|
@@ -43,22 +43,6 @@
|
||||
#include "vblank.h"
|
||||
#include "i915_drm.h"
|
||||
|
||||
/* This block can be removed when libdrm >= 2.3.1 is required */
|
||||
|
||||
#ifndef DRM_IOCTL_I915_FLIP
|
||||
|
||||
#define DRM_VBLANK_FLIP 0x8000000
|
||||
|
||||
typedef struct drm_i915_flip {
|
||||
int pipes;
|
||||
} drm_i915_flip_t;
|
||||
|
||||
#undef DRM_IOCTL_I915_FLIP
|
||||
#define DRM_IOCTL_I915_FLIP DRM_IOW(DRM_COMMAND_BASE + DRM_I915_FLIP, \
|
||||
drm_i915_flip_t)
|
||||
|
||||
#endif
|
||||
|
||||
#define FILE_DEBUG_FLAG DEBUG_BLIT
|
||||
|
||||
/**
|
||||
@@ -143,8 +127,7 @@ intel_get_cliprects(struct intel_context *intel,
|
||||
*num_cliprects = 1;
|
||||
*x_off = 0;
|
||||
*y_off = 0;
|
||||
} else if (intel->front_cliprects ||
|
||||
intel_fb->pf_active || dPriv->numBackClipRects == 0) {
|
||||
} else if (intel->front_cliprects || dPriv->numBackClipRects == 0) {
|
||||
/* use the front clip rects */
|
||||
*cliprects = dPriv->pClipRects;
|
||||
*num_cliprects = dPriv->numClipRects;
|
||||
@@ -160,76 +143,6 @@ intel_get_cliprects(struct intel_context *intel,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
intelUpdatePageFlipping(struct intel_context *intel,
|
||||
GLint areaA, GLint areaB)
|
||||
{
|
||||
__DRIdrawablePrivate *dPriv = intel->driDrawable;
|
||||
struct intel_framebuffer *intel_fb = dPriv->driverPrivate;
|
||||
GLboolean pf_active;
|
||||
GLint pf_planes;
|
||||
|
||||
/* Update page flipping info */
|
||||
pf_planes = 0;
|
||||
|
||||
if (areaA > 0)
|
||||
pf_planes |= 1;
|
||||
|
||||
if (areaB > 0)
|
||||
pf_planes |= 2;
|
||||
|
||||
intel_fb->pf_current_page = (intel->sarea->pf_current_page >>
|
||||
(intel_fb->pf_planes & 0x2)) & 0x3;
|
||||
|
||||
intel_fb->pf_num_pages = 2;
|
||||
|
||||
pf_active = pf_planes && (pf_planes & intel->sarea->pf_active) == pf_planes;
|
||||
|
||||
if (INTEL_DEBUG & DEBUG_LOCK)
|
||||
if (pf_active != intel_fb->pf_active)
|
||||
_mesa_printf("%s - Page flipping %sactive\n", __progname,
|
||||
pf_active ? "" : "in");
|
||||
|
||||
if (pf_active) {
|
||||
/* Sync pages between planes if flipping on both at the same time */
|
||||
if (pf_planes == 0x3 && pf_planes != intel_fb->pf_planes &&
|
||||
(intel->sarea->pf_current_page & 0x3) !=
|
||||
(((intel->sarea->pf_current_page) >> 2) & 0x3)) {
|
||||
drm_i915_flip_t flip;
|
||||
|
||||
if (intel_fb->pf_current_page ==
|
||||
(intel->sarea->pf_current_page & 0x3)) {
|
||||
/* XXX: This is ugly, but emitting two flips 'in a row' can cause
|
||||
* lockups for unknown reasons.
|
||||
*/
|
||||
intel->sarea->pf_current_page =
|
||||
intel->sarea->pf_current_page & 0x3;
|
||||
intel->sarea->pf_current_page |=
|
||||
((intel_fb->pf_current_page + intel_fb->pf_num_pages - 1) %
|
||||
intel_fb->pf_num_pages) << 2;
|
||||
|
||||
flip.pipes = 0x2;
|
||||
} else {
|
||||
intel->sarea->pf_current_page =
|
||||
intel->sarea->pf_current_page & (0x3 << 2);
|
||||
intel->sarea->pf_current_page |=
|
||||
(intel_fb->pf_current_page + intel_fb->pf_num_pages - 1) %
|
||||
intel_fb->pf_num_pages;
|
||||
|
||||
flip.pipes = 0x1;
|
||||
}
|
||||
|
||||
drmCommandWrite(intel->driFd, DRM_I915_FLIP, &flip, sizeof(flip));
|
||||
}
|
||||
|
||||
intel_fb->pf_planes = pf_planes;
|
||||
}
|
||||
|
||||
intel_fb->pf_active = pf_active;
|
||||
intel_flip_renderbuffers(intel_fb);
|
||||
intel_draw_buffer(&intel->ctx, intel->ctx.DrawBuffer);
|
||||
}
|
||||
|
||||
/**
|
||||
* This will be called whenever the currently bound window is moved/resized.
|
||||
* XXX: actually, it seems to NOT be called when the window is only moved (BP).
|
||||
@@ -243,7 +156,7 @@ intelWindowMoved(struct intel_context *intel)
|
||||
|
||||
if (!intel->intelScreen->driScrnPriv->dri2.enabled &&
|
||||
intel->intelScreen->driScrnPriv->ddx_version.minor >= 7) {
|
||||
volatile struct drm_i915_sarea *sarea = intel->sarea;
|
||||
volatile drm_i915_sarea_t *sarea = intel->sarea;
|
||||
drm_clip_rect_t drw_rect = { .x1 = dPriv->x, .x2 = dPriv->x + dPriv->w,
|
||||
.y1 = dPriv->y, .y2 = dPriv->y + dPriv->h };
|
||||
drm_clip_rect_t planeA_rect = { .x1 = sarea->planeA_x, .y1 = sarea->planeA_y,
|
||||
@@ -256,8 +169,6 @@ intelWindowMoved(struct intel_context *intel)
|
||||
GLint areaB = driIntersectArea( drw_rect, planeB_rect );
|
||||
GLuint flags = dPriv->vblFlags;
|
||||
|
||||
intelUpdatePageFlipping(intel, areaA, areaB);
|
||||
|
||||
/* Update vblank info
|
||||
*/
|
||||
if (areaB > areaA || (areaA == areaB && areaB > 0)) {
|
||||
@@ -282,7 +193,7 @@ intelWindowMoved(struct intel_context *intel)
|
||||
vbl.request.type |= DRM_VBLANK_SECONDARY;
|
||||
}
|
||||
|
||||
for (i = 0; i < intel_fb->pf_num_pages; i++) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
if (!intel_fb->color_rb[i] ||
|
||||
(intel_fb->vbl_waited - intel_fb->color_rb[i]->vbl_pending) <=
|
||||
(1<<23))
|
||||
@@ -306,7 +217,7 @@ intelWindowMoved(struct intel_context *intel)
|
||||
|
||||
intel_fb->vbl_waited = dPriv->vblSeq;
|
||||
|
||||
for (i = 0; i < intel_fb->pf_num_pages; i++) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
if (intel_fb->color_rb[i])
|
||||
intel_fb->color_rb[i]->vbl_pending = intel_fb->vbl_waited;
|
||||
}
|
||||
@@ -545,176 +456,6 @@ intelClear(GLcontext *ctx, GLbitfield mask)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Emit wait for pending flips */
|
||||
void
|
||||
intel_wait_flips(struct intel_context *intel)
|
||||
{
|
||||
struct intel_framebuffer *intel_fb =
|
||||
(struct intel_framebuffer *) intel->ctx.DrawBuffer;
|
||||
struct intel_renderbuffer *intel_rb =
|
||||
intel_get_renderbuffer(&intel_fb->Base,
|
||||
intel_fb->Base._ColorDrawBufferIndexes[0] ==
|
||||
BUFFER_FRONT_LEFT ? BUFFER_FRONT_LEFT :
|
||||
BUFFER_BACK_LEFT);
|
||||
|
||||
if (intel->intelScreen->driScrnPriv->dri2.enabled)
|
||||
return;
|
||||
|
||||
if (intel_fb->Base.Name == 0 && intel_rb &&
|
||||
intel_rb->pf_pending == intel_fb->pf_seq) {
|
||||
GLint pf_planes = intel_fb->pf_planes;
|
||||
BATCH_LOCALS;
|
||||
|
||||
/* Wait for pending flips to take effect */
|
||||
BEGIN_BATCH(2, NO_LOOP_CLIPRECTS);
|
||||
OUT_BATCH(pf_planes & 0x1 ? (MI_WAIT_FOR_EVENT | MI_WAIT_FOR_PLANE_A_FLIP)
|
||||
: 0);
|
||||
OUT_BATCH(pf_planes & 0x2 ? (MI_WAIT_FOR_EVENT | MI_WAIT_FOR_PLANE_B_FLIP)
|
||||
: 0);
|
||||
ADVANCE_BATCH();
|
||||
|
||||
intel_rb->pf_pending--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Flip the front & back buffers
|
||||
*/
|
||||
static GLboolean
|
||||
intelPageFlip(const __DRIdrawablePrivate * dPriv)
|
||||
{
|
||||
struct intel_context *intel;
|
||||
int ret;
|
||||
struct intel_framebuffer *intel_fb = dPriv->driverPrivate;
|
||||
|
||||
if (INTEL_DEBUG & DEBUG_IOCTL)
|
||||
fprintf(stderr, "%s\n", __FUNCTION__);
|
||||
|
||||
assert(dPriv);
|
||||
assert(dPriv->driContextPriv);
|
||||
assert(dPriv->driContextPriv->driverPrivate);
|
||||
|
||||
intel = (struct intel_context *) dPriv->driContextPriv->driverPrivate;
|
||||
|
||||
if (intel->intelScreen->drmMinor < 9)
|
||||
return GL_FALSE;
|
||||
|
||||
intelFlush(&intel->ctx);
|
||||
|
||||
ret = 0;
|
||||
|
||||
LOCK_HARDWARE(intel);
|
||||
|
||||
if (dPriv->numClipRects && intel_fb->pf_active) {
|
||||
drm_i915_flip_t flip;
|
||||
|
||||
flip.pipes = intel_fb->pf_planes;
|
||||
|
||||
ret = drmCommandWrite(intel->driFd, DRM_I915_FLIP, &flip, sizeof(flip));
|
||||
}
|
||||
|
||||
UNLOCK_HARDWARE(intel);
|
||||
|
||||
if (ret || !intel_fb->pf_active)
|
||||
return GL_FALSE;
|
||||
|
||||
if (!dPriv->numClipRects) {
|
||||
usleep(10000); /* throttle invisible client 10ms */
|
||||
}
|
||||
|
||||
intel_fb->pf_current_page = (intel->sarea->pf_current_page >>
|
||||
(intel_fb->pf_planes & 0x2)) & 0x3;
|
||||
|
||||
if (dPriv->numClipRects != 0) {
|
||||
intel_get_renderbuffer(&intel_fb->Base, BUFFER_FRONT_LEFT)->pf_pending =
|
||||
intel_get_renderbuffer(&intel_fb->Base, BUFFER_BACK_LEFT)->pf_pending =
|
||||
++intel_fb->pf_seq;
|
||||
}
|
||||
|
||||
intel_flip_renderbuffers(intel_fb);
|
||||
intel_draw_buffer(&intel->ctx, &intel_fb->Base);
|
||||
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
static GLboolean
|
||||
intelScheduleSwap(__DRIdrawablePrivate * dPriv, GLboolean *missed_target)
|
||||
{
|
||||
struct intel_framebuffer *intel_fb = dPriv->driverPrivate;
|
||||
unsigned int interval;
|
||||
struct intel_context *intel =
|
||||
intelScreenContext(dPriv->driScreenPriv->private);
|
||||
const intelScreenPrivate *intelScreen = intel->intelScreen;
|
||||
unsigned int target;
|
||||
drm_i915_vblank_swap_t swap;
|
||||
GLboolean ret;
|
||||
|
||||
if (!dPriv->vblFlags ||
|
||||
(dPriv->vblFlags & VBLANK_FLAG_NO_IRQ) ||
|
||||
intelScreen->drmMinor < (intel_fb->pf_active ? 9 : 6))
|
||||
return GL_FALSE;
|
||||
|
||||
interval = driGetVBlankInterval(dPriv);
|
||||
|
||||
swap.seqtype = DRM_VBLANK_ABSOLUTE;
|
||||
|
||||
if (dPriv->vblFlags & VBLANK_FLAG_SYNC) {
|
||||
swap.seqtype |= DRM_VBLANK_NEXTONMISS;
|
||||
} else if (interval == 0)
|
||||
return GL_FALSE;
|
||||
|
||||
swap.drawable = dPriv->hHWDrawable;
|
||||
target = swap.sequence = dPriv->vblSeq + interval;
|
||||
|
||||
if ( dPriv->vblFlags & VBLANK_FLAG_SECONDARY ) {
|
||||
swap.seqtype |= DRM_VBLANK_SECONDARY;
|
||||
}
|
||||
|
||||
LOCK_HARDWARE(intel);
|
||||
|
||||
intel_batchbuffer_flush(intel->batch);
|
||||
|
||||
if ( intel_fb->pf_active ) {
|
||||
swap.seqtype |= DRM_VBLANK_FLIP;
|
||||
|
||||
intel_fb->pf_current_page = (((intel->sarea->pf_current_page >>
|
||||
(intel_fb->pf_planes & 0x2)) & 0x3) + 1) %
|
||||
intel_fb->pf_num_pages;
|
||||
}
|
||||
|
||||
if (!drmCommandWriteRead(intel->driFd, DRM_I915_VBLANK_SWAP, &swap,
|
||||
sizeof(swap))) {
|
||||
dPriv->vblSeq = swap.sequence;
|
||||
swap.sequence -= target;
|
||||
*missed_target = swap.sequence > 0 && swap.sequence <= (1 << 23);
|
||||
|
||||
intel_get_renderbuffer(&intel_fb->Base, BUFFER_BACK_LEFT)->vbl_pending =
|
||||
intel_get_renderbuffer(&intel_fb->Base,
|
||||
BUFFER_FRONT_LEFT)->vbl_pending =
|
||||
dPriv->vblSeq;
|
||||
|
||||
if (swap.seqtype & DRM_VBLANK_FLIP) {
|
||||
intel_flip_renderbuffers(intel_fb);
|
||||
intel_draw_buffer(&intel->ctx, intel->ctx.DrawBuffer);
|
||||
}
|
||||
|
||||
ret = GL_TRUE;
|
||||
} else {
|
||||
if (swap.seqtype & DRM_VBLANK_FLIP) {
|
||||
intel_fb->pf_current_page = ((intel->sarea->pf_current_page >>
|
||||
(intel_fb->pf_planes & 0x2)) & 0x3) %
|
||||
intel_fb->pf_num_pages;
|
||||
}
|
||||
|
||||
ret = GL_FALSE;
|
||||
}
|
||||
|
||||
UNLOCK_HARDWARE(intel);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
intelSwapBuffers(__DRIdrawablePrivate * dPriv)
|
||||
{
|
||||
@@ -736,22 +477,22 @@ intelSwapBuffers(__DRIdrawablePrivate * dPriv)
|
||||
|
||||
_mesa_notifySwapBuffers(ctx); /* flush pending rendering comands */
|
||||
|
||||
if (!intelScheduleSwap(dPriv, &missed_target)) {
|
||||
driWaitForVBlank(dPriv, &missed_target);
|
||||
/*
|
||||
* The old swapping ioctl was incredibly racy, just wait for vblank
|
||||
* and do the swap ourselves.
|
||||
*/
|
||||
driWaitForVBlank(dPriv, &missed_target);
|
||||
|
||||
/*
|
||||
* Update each buffer's vbl_pending so we don't get too out of
|
||||
* sync
|
||||
*/
|
||||
intel_get_renderbuffer(&intel_fb->Base,
|
||||
BUFFER_BACK_LEFT)->vbl_pending =
|
||||
intel_get_renderbuffer(&intel_fb->Base,
|
||||
BUFFER_FRONT_LEFT)->vbl_pending =
|
||||
dPriv->vblSeq;
|
||||
if (!intelPageFlip(dPriv)) {
|
||||
intelCopyBuffer(dPriv, NULL);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Update each buffer's vbl_pending so we don't get too out of
|
||||
* sync
|
||||
*/
|
||||
intel_get_renderbuffer(&intel_fb->Base,
|
||||
BUFFER_BACK_LEFT)->vbl_pending = dPriv->vblSeq;
|
||||
intel_get_renderbuffer(&intel_fb->Base,
|
||||
BUFFER_FRONT_LEFT)->vbl_pending = dPriv->vblSeq;
|
||||
|
||||
intelCopyBuffer(dPriv, NULL);
|
||||
|
||||
intel_fb->swap_count++;
|
||||
(*psp->systemTime->getUST) (&ust);
|
||||
|
@@ -45,8 +45,6 @@ extern struct intel_region *intel_readbuf_region(struct intel_context *intel);
|
||||
|
||||
extern struct intel_region *intel_drawbuf_region(struct intel_context *intel);
|
||||
|
||||
extern void intel_wait_flips(struct intel_context *intel);
|
||||
|
||||
extern void intelSwapBuffers(__DRIdrawablePrivate * dPriv);
|
||||
|
||||
extern void intelWindowMoved(struct intel_context *intel);
|
||||
|
@@ -95,7 +95,7 @@ int INTEL_DEBUG = (0);
|
||||
|
||||
#include "extension_helper.h"
|
||||
|
||||
#define DRIVER_DATE "20080716"
|
||||
#define DRIVER_DATE "20090114"
|
||||
#define DRIVER_DATE_GEM "GEM " DRIVER_DATE
|
||||
|
||||
static const GLubyte *
|
||||
@@ -886,7 +886,7 @@ intelContendedLock(struct intel_context *intel, GLuint flags)
|
||||
{
|
||||
__DRIdrawablePrivate *dPriv = intel->driDrawable;
|
||||
__DRIscreenPrivate *sPriv = intel->driScreen;
|
||||
volatile struct drm_i915_sarea *sarea = intel->sarea;
|
||||
volatile drm_i915_sarea_t *sarea = intel->sarea;
|
||||
int me = intel->hHWContext;
|
||||
|
||||
drmGetLock(intel->driFd, intel->hHWContext, flags);
|
||||
|
@@ -37,6 +37,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "intel_decode.h"
|
||||
@@ -324,6 +325,474 @@ decode_3d_1c(uint32_t *data, int count, uint32_t hw_offset, int *failures)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/** Sets the string dstname to describe the destination of the PS instruction */
|
||||
static void
|
||||
i915_get_instruction_dst(uint32_t *data, int i, char *dstname, int do_mask)
|
||||
{
|
||||
uint32_t a0 = data[i];
|
||||
int dst_nr = (a0 >> 14) & 0xf;
|
||||
char dstmask[8];
|
||||
char *sat;
|
||||
|
||||
if (do_mask) {
|
||||
if (((a0 >> 10) & 0xf) == 0xf) {
|
||||
dstmask[0] = 0;
|
||||
} else {
|
||||
int dstmask_index = 0;
|
||||
|
||||
dstmask[dstmask_index++] = '.';
|
||||
if (a0 & (1 << 10))
|
||||
dstmask[dstmask_index++] = 'x';
|
||||
if (a0 & (1 << 11))
|
||||
dstmask[dstmask_index++] = 'y';
|
||||
if (a0 & (1 << 12))
|
||||
dstmask[dstmask_index++] = 'z';
|
||||
if (a0 & (1 << 13))
|
||||
dstmask[dstmask_index++] = 'w';
|
||||
dstmask[dstmask_index++] = 0;
|
||||
}
|
||||
|
||||
if (a0 & (1 << 22))
|
||||
sat = ".sat";
|
||||
else
|
||||
sat = "";
|
||||
} else {
|
||||
dstmask[0] = 0;
|
||||
sat = "";
|
||||
}
|
||||
|
||||
switch ((a0 >> 19) & 0x7) {
|
||||
case 0:
|
||||
if (dst_nr > 15)
|
||||
fprintf(out, "bad destination reg R%d\n", dst_nr);
|
||||
sprintf(dstname, "R%d%s%s", dst_nr, dstmask, sat);
|
||||
break;
|
||||
case 4:
|
||||
if (dst_nr > 0)
|
||||
fprintf(out, "bad destination reg oC%d\n", dst_nr);
|
||||
sprintf(dstname, "oC%s%s", dstmask, sat);
|
||||
break;
|
||||
case 5:
|
||||
if (dst_nr > 0)
|
||||
fprintf(out, "bad destination reg oD%d\n", dst_nr);
|
||||
sprintf(dstname, "oD%s%s", dstmask, sat);
|
||||
break;
|
||||
case 6:
|
||||
if (dst_nr > 2)
|
||||
fprintf(out, "bad destination reg U%d\n", dst_nr);
|
||||
sprintf(dstname, "U%d%s%s", dst_nr, dstmask, sat);
|
||||
break;
|
||||
default:
|
||||
sprintf(dstname, "RESERVED");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static char *
|
||||
i915_get_channel_swizzle(uint32_t select)
|
||||
{
|
||||
switch (select & 0x7) {
|
||||
case 0:
|
||||
return (select & 8) ? "-x" : "x";
|
||||
case 1:
|
||||
return (select & 8) ? "-y" : "y";
|
||||
case 2:
|
||||
return (select & 8) ? "-z" : "z";
|
||||
case 3:
|
||||
return (select & 8) ? "-w" : "w";
|
||||
case 4:
|
||||
return (select & 8) ? "-0" : "0";
|
||||
case 5:
|
||||
return (select & 8) ? "-1" : "1";
|
||||
default:
|
||||
return (select & 8) ? "-bad" : "bad";
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
i915_get_instruction_src_name(uint32_t src_type, uint32_t src_nr, char *name)
|
||||
{
|
||||
switch (src_type) {
|
||||
case 0:
|
||||
sprintf(name, "R%d", src_nr);
|
||||
if (src_nr > 15)
|
||||
fprintf(out, "bad src reg %s\n", name);
|
||||
break;
|
||||
case 1:
|
||||
if (src_nr < 8)
|
||||
sprintf(name, "T%d", src_nr);
|
||||
else if (src_nr == 8)
|
||||
sprintf(name, "DIFFUSE");
|
||||
else if (src_nr == 9)
|
||||
sprintf(name, "SPECULAR");
|
||||
else if (src_nr == 10)
|
||||
sprintf(name, "FOG");
|
||||
else {
|
||||
fprintf(out, "bad src reg T%d\n", src_nr);
|
||||
sprintf(name, "RESERVED");
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
sprintf(name, "C%d", src_nr);
|
||||
if (src_nr > 31)
|
||||
fprintf(out, "bad src reg %s\n", name);
|
||||
break;
|
||||
case 4:
|
||||
sprintf(name, "oC");
|
||||
if (src_nr > 0)
|
||||
fprintf(out, "bad src reg oC%d\n", src_nr);
|
||||
break;
|
||||
case 5:
|
||||
sprintf(name, "oD");
|
||||
if (src_nr > 0)
|
||||
fprintf(out, "bad src reg oD%d\n", src_nr);
|
||||
break;
|
||||
case 6:
|
||||
sprintf(name, "U%d", src_nr);
|
||||
if (src_nr > 2)
|
||||
fprintf(out, "bad src reg %s\n", name);
|
||||
break;
|
||||
default:
|
||||
fprintf(out, "bad src reg type %d\n", src_type);
|
||||
sprintf(name, "RESERVED");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
i915_get_instruction_src0(uint32_t *data, int i, char *srcname)
|
||||
{
|
||||
uint32_t a0 = data[i];
|
||||
uint32_t a1 = data[i + 1];
|
||||
int src_nr = (a0 >> 2) & 0x1f;
|
||||
char *swizzle_x = i915_get_channel_swizzle((a1 >> 28) & 0xf);
|
||||
char *swizzle_y = i915_get_channel_swizzle((a1 >> 24) & 0xf);
|
||||
char *swizzle_z = i915_get_channel_swizzle((a1 >> 20) & 0xf);
|
||||
char *swizzle_w = i915_get_channel_swizzle((a1 >> 16) & 0xf);
|
||||
char swizzle[100];
|
||||
|
||||
i915_get_instruction_src_name((a0 >> 7) & 0x7, src_nr, srcname);
|
||||
sprintf(swizzle, ".%s%s%s%s", swizzle_x, swizzle_y, swizzle_z, swizzle_w);
|
||||
if (strcmp(swizzle, ".xyzw") != 0)
|
||||
strcat(srcname, swizzle);
|
||||
}
|
||||
|
||||
static void
|
||||
i915_get_instruction_src1(uint32_t *data, int i, char *srcname)
|
||||
{
|
||||
uint32_t a1 = data[i + 1];
|
||||
uint32_t a2 = data[i + 2];
|
||||
int src_nr = (a1 >> 8) & 0x1f;
|
||||
char *swizzle_x = i915_get_channel_swizzle((a1 >> 4) & 0xf);
|
||||
char *swizzle_y = i915_get_channel_swizzle((a1 >> 0) & 0xf);
|
||||
char *swizzle_z = i915_get_channel_swizzle((a2 >> 28) & 0xf);
|
||||
char *swizzle_w = i915_get_channel_swizzle((a2 >> 24) & 0xf);
|
||||
char swizzle[100];
|
||||
|
||||
i915_get_instruction_src_name((a1 >> 13) & 0x7, src_nr, srcname);
|
||||
sprintf(swizzle, ".%s%s%s%s", swizzle_x, swizzle_y, swizzle_z, swizzle_w);
|
||||
if (strcmp(swizzle, ".xyzw") != 0)
|
||||
strcat(srcname, swizzle);
|
||||
}
|
||||
|
||||
static void
|
||||
i915_get_instruction_src2(uint32_t *data, int i, char *srcname)
|
||||
{
|
||||
uint32_t a2 = data[i + 2];
|
||||
int src_nr = (a2 >> 16) & 0x1f;
|
||||
char *swizzle_x = i915_get_channel_swizzle((a2 >> 12) & 0xf);
|
||||
char *swizzle_y = i915_get_channel_swizzle((a2 >> 8) & 0xf);
|
||||
char *swizzle_z = i915_get_channel_swizzle((a2 >> 4) & 0xf);
|
||||
char *swizzle_w = i915_get_channel_swizzle((a2 >> 0) & 0xf);
|
||||
char swizzle[100];
|
||||
|
||||
i915_get_instruction_src_name((a2 >> 21) & 0x7, src_nr, srcname);
|
||||
sprintf(swizzle, ".%s%s%s%s", swizzle_x, swizzle_y, swizzle_z, swizzle_w);
|
||||
if (strcmp(swizzle, ".xyzw") != 0)
|
||||
strcat(srcname, swizzle);
|
||||
}
|
||||
|
||||
static void
|
||||
i915_get_instruction_addr(uint32_t src_type, uint32_t src_nr, char *name)
|
||||
{
|
||||
switch (src_type) {
|
||||
case 0:
|
||||
sprintf(name, "R%d", src_nr);
|
||||
if (src_nr > 15)
|
||||
fprintf(out, "bad src reg %s\n", name);
|
||||
break;
|
||||
case 1:
|
||||
if (src_nr < 8)
|
||||
sprintf(name, "T%d", src_nr);
|
||||
else if (src_nr == 8)
|
||||
sprintf(name, "DIFFUSE");
|
||||
else if (src_nr == 9)
|
||||
sprintf(name, "SPECULAR");
|
||||
else if (src_nr == 10)
|
||||
sprintf(name, "FOG");
|
||||
else {
|
||||
fprintf(out, "bad src reg T%d\n", src_nr);
|
||||
sprintf(name, "RESERVED");
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sprintf(name, "oC");
|
||||
if (src_nr > 0)
|
||||
fprintf(out, "bad src reg oC%d\n", src_nr);
|
||||
break;
|
||||
case 5:
|
||||
sprintf(name, "oD");
|
||||
if (src_nr > 0)
|
||||
fprintf(out, "bad src reg oD%d\n", src_nr);
|
||||
break;
|
||||
default:
|
||||
fprintf(out, "bad src reg type %d\n", src_type);
|
||||
sprintf(name, "RESERVED");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
i915_decode_alu1(uint32_t *data, uint32_t hw_offset,
|
||||
int i, char *instr_prefix, char *op_name)
|
||||
{
|
||||
char dst[100], src0[100];
|
||||
|
||||
i915_get_instruction_dst(data, i, dst, 1);
|
||||
i915_get_instruction_src0(data, i, src0);
|
||||
|
||||
instr_out(data, hw_offset, i++, "%s: %s %s, %s\n", instr_prefix,
|
||||
op_name, dst, src0);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
}
|
||||
|
||||
static void
|
||||
i915_decode_alu2(uint32_t *data, uint32_t hw_offset,
|
||||
int i, char *instr_prefix, char *op_name)
|
||||
{
|
||||
char dst[100], src0[100], src1[100];
|
||||
|
||||
i915_get_instruction_dst(data, i, dst, 1);
|
||||
i915_get_instruction_src0(data, i, src0);
|
||||
i915_get_instruction_src1(data, i, src1);
|
||||
|
||||
instr_out(data, hw_offset, i++, "%s: %s %s, %s, %s\n", instr_prefix,
|
||||
op_name, dst, src0, src1);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
}
|
||||
|
||||
static void
|
||||
i915_decode_alu3(uint32_t *data, uint32_t hw_offset,
|
||||
int i, char *instr_prefix, char *op_name)
|
||||
{
|
||||
char dst[100], src0[100], src1[100], src2[100];
|
||||
|
||||
i915_get_instruction_dst(data, i, dst, 1);
|
||||
i915_get_instruction_src0(data, i, src0);
|
||||
i915_get_instruction_src1(data, i, src1);
|
||||
i915_get_instruction_src2(data, i, src2);
|
||||
|
||||
instr_out(data, hw_offset, i++, "%s: %s %s, %s, %s, %s\n", instr_prefix,
|
||||
op_name, dst, src0, src1, src2);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
}
|
||||
|
||||
static void
|
||||
i915_decode_tex(uint32_t *data, uint32_t hw_offset, int i, char *instr_prefix,
|
||||
char *tex_name)
|
||||
{
|
||||
uint32_t t0 = data[i];
|
||||
uint32_t t1 = data[i + 1];
|
||||
char dst_name[100];
|
||||
char addr_name[100];
|
||||
int sampler_nr;
|
||||
|
||||
i915_get_instruction_dst(data, i, dst_name, 0);
|
||||
i915_get_instruction_addr((t1 >> 24) & 0x7,
|
||||
(t1 >> 17) & 0xf,
|
||||
addr_name);
|
||||
sampler_nr = t0 & 0xf;
|
||||
|
||||
instr_out(data, hw_offset, i++, "%s: %s %s, S%d, %s\n", instr_prefix,
|
||||
tex_name, dst_name, sampler_nr, addr_name);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
}
|
||||
|
||||
static void
|
||||
i915_decode_dcl(uint32_t *data, uint32_t hw_offset, int i, char *instr_prefix)
|
||||
{
|
||||
uint32_t d0 = data[i];
|
||||
char *sampletype;
|
||||
int dcl_nr = (d0 >> 14) & 0xf;
|
||||
char *dcl_x = d0 & (1 << 10) ? "x" : "";
|
||||
char *dcl_y = d0 & (1 << 11) ? "y" : "";
|
||||
char *dcl_z = d0 & (1 << 12) ? "z" : "";
|
||||
char *dcl_w = d0 & (1 << 13) ? "w" : "";
|
||||
char dcl_mask[10];
|
||||
|
||||
switch ((d0 >> 19) & 0x3) {
|
||||
case 1:
|
||||
sprintf(dcl_mask, ".%s%s%s%s", dcl_x, dcl_y, dcl_z, dcl_w);
|
||||
if (strcmp(dcl_mask, ".") == 0)
|
||||
fprintf(out, "bad (empty) dcl mask\n");
|
||||
|
||||
if (dcl_nr > 10)
|
||||
fprintf(out, "bad T%d dcl register number\n", dcl_nr);
|
||||
if (dcl_nr < 8) {
|
||||
if (strcmp(dcl_mask, ".x") != 0 &&
|
||||
strcmp(dcl_mask, ".xy") != 0 &&
|
||||
strcmp(dcl_mask, ".xz") != 0 &&
|
||||
strcmp(dcl_mask, ".w") != 0 &&
|
||||
strcmp(dcl_mask, ".xyzw") != 0) {
|
||||
fprintf(out, "bad T%d.%s dcl mask\n", dcl_nr, dcl_mask);
|
||||
}
|
||||
instr_out(data, hw_offset, i++, "%s: DCL T%d%s\n", instr_prefix,
|
||||
dcl_nr, dcl_mask);
|
||||
} else {
|
||||
if (strcmp(dcl_mask, ".xz") == 0)
|
||||
fprintf(out, "errataed bad dcl mask %s\n", dcl_mask);
|
||||
else if (strcmp(dcl_mask, ".xw") == 0)
|
||||
fprintf(out, "errataed bad dcl mask %s\n", dcl_mask);
|
||||
else if (strcmp(dcl_mask, ".xzw") == 0)
|
||||
fprintf(out, "errataed bad dcl mask %s\n", dcl_mask);
|
||||
|
||||
if (dcl_nr == 8) {
|
||||
instr_out(data, hw_offset, i++, "%s: DCL DIFFUSE%s\n", instr_prefix,
|
||||
dcl_mask);
|
||||
} else if (dcl_nr == 9) {
|
||||
instr_out(data, hw_offset, i++, "%s: DCL SPECULAR%s\n", instr_prefix,
|
||||
dcl_mask);
|
||||
} else if (dcl_nr == 10) {
|
||||
instr_out(data, hw_offset, i++, "%s: DCL FOG%s\n", instr_prefix,
|
||||
dcl_mask);
|
||||
}
|
||||
}
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
break;
|
||||
case 3:
|
||||
switch ((d0 >> 22) & 0x3) {
|
||||
case 0:
|
||||
sampletype = "2D";
|
||||
break;
|
||||
case 1:
|
||||
sampletype = "CUBE";
|
||||
break;
|
||||
case 2:
|
||||
sampletype = "3D";
|
||||
break;
|
||||
default:
|
||||
sampletype = "RESERVED";
|
||||
break;
|
||||
}
|
||||
if (dcl_nr > 15)
|
||||
fprintf(out, "bad S%d dcl register number\n", dcl_nr);
|
||||
instr_out(data, hw_offset, i++, "%s: DCL S%d %s\n", instr_prefix,
|
||||
dcl_nr, sampletype);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
break;
|
||||
default:
|
||||
instr_out(data, hw_offset, i++, "%s: DCL RESERVED%d\n", instr_prefix, dcl_nr);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
i915_decode_instruction(uint32_t *data, uint32_t hw_offset,
|
||||
int i, char *instr_prefix)
|
||||
{
|
||||
switch ((data[i] >> 24) & 0x1f) {
|
||||
case 0x0:
|
||||
instr_out(data, hw_offset, i++, "%s: NOP\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
break;
|
||||
case 0x01:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "ADD");
|
||||
break;
|
||||
case 0x02:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "MOV");
|
||||
break;
|
||||
case 0x03:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "MUL");
|
||||
break;
|
||||
case 0x04:
|
||||
i915_decode_alu3(data, hw_offset, i, instr_prefix, "MAD");
|
||||
break;
|
||||
case 0x05:
|
||||
i915_decode_alu3(data, hw_offset, i, instr_prefix, "DP2ADD");
|
||||
break;
|
||||
case 0x06:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "DP3");
|
||||
break;
|
||||
case 0x07:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "DP4");
|
||||
break;
|
||||
case 0x08:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "FRC");
|
||||
break;
|
||||
case 0x09:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "RCP");
|
||||
break;
|
||||
case 0x0a:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "RSQ");
|
||||
break;
|
||||
case 0x0b:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "EXP");
|
||||
break;
|
||||
case 0x0c:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "LOG");
|
||||
break;
|
||||
case 0x0d:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "CMP");
|
||||
break;
|
||||
case 0x0e:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "MIN");
|
||||
break;
|
||||
case 0x0f:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "MAX");
|
||||
break;
|
||||
case 0x10:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "FLR");
|
||||
break;
|
||||
case 0x11:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "MOD");
|
||||
break;
|
||||
case 0x12:
|
||||
i915_decode_alu1(data, hw_offset, i, instr_prefix, "TRC");
|
||||
break;
|
||||
case 0x13:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "SGE");
|
||||
break;
|
||||
case 0x14:
|
||||
i915_decode_alu2(data, hw_offset, i, instr_prefix, "SLT");
|
||||
break;
|
||||
case 0x15:
|
||||
i915_decode_tex(data, hw_offset, i, instr_prefix, "TEXLD");
|
||||
break;
|
||||
case 0x16:
|
||||
i915_decode_tex(data, hw_offset, i, instr_prefix, "TEXLDP");
|
||||
break;
|
||||
case 0x17:
|
||||
i915_decode_tex(data, hw_offset, i, instr_prefix, "TEXLDB");
|
||||
break;
|
||||
case 0x19:
|
||||
i915_decode_dcl(data, hw_offset, i, instr_prefix);
|
||||
break;
|
||||
default:
|
||||
instr_out(data, hw_offset, i++, "%s: unknown\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
instr_out(data, hw_offset, i++, "%s\n", instr_prefix);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
decode_3d_1d(uint32_t *data, int count, uint32_t hw_offset, int *failures, int i830)
|
||||
{
|
||||
@@ -441,8 +910,9 @@ decode_3d_1d(uint32_t *data, int count, uint32_t hw_offset, int *failures, int i
|
||||
case 0x00:
|
||||
instr_out(data, hw_offset, 0, "3DSTATE_MAP_STATE\n");
|
||||
len = (data[0] & 0x0000003f) + 2;
|
||||
instr_out(data, hw_offset, 1, "mask\n");
|
||||
|
||||
i = 1;
|
||||
i = 2;
|
||||
for (map = 0; map <= 15; map++) {
|
||||
if (data[1] & (1 << map)) {
|
||||
if (i + 3 >= count)
|
||||
@@ -495,19 +965,22 @@ decode_3d_1d(uint32_t *data, int count, uint32_t hw_offset, int *failures, int i
|
||||
}
|
||||
i = 1;
|
||||
for (instr = 0; instr < (len - 1) / 3; instr++) {
|
||||
char instr_prefix[10];
|
||||
|
||||
if (i + 3 >= count)
|
||||
BUFFER_FAIL(count, len, "3DSTATE_MAP_STATE");
|
||||
instr_out(data, hw_offset, i++, "PS%03x\n", instr);
|
||||
instr_out(data, hw_offset, i++, "PS%03x\n", instr);
|
||||
instr_out(data, hw_offset, i++, "PS%03x\n", instr);
|
||||
BUFFER_FAIL(count, len, "3DSTATE_PIXEL_SHADER_PROGRAM");
|
||||
sprintf(instr_prefix, "PS%03d", instr);
|
||||
i915_decode_instruction(data, hw_offset, i, instr_prefix);
|
||||
i += 3;
|
||||
}
|
||||
return len;
|
||||
case 0x01:
|
||||
if (i830)
|
||||
break;
|
||||
instr_out(data, hw_offset, 0, "3DSTATE_SAMPLER_STATE\n");
|
||||
instr_out(data, hw_offset, 1, "mask\n");
|
||||
len = (data[0] & 0x0000003f) + 2;
|
||||
i = 1;
|
||||
i = 2;
|
||||
for (sampler = 0; sampler <= 15; sampler++) {
|
||||
if (data[1] & (1 << sampler)) {
|
||||
if (i + 3 >= count)
|
||||
|
@@ -110,7 +110,10 @@ intel_unpair_depth_stencil(GLcontext *ctx, struct intel_renderbuffer *irb)
|
||||
ASSERT(stencilIrb->PairedDepth == rb->Name);
|
||||
intel_renderbuffer_map(intel, rb);
|
||||
intel_renderbuffer_map(intel, stencilRb);
|
||||
#if 0
|
||||
/* disable for now */
|
||||
_mesa_extract_stencil(ctx, rb, stencilRb);
|
||||
#endif
|
||||
intel_renderbuffer_unmap(intel, stencilRb);
|
||||
intel_renderbuffer_unmap(intel, rb);
|
||||
stencilIrb->PairedDepth = 0;
|
||||
@@ -132,7 +135,10 @@ intel_unpair_depth_stencil(GLcontext *ctx, struct intel_renderbuffer *irb)
|
||||
ASSERT(depthIrb->PairedStencil == rb->Name);
|
||||
intel_renderbuffer_map(intel, rb);
|
||||
intel_renderbuffer_map(intel, depthRb);
|
||||
#if 0
|
||||
/* disable for now */
|
||||
_mesa_extract_stencil(ctx, depthRb, rb);
|
||||
#endif
|
||||
intel_renderbuffer_unmap(intel, depthRb);
|
||||
intel_renderbuffer_unmap(intel, rb);
|
||||
depthIrb->PairedStencil = 0;
|
||||
@@ -177,8 +183,11 @@ intel_validate_paired_depth_stencil(GLcontext * ctx,
|
||||
}
|
||||
else {
|
||||
/* Separate depth/stencil buffers, need to interleave now */
|
||||
ASSERT(depthRb->Base._BaseFormat == GL_DEPTH_COMPONENT);
|
||||
ASSERT(stencilRb->Base._BaseFormat == GL_STENCIL_INDEX);
|
||||
ASSERT(depthRb->Base._BaseFormat == GL_DEPTH_COMPONENT ||
|
||||
depthRb->Base._BaseFormat == GL_DEPTH_STENCIL);
|
||||
ASSERT(stencilRb->Base._BaseFormat == GL_STENCIL_INDEX ||
|
||||
stencilRb->Base._BaseFormat == GL_DEPTH_STENCIL);
|
||||
|
||||
/* may need to interleave depth/stencil now */
|
||||
if (depthRb->PairedStencil == stencilRb->Base.Name) {
|
||||
/* OK, the depth and stencil buffers are already interleaved */
|
||||
|
@@ -77,43 +77,6 @@ intel_get_renderbuffer(struct gl_framebuffer *fb, int attIndex)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
intel_flip_renderbuffers(struct intel_framebuffer *intel_fb)
|
||||
{
|
||||
int current_page = intel_fb->pf_current_page;
|
||||
int next_page = (current_page + 1) % intel_fb->pf_num_pages;
|
||||
struct gl_renderbuffer *tmp_rb;
|
||||
|
||||
/* Exchange renderbuffers if necessary but make sure their reference counts
|
||||
* are preserved.
|
||||
*/
|
||||
if (intel_fb->color_rb[current_page] &&
|
||||
intel_fb->Base.Attachment[BUFFER_FRONT_LEFT].Renderbuffer !=
|
||||
&intel_fb->color_rb[current_page]->Base) {
|
||||
tmp_rb = NULL;
|
||||
_mesa_reference_renderbuffer(&tmp_rb,
|
||||
intel_fb->Base.Attachment[BUFFER_FRONT_LEFT].Renderbuffer);
|
||||
tmp_rb = &intel_fb->color_rb[current_page]->Base;
|
||||
_mesa_reference_renderbuffer(
|
||||
&intel_fb->Base.Attachment[BUFFER_FRONT_LEFT].Renderbuffer, tmp_rb);
|
||||
_mesa_reference_renderbuffer(&tmp_rb, NULL);
|
||||
}
|
||||
|
||||
if (intel_fb->color_rb[next_page] &&
|
||||
intel_fb->Base.Attachment[BUFFER_BACK_LEFT].Renderbuffer !=
|
||||
&intel_fb->color_rb[next_page]->Base) {
|
||||
tmp_rb = NULL;
|
||||
_mesa_reference_renderbuffer(&tmp_rb,
|
||||
intel_fb->Base.Attachment[BUFFER_BACK_LEFT].Renderbuffer);
|
||||
tmp_rb = &intel_fb->color_rb[next_page]->Base;
|
||||
_mesa_reference_renderbuffer(
|
||||
&intel_fb->Base.Attachment[BUFFER_BACK_LEFT].Renderbuffer, tmp_rb);
|
||||
_mesa_reference_renderbuffer(&tmp_rb, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct intel_region *
|
||||
intel_get_rb_region(struct gl_framebuffer *fb, GLuint attIndex)
|
||||
{
|
||||
@@ -248,11 +211,18 @@ intel_alloc_renderbuffer_storage(GLcontext * ctx, struct gl_renderbuffer *rb,
|
||||
cpp = 4;
|
||||
break;
|
||||
case GL_DEPTH_COMPONENT16:
|
||||
#if 0
|
||||
rb->_ActualFormat = GL_DEPTH_COMPONENT16;
|
||||
rb->DataType = GL_UNSIGNED_SHORT;
|
||||
rb->DepthBits = 16;
|
||||
cpp = 2;
|
||||
break;
|
||||
#else
|
||||
/* fall-through.
|
||||
* 16bpp depth renderbuffer can't be paired with a stencil buffer so
|
||||
* always used combined depth/stencil format.
|
||||
*/
|
||||
#endif
|
||||
case GL_DEPTH_COMPONENT:
|
||||
case GL_DEPTH_COMPONENT24:
|
||||
case GL_DEPTH_COMPONENT32:
|
||||
@@ -344,7 +314,7 @@ intel_resize_buffers(GLcontext *ctx, struct gl_framebuffer *fb,
|
||||
}
|
||||
|
||||
/* Make sure all window system renderbuffers are up to date */
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (i = 0; i < 2; i++) {
|
||||
struct gl_renderbuffer *rb = &intel_fb->color_rb[i]->Base;
|
||||
|
||||
/* only resize if size is changing */
|
||||
@@ -529,20 +499,25 @@ intel_update_wrapper(GLcontext *ctx, struct intel_renderbuffer *irb,
|
||||
if (texImage->TexFormat == &_mesa_texformat_argb8888) {
|
||||
irb->Base._ActualFormat = GL_RGBA8;
|
||||
irb->Base._BaseFormat = GL_RGBA;
|
||||
irb->Base.DataType = GL_UNSIGNED_BYTE;
|
||||
DBG("Render to RGBA8 texture OK\n");
|
||||
}
|
||||
else if (texImage->TexFormat == &_mesa_texformat_rgb565) {
|
||||
irb->Base._ActualFormat = GL_RGB5;
|
||||
irb->Base._BaseFormat = GL_RGB;
|
||||
irb->Base.DataType = GL_UNSIGNED_SHORT;
|
||||
DBG("Render to RGB5 texture OK\n");
|
||||
}
|
||||
else if (texImage->TexFormat == &_mesa_texformat_z16) {
|
||||
irb->Base._ActualFormat = GL_DEPTH_COMPONENT16;
|
||||
irb->Base._BaseFormat = GL_DEPTH_COMPONENT;
|
||||
irb->Base.DataType = GL_UNSIGNED_SHORT;
|
||||
DBG("Render to DEPTH16 texture OK\n");
|
||||
} else if (texImage->TexFormat == &_mesa_texformat_s8_z24) {
|
||||
}
|
||||
else if (texImage->TexFormat == &_mesa_texformat_s8_z24) {
|
||||
irb->Base._ActualFormat = GL_DEPTH24_STENCIL8_EXT;
|
||||
irb->Base._BaseFormat = GL_DEPTH_STENCIL_EXT;
|
||||
irb->Base.DataType = GL_UNSIGNED_INT_24_8_EXT;
|
||||
DBG("Render to DEPTH_STENCIL texture OK\n");
|
||||
}
|
||||
else {
|
||||
@@ -554,7 +529,6 @@ intel_update_wrapper(GLcontext *ctx, struct intel_renderbuffer *irb,
|
||||
irb->Base.InternalFormat = irb->Base._ActualFormat;
|
||||
irb->Base.Width = texImage->Width;
|
||||
irb->Base.Height = texImage->Height;
|
||||
irb->Base.DataType = GL_UNSIGNED_BYTE; /* FBO XXX fix */
|
||||
irb->Base.RedBits = texImage->TexFormat->RedBits;
|
||||
irb->Base.GreenBits = texImage->TexFormat->GreenBits;
|
||||
irb->Base.BlueBits = texImage->TexFormat->BlueBits;
|
||||
|
@@ -39,14 +39,7 @@ struct intel_framebuffer
|
||||
{
|
||||
struct gl_framebuffer Base;
|
||||
|
||||
struct intel_renderbuffer *color_rb[3];
|
||||
|
||||
/* Drawable page flipping state */
|
||||
GLboolean pf_active;
|
||||
GLuint pf_seq;
|
||||
GLint pf_planes;
|
||||
GLint pf_current_page;
|
||||
GLint pf_num_pages;
|
||||
struct intel_renderbuffer *color_rb[2];
|
||||
|
||||
/* VBI
|
||||
*/
|
||||
@@ -76,8 +69,6 @@ struct intel_renderbuffer
|
||||
GLuint PairedDepth; /**< only used if this is a depth renderbuffer */
|
||||
GLuint PairedStencil; /**< only used if this is a stencil renderbuffer */
|
||||
|
||||
GLuint pf_pending; /**< sequence number of pending flip */
|
||||
|
||||
GLuint vbl_pending; /**< vblank sequence number of pending flip */
|
||||
|
||||
uint8_t *span_cache;
|
||||
@@ -111,5 +102,22 @@ extern struct intel_region *intel_get_rb_region(struct gl_framebuffer *fb,
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Are we currently rendering into a texture?
|
||||
*/
|
||||
static INLINE GLboolean
|
||||
intel_rendering_to_texture(const GLcontext *ctx)
|
||||
{
|
||||
if (ctx->DrawBuffer->Name) {
|
||||
/* User-created FBO */
|
||||
const struct intel_renderbuffer *irb =
|
||||
intel_renderbuffer(ctx->DrawBuffer->_ColorDrawBuffers[0]);
|
||||
return irb && irb->RenderToTexture;
|
||||
}
|
||||
else {
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif /* INTEL_FBO_H */
|
||||
|
@@ -204,6 +204,14 @@ do_blit_bitmap( GLcontext *ctx,
|
||||
/* Update draw buffer bounds */
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
if (ctx->Depth.Test) {
|
||||
/* The blit path produces incorrect results when depth testing is on.
|
||||
* It seems the blit Z coord is always 1.0 (the far plane) so fragments
|
||||
* will likely be obscured by other, closer geometry.
|
||||
*/
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
if (!dst)
|
||||
return GL_FALSE;
|
||||
|
||||
@@ -357,6 +365,7 @@ intel_texture_bitmap(GLcontext * ctx,
|
||||
GLubyte *unpacked_bitmap;
|
||||
GLubyte *a8_bitmap;
|
||||
int x, y;
|
||||
GLfloat dst_z;
|
||||
|
||||
/* We need a fragment program for the KIL effect */
|
||||
if (!ctx->Extensions.ARB_fragment_program ||
|
||||
@@ -456,21 +465,24 @@ intel_texture_bitmap(GLcontext * ctx,
|
||||
intel_meta_set_passthrough_vertex_program(intel);
|
||||
intel_meta_set_passthrough_transform(intel);
|
||||
|
||||
/* convert rasterpos Z from [0,1] to NDC coord in [-1,1] */
|
||||
dst_z = -1.0 + 2.0 * ctx->Current.RasterPos[2];
|
||||
|
||||
vertices[0][0] = dst_x;
|
||||
vertices[0][1] = dst_y;
|
||||
vertices[0][2] = ctx->Current.RasterPos[2];
|
||||
vertices[0][2] = dst_z;
|
||||
vertices[0][3] = 1.0;
|
||||
vertices[1][0] = dst_x + width;
|
||||
vertices[1][1] = dst_y;
|
||||
vertices[1][2] = ctx->Current.RasterPos[2];
|
||||
vertices[1][2] = dst_z;
|
||||
vertices[1][3] = 1.0;
|
||||
vertices[2][0] = dst_x + width;
|
||||
vertices[2][1] = dst_y + height;
|
||||
vertices[2][2] = ctx->Current.RasterPos[2];
|
||||
vertices[2][2] = dst_z;
|
||||
vertices[2][3] = 1.0;
|
||||
vertices[3][0] = dst_x;
|
||||
vertices[3][1] = dst_y + height;
|
||||
vertices[3][2] = ctx->Current.RasterPos[2];
|
||||
vertices[3][2] = dst_z;
|
||||
vertices[3][3] = 1.0;
|
||||
|
||||
texcoords[0][0] = 0.0;
|
||||
|
@@ -119,6 +119,12 @@ do_texture_copypixels(GLcontext * ctx,
|
||||
if (!src || !dst || type != GL_COLOR)
|
||||
return GL_FALSE;
|
||||
|
||||
if (ctx->_ImageTransferState) {
|
||||
if (INTEL_DEBUG & DEBUG_PIXEL)
|
||||
fprintf(stderr, "%s: check_color failed\n", __FUNCTION__);
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
/* Can't handle overlapping regions. Don't have sufficient control
|
||||
* over rasterization to pull it off in-place. Punt on these for
|
||||
* now.
|
||||
|
@@ -71,6 +71,7 @@ intel_texture_drawpixels(GLcontext * ctx,
|
||||
GLuint texname;
|
||||
GLfloat vertices[4][4];
|
||||
GLfloat texcoords[4][2];
|
||||
GLfloat z;
|
||||
|
||||
/* We're going to mess with texturing with no regard to existing texture
|
||||
* state, so if there is some set up we have to bail.
|
||||
@@ -140,6 +141,9 @@ intel_texture_drawpixels(GLcontext * ctx,
|
||||
|
||||
intel_meta_set_passthrough_transform(intel);
|
||||
|
||||
/* convert rasterpos Z from [0,1] to NDC coord in [-1,1] */
|
||||
z = -1.0 + 2.0 * ctx->Current.RasterPos[2];
|
||||
|
||||
/* Create the vertex buffer based on the current raster pos. The x and y
|
||||
* we're handed are ctx->Current.RasterPos[0,1] rounded to integers.
|
||||
* We also apply the depth. However, the W component is already multiplied
|
||||
@@ -147,19 +151,19 @@ intel_texture_drawpixels(GLcontext * ctx,
|
||||
*/
|
||||
vertices[0][0] = x;
|
||||
vertices[0][1] = y;
|
||||
vertices[0][2] = ctx->Current.RasterPos[2];
|
||||
vertices[0][2] = z;
|
||||
vertices[0][3] = 1.0;
|
||||
vertices[1][0] = x + width * ctx->Pixel.ZoomX;
|
||||
vertices[1][1] = y;
|
||||
vertices[1][2] = ctx->Current.RasterPos[2];
|
||||
vertices[1][2] = z;
|
||||
vertices[1][3] = 1.0;
|
||||
vertices[2][0] = x + width * ctx->Pixel.ZoomX;
|
||||
vertices[2][1] = y + height * ctx->Pixel.ZoomY;
|
||||
vertices[2][2] = ctx->Current.RasterPos[2];
|
||||
vertices[2][2] = z;
|
||||
vertices[2][3] = 1.0;
|
||||
vertices[3][0] = x;
|
||||
vertices[3][1] = y + height * ctx->Pixel.ZoomY;
|
||||
vertices[3][2] = ctx->Current.RasterPos[2];
|
||||
vertices[3][2] = z;
|
||||
vertices[3][3] = 1.0;
|
||||
|
||||
texcoords[0][0] = 0.0;
|
||||
|
@@ -134,7 +134,7 @@ intelPrintDRIInfo(intelScreenPrivate * intelScreen,
|
||||
|
||||
|
||||
static void
|
||||
intelPrintSAREA(const struct drm_i915_sarea * sarea)
|
||||
intelPrintSAREA(const drm_i915_sarea_t * sarea)
|
||||
{
|
||||
fprintf(stderr, "SAREA: sarea width %d height %d\n", sarea->width,
|
||||
sarea->height);
|
||||
@@ -161,7 +161,7 @@ intelPrintSAREA(const struct drm_i915_sarea * sarea)
|
||||
*/
|
||||
void
|
||||
intelUpdateScreenFromSAREA(intelScreenPrivate * intelScreen,
|
||||
struct drm_i915_sarea * sarea)
|
||||
drm_i915_sarea_t * sarea)
|
||||
{
|
||||
intelScreen->width = sarea->width;
|
||||
intelScreen->height = sarea->height;
|
||||
@@ -244,7 +244,7 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
|
||||
{
|
||||
intelScreenPrivate *intelScreen;
|
||||
I830DRIPtr gDRIPriv = (I830DRIPtr) sPriv->pDevPriv;
|
||||
struct drm_i915_sarea *sarea;
|
||||
drm_i915_sarea_t *sarea;
|
||||
|
||||
if (sPriv->devPrivSize != sizeof(I830DRIRec)) {
|
||||
fprintf(stderr,
|
||||
@@ -264,7 +264,7 @@ static GLboolean intelInitDriver(__DRIscreenPrivate *sPriv)
|
||||
|
||||
intelScreen->driScrnPriv = sPriv;
|
||||
sPriv->private = (void *) intelScreen;
|
||||
sarea = (struct drm_i915_sarea *)
|
||||
sarea = (drm_i915_sarea_t *)
|
||||
(((GLubyte *) sPriv->pSAREA) + gDRIPriv->sarea_priv_offset);
|
||||
intelScreen->sarea = sarea;
|
||||
|
||||
|
@@ -68,7 +68,7 @@ typedef struct
|
||||
|
||||
__DRIscreenPrivate *driScrnPriv;
|
||||
|
||||
volatile struct drm_i915_sarea *sarea;
|
||||
volatile drm_i915_sarea_t *sarea;
|
||||
|
||||
int drmMinor;
|
||||
|
||||
@@ -94,7 +94,7 @@ extern void intelUnmapScreenRegions(intelScreenPrivate * intelScreen);
|
||||
|
||||
extern void
|
||||
intelUpdateScreenFromSAREA(intelScreenPrivate * intelScreen,
|
||||
struct drm_i915_sarea * sarea);
|
||||
drm_i915_sarea_t * sarea);
|
||||
|
||||
extern void intelDestroyContext(__DRIcontextPrivate * driContextPriv);
|
||||
|
||||
|
@@ -633,7 +633,7 @@ intelSpanRenderStart(GLcontext * ctx)
|
||||
intelFlush(&intel->ctx);
|
||||
LOCK_HARDWARE(intel);
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) {
|
||||
for (i = 0; i < ctx->Const.MaxTextureImageUnits; i++) {
|
||||
if (ctx->Texture.Unit[i]._ReallyEnabled) {
|
||||
struct gl_texture_object *texObj = ctx->Texture.Unit[i]._Current;
|
||||
intel_tex_map_images(intel, intel_texture_object(texObj));
|
||||
@@ -655,7 +655,7 @@ intelSpanRenderFinish(GLcontext * ctx)
|
||||
|
||||
_swrast_flush(ctx);
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) {
|
||||
for (i = 0; i < ctx->Const.MaxTextureImageUnits; i++) {
|
||||
if (ctx->Texture.Unit[i]._ReallyEnabled) {
|
||||
struct gl_texture_object *texObj = ctx->Texture.Unit[i]._Current;
|
||||
intel_tex_unmap_images(intel, intel_texture_object(texObj));
|
||||
|
@@ -134,8 +134,14 @@ intelChooseTextureFormat(GLcontext * ctx, GLint internalFormat,
|
||||
case GL_DEPTH_COMPONENT16:
|
||||
case GL_DEPTH_COMPONENT24:
|
||||
case GL_DEPTH_COMPONENT32:
|
||||
#if 0
|
||||
return &_mesa_texformat_z16;
|
||||
|
||||
#else
|
||||
/* fall-through.
|
||||
* 16bpp depth texture can't be paired with a stencil buffer so
|
||||
* always used combined depth/stencil format.
|
||||
*/
|
||||
#endif
|
||||
case GL_DEPTH_STENCIL_EXT:
|
||||
case GL_DEPTH24_STENCIL8_EXT:
|
||||
return &_mesa_texformat_s8_z24;
|
||||
@@ -158,7 +164,7 @@ intelChooseTextureFormat(GLcontext * ctx, GLint internalFormat,
|
||||
case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
|
||||
case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
|
||||
case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
|
||||
return &_mesa_texformat_srgb_dxt1;
|
||||
return &_mesa_texformat_srgb_dxt1;
|
||||
#endif
|
||||
|
||||
default:
|
||||
|
@@ -294,7 +294,13 @@ extern GLboolean mach64UnbindContext( __DRIcontextPrivate *driContextPriv );
|
||||
#define LE32_OUT( x, y ) do { *(GLuint *)(x) = (y); } while (0)
|
||||
#define LE32_OUT_FLOAT( x, y ) do { *(GLfloat *)(x) = (y); } while (0)
|
||||
#else
|
||||
#ifndef __OpenBSD__
|
||||
#include <byteswap.h>
|
||||
#else
|
||||
#include <machine/endian.h>
|
||||
#define bswap_32 bswap32
|
||||
#endif
|
||||
|
||||
#define LE32_IN( x ) bswap_32( *(GLuint *)(x) )
|
||||
#define LE32_IN_FLOAT( x ) \
|
||||
({ \
|
||||
|
@@ -1675,6 +1675,13 @@ static void r300SetupRSUnit(GLcontext * ctx)
|
||||
rs_col_count += count;
|
||||
}
|
||||
|
||||
if (InputsRead & FRAG_BIT_FOGC) {
|
||||
/* XXX FIX THIS
|
||||
* Just turn off the bit for now.
|
||||
* Need to do something similar to the color/texcoord inputs.
|
||||
*/
|
||||
InputsRead &= ~FRAG_BIT_FOGC;
|
||||
}
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxTextureUnits; i++) {
|
||||
int swiz;
|
||||
|
@@ -473,6 +473,11 @@ static void allocate_input_registers(struct pair_state *s)
|
||||
alloc_hw_reg(s, PROGRAM_INPUT, FRAG_ATTRIB_COL1, hwindex++);
|
||||
InputsRead &= ~FRAG_BIT_COL1;
|
||||
|
||||
/* Fog coordinate */
|
||||
if (InputsRead & FRAG_BIT_FOGC)
|
||||
alloc_hw_reg(s, PROGRAM_INPUT, FRAG_ATTRIB_FOGC, hwindex++);
|
||||
InputsRead &= ~FRAG_BIT_FOGC;
|
||||
|
||||
/* Anything else */
|
||||
if (InputsRead)
|
||||
error("Don't know how to handle inputs 0x%x\n", InputsRead);
|
||||
|
@@ -33,7 +33,7 @@ default: $(PROGRAM)
|
||||
|
||||
|
||||
glslcompiler: $(OBJECTS)
|
||||
$(CC) $(OBJECTS) -lm -lpthread -o $@
|
||||
$(CC) $(OBJECTS) $(GL_LIB_DEPS) -o $@
|
||||
|
||||
|
||||
glslcompiler.o: glslcompiler.c
|
||||
|
@@ -867,6 +867,7 @@ EXPORTS
|
||||
_glapi_get_proc_address
|
||||
_mesa_add_soft_renderbuffers
|
||||
_mesa_add_renderbuffer
|
||||
_mesa_begin_query
|
||||
_mesa_buffer_data
|
||||
_mesa_buffer_get_subdata
|
||||
_mesa_buffer_map
|
||||
@@ -881,6 +882,7 @@ EXPORTS
|
||||
_mesa_delete_array_object
|
||||
_mesa_delete_buffer_object
|
||||
_mesa_delete_program
|
||||
_mesa_delete_query
|
||||
_mesa_delete_texture_object
|
||||
_mesa_destroy_framebuffer
|
||||
_mesa_destroy_visual
|
||||
@@ -890,6 +892,7 @@ EXPORTS
|
||||
_mesa_enable_2_0_extensions
|
||||
_mesa_enable_2_1_extensions
|
||||
_mesa_enable_sw_extensions
|
||||
_mesa_end_query
|
||||
_mesa_error
|
||||
_mesa_finish_render_texture
|
||||
_mesa_framebuffer_renderbuffer
|
||||
@@ -941,6 +944,7 @@ EXPORTS
|
||||
_mesa_update_framebuffer_visual
|
||||
_mesa_use_program
|
||||
_mesa_Viewport
|
||||
_mesa_wait_query
|
||||
_swrast_Accum
|
||||
_swrast_Bitmap
|
||||
_swrast_BlitFramebuffer
|
||||
@@ -973,3 +977,4 @@ EXPORTS
|
||||
_tnl_InvalidateState
|
||||
_tnl_run_pipeline
|
||||
_tnl_program_string
|
||||
_tnl_RasterPos
|
@@ -601,8 +601,9 @@ WINGDIAPI BOOL GLAPIENTRY wglCopyContext(HGLRC hglrcSrc,
|
||||
WINGDIAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC hdc,
|
||||
int iLayerPlane)
|
||||
{
|
||||
(void) hdc; (void) iLayerPlane;
|
||||
SetLastError(0);
|
||||
if (iLayerPlane == 0)
|
||||
return wglCreateContext( hdc );
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
@@ -298,6 +298,10 @@ _glthread_GetTSD(_glthread_TSD *);
|
||||
extern void
|
||||
_glthread_SetTSD(_glthread_TSD *, void *);
|
||||
|
||||
#if !defined __GNUC__ || __GNUC__ < 3
|
||||
# define __builtin_expect(x, y) x
|
||||
#endif
|
||||
|
||||
#if defined(GLX_USE_TLS)
|
||||
|
||||
extern __thread struct _glapi_table * _glapi_tls_Dispatch
|
||||
|
@@ -78,6 +78,23 @@ max_buffer_index(GLcontext *ctx, GLuint count, GLenum type,
|
||||
return max;
|
||||
}
|
||||
|
||||
static GLboolean
|
||||
check_valid_to_render(GLcontext *ctx, char *function)
|
||||
{
|
||||
if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
|
||||
_mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
|
||||
"glDraw%s(incomplete framebuffer)", function);
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
/* Always need vertex positions, unless a vertex program is in use */
|
||||
if (!ctx->VertexProgram._Current &&
|
||||
!ctx->Array.ArrayObj->Vertex.Enabled &&
|
||||
!ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
|
||||
return GL_FALSE;
|
||||
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
GLboolean
|
||||
_mesa_validate_DrawElements(GLcontext *ctx,
|
||||
@@ -108,10 +125,7 @@ _mesa_validate_DrawElements(GLcontext *ctx,
|
||||
if (ctx->NewState)
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
/* Always need vertex positions, unless a vertex program is in use */
|
||||
if (!ctx->VertexProgram._Current &&
|
||||
!ctx->Array.ArrayObj->Vertex.Enabled &&
|
||||
!ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
|
||||
if (!check_valid_to_render(ctx, "Elements"))
|
||||
return GL_FALSE;
|
||||
|
||||
/* Vertex buffer object tests */
|
||||
@@ -155,7 +169,6 @@ _mesa_validate_DrawElements(GLcontext *ctx,
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
GLboolean
|
||||
_mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode,
|
||||
GLuint start, GLuint end,
|
||||
@@ -190,10 +203,7 @@ _mesa_validate_DrawRangeElements(GLcontext *ctx, GLenum mode,
|
||||
if (ctx->NewState)
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
/* Always need vertex positions, unless a vertex program is in use */
|
||||
if (!ctx->VertexProgram._Current &&
|
||||
!ctx->Array.ArrayObj->Vertex.Enabled &&
|
||||
!ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
|
||||
if (!check_valid_to_render(ctx, "RangeElements"))
|
||||
return GL_FALSE;
|
||||
|
||||
/* Vertex buffer object tests */
|
||||
@@ -261,10 +271,7 @@ _mesa_validate_DrawArrays(GLcontext *ctx,
|
||||
if (ctx->NewState)
|
||||
_mesa_update_state(ctx);
|
||||
|
||||
/* Always need vertex positions, unless a vertex program is in use */
|
||||
if (!ctx->VertexProgram._Current &&
|
||||
!ctx->Array.ArrayObj->Vertex.Enabled &&
|
||||
!ctx->Array.ArrayObj->VertexAttrib[0].Enabled)
|
||||
if (!check_valid_to_render(ctx, "Arrays"))
|
||||
return GL_FALSE;
|
||||
|
||||
if (ctx->Const.CheckArrayBounds) {
|
||||
|
@@ -195,6 +195,10 @@ do { \
|
||||
#define PACK_COLOR_565_REV( X, Y, Z ) \
|
||||
(((X) & 0xf8) | ((Y) & 0xe0) >> 5 | (((Y) & 0x1c) << 11) | (((Z) & 0xf8) << 5))
|
||||
|
||||
#define PACK_COLOR_5551( R, G, B, A ) \
|
||||
((((R) & 0xf8) << 8) | (((G) & 0xf8) << 3) | (((B) & 0xf8) >> 2) | \
|
||||
((A) ? 1 : 0))
|
||||
|
||||
#define PACK_COLOR_1555( A, B, G, R ) \
|
||||
((((B) & 0xf8) << 7) | (((G) & 0xf8) << 2) | (((R) & 0xf8) >> 3) | \
|
||||
((A) ? 0x8000 : 0))
|
||||
|
@@ -341,10 +341,6 @@ _mesa_set_enable(GLcontext *ctx, GLenum cap, GLboolean state)
|
||||
ctx->Transform.CullVertexFlag = state;
|
||||
break;
|
||||
case GL_DEPTH_TEST:
|
||||
if (state && ctx->DrawBuffer->Visual.depthBits == 0) {
|
||||
_mesa_warning(ctx,"glEnable(GL_DEPTH_TEST) but no depth buffer");
|
||||
return;
|
||||
}
|
||||
if (ctx->Depth.Test == state)
|
||||
return;
|
||||
FLUSH_VERTICES(ctx, _NEW_DEPTH);
|
||||
|
@@ -146,7 +146,8 @@
|
||||
#include <byteswap.h>
|
||||
#define CPU_TO_LE32( x ) bswap_32( x )
|
||||
#else /*__linux__*/
|
||||
#define CPU_TO_LE32( x ) ( x ) /* fix me for non-Linux big-endian! */
|
||||
#include <sys/endian.h>
|
||||
#define CPU_TO_LE32( x ) bswap32( x )
|
||||
#endif /*__linux__*/
|
||||
#define MESA_BIG_ENDIAN 1
|
||||
#else
|
||||
|
@@ -208,7 +208,8 @@ _mesa_Lightfv( GLenum light, GLenum pname, const GLfloat *params )
|
||||
if (_math_matrix_is_dirty(ctx->ModelviewMatrixStack.Top)) {
|
||||
_math_matrix_analyse(ctx->ModelviewMatrixStack.Top);
|
||||
}
|
||||
TRANSFORM_NORMAL(temp, params, ctx->ModelviewMatrixStack.Top->inv);
|
||||
TRANSFORM_DIRECTION(temp, params, ctx->ModelviewMatrixStack.Top->m);
|
||||
NORMALIZE_3FV(temp);
|
||||
params = temp;
|
||||
break;
|
||||
case GL_SPOT_EXPONENT:
|
||||
|
@@ -2094,6 +2094,13 @@ struct gl_query_state
|
||||
};
|
||||
|
||||
|
||||
/** Set by #pragma directives */
|
||||
struct gl_sl_pragmas
|
||||
{
|
||||
GLboolean Optimize; /**< defaults on */
|
||||
GLboolean Debug; /**< defaults off */
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* A GLSL vertex or fragment shader object.
|
||||
@@ -2104,12 +2111,12 @@ struct gl_shader
|
||||
GLuint Name; /**< AKA the handle */
|
||||
GLint RefCount; /**< Reference count */
|
||||
GLboolean DeletePending;
|
||||
|
||||
const GLchar *Source; /**< Source code string */
|
||||
GLboolean CompileStatus;
|
||||
GLboolean Main; /**< shader defines main() */
|
||||
const GLchar *Source; /**< Source code string */
|
||||
struct gl_program *Program; /**< Post-compile assembly code */
|
||||
GLchar *InfoLog;
|
||||
GLboolean Main; /**< shader defines main() */
|
||||
struct gl_sl_pragmas Pragmas;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -871,6 +871,30 @@ const struct gl_texture_format _mesa_texformat_rgb565_rev = {
|
||||
store_texel_rgb565_rev /* StoreTexel */
|
||||
};
|
||||
|
||||
const struct gl_texture_format _mesa_texformat_rgba4444 = {
|
||||
MESA_FORMAT_RGBA4444, /* MesaFormat */
|
||||
GL_RGBA, /* BaseFormat */
|
||||
GL_UNSIGNED_NORMALIZED_ARB, /* DataType */
|
||||
4, /* RedBits */
|
||||
4, /* GreenBits */
|
||||
4, /* BlueBits */
|
||||
4, /* AlphaBits */
|
||||
0, /* LuminanceBits */
|
||||
0, /* IntensityBits */
|
||||
0, /* IndexBits */
|
||||
0, /* DepthBits */
|
||||
0, /* StencilBits */
|
||||
2, /* TexelBytes */
|
||||
_mesa_texstore_rgba4444, /* StoreTexImageFunc */
|
||||
fetch_texel_1d_rgba4444, /* FetchTexel1D */
|
||||
fetch_texel_2d_rgba4444, /* FetchTexel2D */
|
||||
fetch_texel_3d_rgba4444, /* FetchTexel3D */
|
||||
NULL, /* FetchTexel1Df */
|
||||
NULL, /* FetchTexel2Df */
|
||||
NULL, /* FetchTexel3Df */
|
||||
store_texel_rgba4444 /* StoreTexel */
|
||||
};
|
||||
|
||||
const struct gl_texture_format _mesa_texformat_argb4444 = {
|
||||
MESA_FORMAT_ARGB4444, /* MesaFormat */
|
||||
GL_RGBA, /* BaseFormat */
|
||||
@@ -919,6 +943,30 @@ const struct gl_texture_format _mesa_texformat_argb4444_rev = {
|
||||
store_texel_argb4444_rev /* StoreTexel */
|
||||
};
|
||||
|
||||
const struct gl_texture_format _mesa_texformat_rgba5551 = {
|
||||
MESA_FORMAT_RGBA5551, /* MesaFormat */
|
||||
GL_RGBA, /* BaseFormat */
|
||||
GL_UNSIGNED_NORMALIZED_ARB, /* DataType */
|
||||
5, /* RedBits */
|
||||
5, /* GreenBits */
|
||||
5, /* BlueBits */
|
||||
1, /* AlphaBits */
|
||||
0, /* LuminanceBits */
|
||||
0, /* IntensityBits */
|
||||
0, /* IndexBits */
|
||||
0, /* DepthBits */
|
||||
0, /* StencilBits */
|
||||
2, /* TexelBytes */
|
||||
_mesa_texstore_rgba5551, /* StoreTexImageFunc */
|
||||
fetch_texel_1d_rgba5551, /* FetchTexel1D */
|
||||
fetch_texel_2d_rgba5551, /* FetchTexel2D */
|
||||
fetch_texel_3d_rgba5551, /* FetchTexel3D */
|
||||
NULL, /* FetchTexel1Df */
|
||||
NULL, /* FetchTexel2Df */
|
||||
NULL, /* FetchTexel3Df */
|
||||
store_texel_rgba5551 /* StoreTexel */
|
||||
};
|
||||
|
||||
const struct gl_texture_format _mesa_texformat_argb1555 = {
|
||||
MESA_FORMAT_ARGB1555, /* MesaFormat */
|
||||
GL_RGBA, /* BaseFormat */
|
||||
|
@@ -70,8 +70,10 @@ enum _format {
|
||||
MESA_FORMAT_BGR888, /* BBBB BBBB GGGG GGGG RRRR RRRR */
|
||||
MESA_FORMAT_RGB565, /* RRRR RGGG GGGB BBBB */
|
||||
MESA_FORMAT_RGB565_REV, /* GGGB BBBB RRRR RGGG */
|
||||
MESA_FORMAT_RGBA4444, /* RRRR GGGG BBBB AAAA */
|
||||
MESA_FORMAT_ARGB4444, /* AAAA RRRR GGGG BBBB */
|
||||
MESA_FORMAT_ARGB4444_REV, /* GGGG BBBB AAAA RRRR */
|
||||
MESA_FORMAT_RGBA5551, /* RRRR RGGG GGBB BBBA */
|
||||
MESA_FORMAT_ARGB1555, /* ARRR RRGG GGGB BBBB */
|
||||
MESA_FORMAT_ARGB1555_REV, /* GGGB BBBB ARRR RRGG */
|
||||
MESA_FORMAT_AL88, /* AAAA AAAA LLLL LLLL */
|
||||
@@ -200,10 +202,12 @@ extern const struct gl_texture_format _mesa_texformat_rgb888;
|
||||
extern const struct gl_texture_format _mesa_texformat_bgr888;
|
||||
extern const struct gl_texture_format _mesa_texformat_rgb565;
|
||||
extern const struct gl_texture_format _mesa_texformat_rgb565_rev;
|
||||
extern const struct gl_texture_format _mesa_texformat_rgba4444;
|
||||
extern const struct gl_texture_format _mesa_texformat_argb4444;
|
||||
extern const struct gl_texture_format _mesa_texformat_argb4444_rev;
|
||||
extern const struct gl_texture_format _mesa_texformat_argb1555;
|
||||
extern const struct gl_texture_format _mesa_texformat_argb1555_rev;
|
||||
extern const struct gl_texture_format _mesa_texformat_rgba5551;
|
||||
extern const struct gl_texture_format _mesa_texformat_al88;
|
||||
extern const struct gl_texture_format _mesa_texformat_al88_rev;
|
||||
extern const struct gl_texture_format _mesa_texformat_rgb332;
|
||||
|
@@ -694,7 +694,7 @@ static void store_texel_argb8888_rev(struct gl_texture_image *texImage,
|
||||
{
|
||||
const GLubyte *rgba = (const GLubyte *) texel;
|
||||
GLuint *dst = TEXEL_ADDR(GLuint, texImage, i, j, k, 1);
|
||||
*dst = PACK_COLOR_8888(rgba[ACOMP], rgba[RCOMP], rgba[GCOMP], rgba[BCOMP]);
|
||||
*dst = PACK_COLOR_8888(rgba[BCOMP], rgba[GCOMP], rgba[RCOMP], rgba[ACOMP]);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -803,6 +803,30 @@ static void store_texel_rgb565_rev(struct gl_texture_image *texImage,
|
||||
}
|
||||
#endif
|
||||
|
||||
/* MESA_FORMAT_RGBA4444 ******************************************************/
|
||||
|
||||
/* Fetch texel from 1D, 2D or 3D argb444 texture, return 4 GLchans */
|
||||
static void FETCH(rgba4444)( const struct gl_texture_image *texImage,
|
||||
GLint i, GLint j, GLint k, GLchan *texel )
|
||||
{
|
||||
const GLushort *src = TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
|
||||
const GLushort s = *src;
|
||||
texel[RCOMP] = UBYTE_TO_CHAN( ((s >> 12) & 0xf) | ((s >> 8) & 0xf0) );
|
||||
texel[GCOMP] = UBYTE_TO_CHAN( ((s >> 8) & 0xf) | ((s >> 4) & 0xf0) );
|
||||
texel[BCOMP] = UBYTE_TO_CHAN( ((s >> 4) & 0xf) | ((s ) & 0xf0) );
|
||||
texel[ACOMP] = UBYTE_TO_CHAN( ((s ) & 0xf) | ((s << 4) & 0xf0) );
|
||||
}
|
||||
|
||||
#if DIM == 3
|
||||
static void store_texel_rgba4444(struct gl_texture_image *texImage,
|
||||
GLint i, GLint j, GLint k, const void *texel)
|
||||
{
|
||||
const GLubyte *rgba = (const GLubyte *) texel;
|
||||
GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
|
||||
*dst = PACK_COLOR_4444(rgba[RCOMP], rgba[GCOMP], rgba[BCOMP], rgba[ACOMP]);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* MESA_FORMAT_ARGB4444 ******************************************************/
|
||||
|
||||
@@ -824,7 +848,7 @@ static void store_texel_argb4444(struct gl_texture_image *texImage,
|
||||
{
|
||||
const GLubyte *rgba = (const GLubyte *) texel;
|
||||
GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
|
||||
*dst = PACK_COLOR_4444(rgba[RCOMP], rgba[GCOMP], rgba[BCOMP], rgba[ACOMP]);
|
||||
*dst = PACK_COLOR_4444(rgba[ACOMP], rgba[RCOMP], rgba[GCOMP], rgba[BCOMP]);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -852,6 +876,29 @@ static void store_texel_argb4444_rev(struct gl_texture_image *texImage,
|
||||
}
|
||||
#endif
|
||||
|
||||
/* MESA_FORMAT_RGBA5551 ******************************************************/
|
||||
|
||||
/* Fetch texel from 1D, 2D or 3D argb1555 texture, return 4 GLchans */
|
||||
static void FETCH(rgba5551)( const struct gl_texture_image *texImage,
|
||||
GLint i, GLint j, GLint k, GLchan *texel )
|
||||
{
|
||||
const GLushort *src = TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
|
||||
const GLushort s = *src;
|
||||
texel[RCOMP] = UBYTE_TO_CHAN( ((s >> 8) & 0xf8) | ((s >> 13) & 0x7) );
|
||||
texel[GCOMP] = UBYTE_TO_CHAN( ((s >> 3) & 0xf8) | ((s >> 8) & 0x7) );
|
||||
texel[BCOMP] = UBYTE_TO_CHAN( ((s << 2) & 0xf8) | ((s >> 3) & 0x7) );
|
||||
texel[ACOMP] = UBYTE_TO_CHAN( ((s) & 0x01) ? 255 : 0);
|
||||
}
|
||||
|
||||
#if DIM == 3
|
||||
static void store_texel_rgba5551(struct gl_texture_image *texImage,
|
||||
GLint i, GLint j, GLint k, const void *texel)
|
||||
{
|
||||
const GLubyte *rgba = (const GLubyte *) texel;
|
||||
GLushort *dst = TEXEL_ADDR(GLushort, texImage, i, j, k, 1);
|
||||
*dst = PACK_COLOR_5551(rgba[RCOMP], rgba[GCOMP], rgba[BCOMP], rgba[ACOMP]);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* MESA_FORMAT_ARGB1555 ******************************************************/
|
||||
|
||||
|
@@ -762,24 +762,31 @@ unbind_texobj_from_texunits(GLcontext *ctx, struct gl_texture_object *texObj)
|
||||
struct gl_texture_unit *unit = &ctx->Texture.Unit[u];
|
||||
if (texObj == unit->Current1D) {
|
||||
_mesa_reference_texobj(&unit->Current1D, ctx->Shared->Default1D);
|
||||
ASSERT(unit->Current1D);
|
||||
}
|
||||
else if (texObj == unit->Current2D) {
|
||||
_mesa_reference_texobj(&unit->Current2D, ctx->Shared->Default2D);
|
||||
ASSERT(unit->Current2D);
|
||||
}
|
||||
else if (texObj == unit->Current3D) {
|
||||
_mesa_reference_texobj(&unit->Current3D, ctx->Shared->Default3D);
|
||||
ASSERT(unit->Current3D);
|
||||
}
|
||||
else if (texObj == unit->CurrentCubeMap) {
|
||||
_mesa_reference_texobj(&unit->CurrentCubeMap, ctx->Shared->DefaultCubeMap);
|
||||
ASSERT(unit->CurrentCubeMap);
|
||||
}
|
||||
else if (texObj == unit->CurrentRect) {
|
||||
_mesa_reference_texobj(&unit->CurrentRect, ctx->Shared->DefaultRect);
|
||||
ASSERT(unit->CurrentRect);
|
||||
}
|
||||
else if (texObj == unit->Current1DArray) {
|
||||
_mesa_reference_texobj(&unit->Current1DArray, ctx->Shared->Default1DArray);
|
||||
ASSERT(unit->Current1DArray);
|
||||
}
|
||||
else if (texObj == unit->Current2DArray) {
|
||||
_mesa_reference_texobj(&unit->Current2DArray, ctx->Shared->Default2DArray);
|
||||
ASSERT(unit->Current2DArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -953,24 +960,31 @@ _mesa_BindTexture( GLenum target, GLuint texName )
|
||||
switch (target) {
|
||||
case GL_TEXTURE_1D:
|
||||
_mesa_reference_texobj(&texUnit->Current1D, newTexObj);
|
||||
ASSERT(texUnit->Current1D);
|
||||
break;
|
||||
case GL_TEXTURE_2D:
|
||||
_mesa_reference_texobj(&texUnit->Current2D, newTexObj);
|
||||
ASSERT(texUnit->Current2D);
|
||||
break;
|
||||
case GL_TEXTURE_3D:
|
||||
_mesa_reference_texobj(&texUnit->Current3D, newTexObj);
|
||||
ASSERT(texUnit->Current3D);
|
||||
break;
|
||||
case GL_TEXTURE_CUBE_MAP_ARB:
|
||||
_mesa_reference_texobj(&texUnit->CurrentCubeMap, newTexObj);
|
||||
ASSERT(texUnit->CurrentCubeMap);
|
||||
break;
|
||||
case GL_TEXTURE_RECTANGLE_NV:
|
||||
_mesa_reference_texobj(&texUnit->CurrentRect, newTexObj);
|
||||
ASSERT(texUnit->CurrentRect);
|
||||
break;
|
||||
case GL_TEXTURE_1D_ARRAY_EXT:
|
||||
texUnit->Current1DArray = newTexObj;
|
||||
ASSERT(texUnit->Current1DArray);
|
||||
break;
|
||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||
texUnit->Current2DArray = newTexObj;
|
||||
ASSERT(texUnit->Current2DArray);
|
||||
break;
|
||||
default:
|
||||
/* Bad target should be caught above */
|
||||
|
@@ -517,6 +517,14 @@ update_texture_state( GLcontext *ctx )
|
||||
enableBits = texUnit->Enabled;
|
||||
}
|
||||
|
||||
ASSERT(texUnit->Current1D);
|
||||
ASSERT(texUnit->Current2D);
|
||||
ASSERT(texUnit->Current3D);
|
||||
ASSERT(texUnit->CurrentCubeMap);
|
||||
ASSERT(texUnit->CurrentRect);
|
||||
ASSERT(texUnit->Current1DArray);
|
||||
ASSERT(texUnit->Current2DArray);
|
||||
|
||||
/* Look for the highest-priority texture target that's enabled and
|
||||
* complete. That's the one we'll use for texturing. If we're using
|
||||
* a fragment program we're guaranteed that bitcount(enabledBits) <= 1.
|
||||
|
@@ -1898,6 +1898,60 @@ _mesa_texstore_bgr888(TEXSTORE_PARAMS)
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
GLboolean
|
||||
_mesa_texstore_rgba4444(TEXSTORE_PARAMS)
|
||||
{
|
||||
ASSERT(dstFormat == &_mesa_texformat_rgba4444);
|
||||
ASSERT(dstFormat->TexelBytes == 2);
|
||||
|
||||
if (!ctx->_ImageTransferState &&
|
||||
!srcPacking->SwapBytes &&
|
||||
dstFormat == &_mesa_texformat_rgba4444 &&
|
||||
baseInternalFormat == GL_RGBA &&
|
||||
srcFormat == GL_RGBA &&
|
||||
srcType == GL_UNSIGNED_SHORT_4_4_4_4){
|
||||
/* simple memcpy path */
|
||||
memcpy_texture(ctx, dims,
|
||||
dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
|
||||
dstRowStride,
|
||||
dstImageOffsets,
|
||||
srcWidth, srcHeight, srcDepth, srcFormat, srcType,
|
||||
srcAddr, srcPacking);
|
||||
}
|
||||
else {
|
||||
/* general path */
|
||||
const GLchan *tempImage = _mesa_make_temp_chan_image(ctx, dims,
|
||||
baseInternalFormat,
|
||||
dstFormat->BaseFormat,
|
||||
srcWidth, srcHeight, srcDepth,
|
||||
srcFormat, srcType, srcAddr,
|
||||
srcPacking);
|
||||
const GLchan *src = tempImage;
|
||||
GLint img, row, col;
|
||||
if (!tempImage)
|
||||
return GL_FALSE;
|
||||
_mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
|
||||
for (img = 0; img < srcDepth; img++) {
|
||||
GLubyte *dstRow = (GLubyte *) dstAddr
|
||||
+ dstImageOffsets[dstZoffset + img] * dstFormat->TexelBytes
|
||||
+ dstYoffset * dstRowStride
|
||||
+ dstXoffset * dstFormat->TexelBytes;
|
||||
for (row = 0; row < srcHeight; row++) {
|
||||
GLushort *dstUS = (GLushort *) dstRow;
|
||||
for (col = 0; col < srcWidth; col++) {
|
||||
dstUS[col] = PACK_COLOR_4444( CHAN_TO_UBYTE(src[RCOMP]),
|
||||
CHAN_TO_UBYTE(src[GCOMP]),
|
||||
CHAN_TO_UBYTE(src[BCOMP]),
|
||||
CHAN_TO_UBYTE(src[ACOMP]) );
|
||||
src += 4;
|
||||
}
|
||||
dstRow += dstRowStride;
|
||||
}
|
||||
}
|
||||
_mesa_free((void *) tempImage);
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
GLboolean
|
||||
_mesa_texstore_argb4444(TEXSTORE_PARAMS)
|
||||
@@ -1966,7 +2020,60 @@ _mesa_texstore_argb4444(TEXSTORE_PARAMS)
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
GLboolean
|
||||
_mesa_texstore_rgba5551(TEXSTORE_PARAMS)
|
||||
{
|
||||
ASSERT(dstFormat == &_mesa_texformat_rgba5551);
|
||||
ASSERT(dstFormat->TexelBytes == 2);
|
||||
|
||||
if (!ctx->_ImageTransferState &&
|
||||
!srcPacking->SwapBytes &&
|
||||
dstFormat == &_mesa_texformat_rgba5551 &&
|
||||
baseInternalFormat == GL_RGBA &&
|
||||
srcFormat == GL_RGBA &&
|
||||
srcType == GL_UNSIGNED_SHORT_5_5_5_1) {
|
||||
/* simple memcpy path */
|
||||
memcpy_texture(ctx, dims,
|
||||
dstFormat, dstAddr, dstXoffset, dstYoffset, dstZoffset,
|
||||
dstRowStride,
|
||||
dstImageOffsets,
|
||||
srcWidth, srcHeight, srcDepth, srcFormat, srcType,
|
||||
srcAddr, srcPacking);
|
||||
}
|
||||
else {
|
||||
/* general path */
|
||||
const GLchan *tempImage = _mesa_make_temp_chan_image(ctx, dims,
|
||||
baseInternalFormat,
|
||||
dstFormat->BaseFormat,
|
||||
srcWidth, srcHeight, srcDepth,
|
||||
srcFormat, srcType, srcAddr,
|
||||
srcPacking);
|
||||
const GLchan *src =tempImage;
|
||||
GLint img, row, col;
|
||||
if (!tempImage)
|
||||
return GL_FALSE;
|
||||
_mesa_adjust_image_for_convolution(ctx, dims, &srcWidth, &srcHeight);
|
||||
for (img = 0; img < srcDepth; img++) {
|
||||
GLubyte *dstRow = (GLubyte *) dstAddr
|
||||
+ dstImageOffsets[dstZoffset + img] * dstFormat->TexelBytes
|
||||
+ dstYoffset * dstRowStride
|
||||
+ dstXoffset * dstFormat->TexelBytes;
|
||||
for (row = 0; row < srcHeight; row++) {
|
||||
GLushort *dstUS = (GLushort *) dstRow;
|
||||
for (col = 0; col < srcWidth; col++) {
|
||||
dstUS[col] = PACK_COLOR_5551( CHAN_TO_UBYTE(src[RCOMP]),
|
||||
CHAN_TO_UBYTE(src[GCOMP]),
|
||||
CHAN_TO_UBYTE(src[BCOMP]),
|
||||
CHAN_TO_UBYTE(src[ACOMP]) );
|
||||
src += 4;
|
||||
}
|
||||
dstRow += dstRowStride;
|
||||
}
|
||||
}
|
||||
_mesa_free((void *) tempImage);
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
GLboolean
|
||||
_mesa_texstore_argb1555(TEXSTORE_PARAMS)
|
||||
|
@@ -46,8 +46,10 @@ extern GLboolean _mesa_texstore_rgb888(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_bgr888(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_rgb565(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_rgb565_rev(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_rgba4444(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_argb4444(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_argb4444_rev(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_rgba5551(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_argb1555(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_argb1555_rev(TEXSTORE_PARAMS);
|
||||
extern GLboolean _mesa_texstore_al88(TEXSTORE_PARAMS);
|
||||
|
@@ -31,7 +31,7 @@
|
||||
#define MESA_MAJOR 7
|
||||
#define MESA_MINOR 3
|
||||
#define MESA_PATCH 0
|
||||
#define MESA_VERSION_STRING "7.3-rc1"
|
||||
#define MESA_VERSION_STRING "7.3-rc3"
|
||||
|
||||
/* To make version comparison easy */
|
||||
#define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
|
||||
|
@@ -189,6 +189,18 @@ do { \
|
||||
} while (0)
|
||||
|
||||
|
||||
/**
|
||||
* Transform a direction by a matrix.
|
||||
*/
|
||||
#define TRANSFORM_DIRECTION( TO, DIR, MAT ) \
|
||||
do { \
|
||||
TO[0] = DIR[0] * MAT[0] + DIR[1] * MAT[4] + DIR[2] * MAT[8]; \
|
||||
TO[1] = DIR[0] * MAT[1] + DIR[1] * MAT[5] + DIR[2] * MAT[9]; \
|
||||
TO[2] = DIR[0] * MAT[2] + DIR[1] * MAT[6] + DIR[2] * MAT[10];\
|
||||
} while (0)
|
||||
|
||||
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
@@ -963,6 +963,8 @@ parse_output_color_num (GLcontext * ctx, const GLubyte ** inst,
|
||||
|
||||
|
||||
/**
|
||||
* Validate the index of a texture coordinate
|
||||
*
|
||||
* \param coord The texture unit index
|
||||
* \return 0 on sucess, 1 on error
|
||||
*/
|
||||
@@ -972,8 +974,8 @@ parse_texcoord_num (GLcontext * ctx, const GLubyte ** inst,
|
||||
{
|
||||
GLint i = parse_integer (inst, Program);
|
||||
|
||||
if ((i < 0) || (i >= (int)ctx->Const.MaxTextureUnits)) {
|
||||
program_error(ctx, Program->Position, "Invalid texture unit index");
|
||||
if ((i < 0) || (i >= (int)ctx->Const.MaxTextureCoordUnits)) {
|
||||
program_error(ctx, Program->Position, "Invalid texture coordinate index");
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -981,6 +983,29 @@ parse_texcoord_num (GLcontext * ctx, const GLubyte ** inst,
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Validate the index of a texture image unit
|
||||
*
|
||||
* \param coord The texture unit index
|
||||
* \return 0 on sucess, 1 on error
|
||||
*/
|
||||
static GLuint
|
||||
parse_teximage_num (GLcontext * ctx, const GLubyte ** inst,
|
||||
struct arb_program *Program, GLuint * coord)
|
||||
{
|
||||
GLint i = parse_integer (inst, Program);
|
||||
|
||||
if ((i < 0) || (i >= (int)ctx->Const.MaxTextureImageUnits)) {
|
||||
program_error(ctx, Program->Position, "Invalid texture image index");
|
||||
return 1;
|
||||
}
|
||||
|
||||
*coord = (GLuint) i;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \param coord The weight index
|
||||
* \return 0 on sucess, 1 on error
|
||||
@@ -3003,7 +3028,7 @@ parse_fp_instruction (GLcontext * ctx, const GLubyte ** inst,
|
||||
return 1;
|
||||
|
||||
/* texImageUnit */
|
||||
if (parse_texcoord_num (ctx, inst, Program, &texcoord))
|
||||
if (parse_teximage_num (ctx, inst, Program, &texcoord))
|
||||
return 1;
|
||||
fp->TexSrcUnit = texcoord;
|
||||
|
||||
|
@@ -807,6 +807,7 @@ _mesa_GetProgramLocalParameterdvARB(GLenum target, GLuint index,
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
GLfloat floatParams[4];
|
||||
ASSIGN_4V(floatParams, 0.0F, 0.0F, 0.0F, 0.0F);
|
||||
_mesa_GetProgramLocalParameterfvARB(target, index, floatParams);
|
||||
if (ctx->ErrorValue == GL_NO_ERROR) {
|
||||
COPY_4V(params, floatParams);
|
||||
|
@@ -1,8 +1,9 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5.3
|
||||
* Version: 7.3
|
||||
*
|
||||
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2008 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2009 VMware, Inc. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -157,7 +158,7 @@ static const struct instruction_info InstInfo[MAX_OPCODE] = {
|
||||
{ OPCODE_AND, "AND", 2, 1 },
|
||||
{ OPCODE_ARA, "ARA", 1, 1 },
|
||||
{ OPCODE_ARL, "ARL", 1, 1 },
|
||||
{ OPCODE_ARL_NV, "ARL", 1, 1 },
|
||||
{ OPCODE_ARL_NV, "ARL_NV", 1, 1 },
|
||||
{ OPCODE_ARR, "ARL", 1, 1 },
|
||||
{ OPCODE_BGNLOOP,"BGNLOOP", 0, 0 },
|
||||
{ OPCODE_BGNSUB, "BGNSUB", 0, 0 },
|
||||
@@ -186,7 +187,7 @@ static const struct instruction_info InstInfo[MAX_OPCODE] = {
|
||||
{ OPCODE_FRC, "FRC", 1, 1 },
|
||||
{ OPCODE_IF, "IF", 1, 0 },
|
||||
{ OPCODE_KIL, "KIL", 1, 0 },
|
||||
{ OPCODE_KIL_NV, "KIL", 0, 0 },
|
||||
{ OPCODE_KIL_NV, "KIL_NV", 0, 0 },
|
||||
{ OPCODE_LG2, "LG2", 1, 1 },
|
||||
{ OPCODE_LIT, "LIT", 1, 1 },
|
||||
{ OPCODE_LOG, "LOG", 1, 1 },
|
||||
@@ -235,7 +236,7 @@ static const struct instruction_info InstInfo[MAX_OPCODE] = {
|
||||
{ OPCODE_TXD, "TXD", 3, 1 },
|
||||
{ OPCODE_TXL, "TXL", 1, 1 },
|
||||
{ OPCODE_TXP, "TXP", 1, 1 },
|
||||
{ OPCODE_TXP_NV, "TXP", 1, 1 },
|
||||
{ OPCODE_TXP_NV, "TXP_NV", 1, 1 },
|
||||
{ OPCODE_TRUNC, "TRUNC", 1, 1 },
|
||||
{ OPCODE_UP2H, "UP2H", 1, 1 },
|
||||
{ OPCODE_UP2US, "UP2US", 1, 1 },
|
||||
|
@@ -79,6 +79,12 @@
|
||||
.emtcode BEHAVIOR_WARN 3
|
||||
.emtcode BEHAVIOR_DISABLE 4
|
||||
|
||||
/*
|
||||
* The PRAGMA_* symbols follow TOKEN_PRAGMA
|
||||
*/
|
||||
.emtcode PRAGMA_NO_PARAM 0
|
||||
.emtcode PRAGMA_PARAM 1
|
||||
|
||||
source
|
||||
optional_directive .and .loop source_element .and '\0' .emit ESCAPE_TOKEN .emit TOKEN_END;
|
||||
|
||||
@@ -153,6 +159,7 @@ directive
|
||||
dir_elif .emit TOKEN_ELIF .or
|
||||
dir_endif .emit TOKEN_ENDIF .or
|
||||
dir_ext .emit TOKEN_EXTENSION .or
|
||||
dir_pragma .emit TOKEN_PRAGMA .or
|
||||
dir_line .emit TOKEN_LINE;
|
||||
|
||||
dir_define
|
||||
@@ -187,6 +194,19 @@ dir_ext
|
||||
dir_line
|
||||
optional_space .and '#' .and optional_space .and "line" .and expression;
|
||||
|
||||
dir_pragma
|
||||
optional_space .and '#' .and optional_space .and "pragma" .and symbol .and opt_pragma_param;
|
||||
|
||||
|
||||
opt_pragma_param
|
||||
pragma_param .or .true .emit PRAGMA_NO_PARAM;
|
||||
|
||||
pragma_param
|
||||
optional_space .and '(' .emit PRAGMA_PARAM .and optional_space .and symbol_no_space .and optional_space .and ')';
|
||||
|
||||
symbol_no_space
|
||||
symbol_character .emit * .and .loop symbol_character2 .emit * .and .true .emit '\0';
|
||||
|
||||
symbol
|
||||
space .and symbol_character .emit * .and .loop symbol_character2 .emit * .and .true .emit '\0';
|
||||
|
||||
|
@@ -20,6 +20,8 @@
|
||||
".emtcode BEHAVIOR_ENABLE 2\n"
|
||||
".emtcode BEHAVIOR_WARN 3\n"
|
||||
".emtcode BEHAVIOR_DISABLE 4\n"
|
||||
".emtcode PRAGMA_NO_PARAM 0\n"
|
||||
".emtcode PRAGMA_PARAM 1\n"
|
||||
"source\n"
|
||||
" optional_directive .and .loop source_element .and '\\0' .emit ESCAPE_TOKEN .emit TOKEN_END;\n"
|
||||
"source_element\n"
|
||||
@@ -76,6 +78,7 @@
|
||||
" dir_elif .emit TOKEN_ELIF .or\n"
|
||||
" dir_endif .emit TOKEN_ENDIF .or\n"
|
||||
" dir_ext .emit TOKEN_EXTENSION .or\n"
|
||||
" dir_pragma .emit TOKEN_PRAGMA .or\n"
|
||||
" dir_line .emit TOKEN_LINE;\n"
|
||||
"dir_define\n"
|
||||
" optional_space .and '#' .and optional_space .and \"define\" .and symbol .and opt_parameters .and\n"
|
||||
@@ -99,6 +102,14 @@
|
||||
" optional_space .and ':' .and optional_space .and extension_behavior;\n"
|
||||
"dir_line\n"
|
||||
" optional_space .and '#' .and optional_space .and \"line\" .and expression;\n"
|
||||
"dir_pragma\n"
|
||||
" optional_space .and '#' .and optional_space .and \"pragma\" .and symbol .and opt_pragma_param;\n"
|
||||
"opt_pragma_param\n"
|
||||
" pragma_param .or .true .emit PRAGMA_NO_PARAM;\n"
|
||||
"pragma_param\n"
|
||||
" optional_space .and '(' .emit PRAGMA_PARAM .and optional_space .and symbol_no_space .and optional_space .and ')';\n"
|
||||
"symbol_no_space\n"
|
||||
" symbol_character .emit * .and .loop symbol_character2 .emit * .and .true .emit '\\0';\n"
|
||||
"symbol\n"
|
||||
" space .and symbol_character .emit * .and .loop symbol_character2 .emit * .and .true .emit '\\0';\n"
|
||||
"opt_parameters\n"
|
||||
|
@@ -1161,13 +1161,6 @@ compound_statement_2
|
||||
compound_statement_3
|
||||
lbrace .and statement_list .and rbrace;
|
||||
|
||||
/*
|
||||
* <statement_no_new_scope> ::= <compound_statement_no_new_scope>
|
||||
* | <simple_statement>
|
||||
*/
|
||||
statement_no_new_scope
|
||||
compound_statement_no_new_scope .or simple_statement;
|
||||
|
||||
/*
|
||||
* <compound_statement_no_new_scope> ::= "{" "}"
|
||||
* | "{" <statement_list> "}"
|
||||
@@ -1181,6 +1174,7 @@ compound_statement_no_new_scope_2
|
||||
compound_statement_no_new_scope_3
|
||||
lbrace .and statement_list .and rbrace;
|
||||
|
||||
|
||||
/*
|
||||
* <statement_list> ::= <statement>
|
||||
* | <statement_list> <statement>
|
||||
@@ -1242,8 +1236,7 @@ condition_3
|
||||
/*
|
||||
* <iteration_statement> ::= "while" "(" <condition> ")" <statement>
|
||||
* | "do" <statement> "while" "(" <expression> ")" ";"
|
||||
* | "for" "(" <for_init_statement> <for_rest_statement> ")"
|
||||
* <statement_no_new_scope>
|
||||
* | "for" "(" <for_init_statement> <for_rest_statement> ")" <statement>
|
||||
*/
|
||||
iteration_statement
|
||||
iteration_statement_1 .or iteration_statement_2 .or iteration_statement_3;
|
||||
@@ -1255,7 +1248,7 @@ iteration_statement_2
|
||||
expression .and rparen .error RPAREN_EXPECTED .emit OP_END .and semicolon;
|
||||
iteration_statement_3
|
||||
"for" .emit OP_FOR .and lparen .error LPAREN_EXPECTED .and for_init_statement .and
|
||||
for_rest_statement .and rparen .error RPAREN_EXPECTED .and statement_no_new_scope;
|
||||
for_rest_statement .and rparen .error RPAREN_EXPECTED .and statement;
|
||||
|
||||
/*
|
||||
* <for_init_statement> ::= <expression_statement>
|
||||
|
@@ -566,8 +566,6 @@
|
||||
" lbrace .and rbrace;\n"
|
||||
"compound_statement_3\n"
|
||||
" lbrace .and statement_list .and rbrace;\n"
|
||||
"statement_no_new_scope\n"
|
||||
" compound_statement_no_new_scope .or simple_statement;\n"
|
||||
"compound_statement_no_new_scope\n"
|
||||
" compound_statement_no_new_scope_1 .emit OP_BLOCK_BEGIN_NO_NEW_SCOPE .and .true .emit OP_END;\n"
|
||||
"compound_statement_no_new_scope_1\n"
|
||||
@@ -617,7 +615,7 @@
|
||||
" expression .and rparen .error RPAREN_EXPECTED .emit OP_END .and semicolon;\n"
|
||||
"iteration_statement_3\n"
|
||||
" \"for\" .emit OP_FOR .and lparen .error LPAREN_EXPECTED .and for_init_statement .and\n"
|
||||
" for_rest_statement .and rparen .error RPAREN_EXPECTED .and statement_no_new_scope;\n"
|
||||
" for_rest_statement .and rparen .error RPAREN_EXPECTED .and statement;\n"
|
||||
"for_init_statement\n"
|
||||
" expression_statement .emit OP_EXPRESSION .or declaration_statement .emit OP_DECLARE;\n"
|
||||
"conditionopt\n"
|
||||
|
@@ -4238,6 +4238,21 @@ _slang_gen_operation(slang_assemble_ctx * A, slang_operation *oper)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if the given type specifier is a rectangular texture sampler.
|
||||
*/
|
||||
static GLboolean
|
||||
is_rect_sampler_spec(const slang_type_specifier *spec)
|
||||
{
|
||||
while (spec->_array) {
|
||||
spec = spec->_array;
|
||||
}
|
||||
return spec->type == SLANG_SPEC_SAMPLER2DRECT ||
|
||||
spec->type == SLANG_SPEC_SAMPLER2DRECTSHADOW;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Called by compiler when a global variable has been parsed/compiled.
|
||||
* Here we examine the variable's type to determine what kind of register
|
||||
@@ -4261,10 +4276,14 @@ _slang_codegen_global_variable(slang_assemble_ctx *A, slang_variable *var,
|
||||
slang_ir_storage *store = NULL;
|
||||
int dbg = 0;
|
||||
const GLenum datatype = _slang_gltype_from_specifier(&var->type.specifier);
|
||||
const GLint texIndex = sampler_to_texture_index(var->type.specifier.type);
|
||||
const GLint size = _slang_sizeof_type_specifier(&var->type.specifier);
|
||||
const GLint arrayLen = _slang_array_length(var);
|
||||
const GLint totalSize = _slang_array_size(size, arrayLen);
|
||||
GLint texIndex = sampler_to_texture_index(var->type.specifier.type);
|
||||
|
||||
/* check for sampler2D arrays */
|
||||
if (texIndex == -1 && var->type.specifier._array)
|
||||
texIndex = sampler_to_texture_index(var->type.specifier._array->type);
|
||||
|
||||
if (texIndex != -1) {
|
||||
/* This is a texture sampler variable...
|
||||
@@ -4278,15 +4297,32 @@ _slang_codegen_global_variable(slang_assemble_ctx *A, slang_variable *var,
|
||||
}
|
||||
#if FEATURE_es2_glsl /* XXX should use FEATURE_texture_rect */
|
||||
/* disallow rect samplers */
|
||||
if (var->type.specifier.type == SLANG_SPEC_SAMPLER2DRECT ||
|
||||
var->type.specifier.type == SLANG_SPEC_SAMPLER2DRECTSHADOW) {
|
||||
if (is_rect_sampler_spec(&var->type.specifier)) {
|
||||
slang_info_log_error(A->log, "invalid sampler type for '%s'", varName);
|
||||
return GL_FALSE;
|
||||
}
|
||||
#else
|
||||
(void) is_rect_sampler_spec; /* silence warning */
|
||||
#endif
|
||||
{
|
||||
GLint sampNum = _mesa_add_sampler(prog->Parameters, varName, datatype);
|
||||
store = _slang_new_ir_storage(PROGRAM_SAMPLER, sampNum, texIndex);
|
||||
store = _slang_new_ir_storage_sampler(sampNum, texIndex, totalSize);
|
||||
|
||||
/* If we have a sampler array, then we need to allocate the
|
||||
* additional samplers to ensure we don't allocate them elsewhere.
|
||||
* We can't directly use _mesa_add_sampler() as that checks the
|
||||
* varName and gets a match, so we call _mesa_add_parameter()
|
||||
* directly and use the last sampler number from the call above.
|
||||
*/
|
||||
if (arrayLen > 0) {
|
||||
GLint a = arrayLen - 1;
|
||||
GLint i;
|
||||
for (i = 0; i < a; i++) {
|
||||
GLfloat value = (GLfloat)(i + sampNum + 1);
|
||||
(void) _mesa_add_parameter(prog->Parameters, PROGRAM_SAMPLER,
|
||||
varName, 1, datatype, &value, NULL, 0x0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (dbg) printf("SAMPLER ");
|
||||
}
|
||||
@@ -4470,7 +4506,7 @@ _slang_codegen_global_variable(slang_assemble_ctx *A, slang_variable *var,
|
||||
n = _slang_gen_var_decl(A, var, var->initializer);
|
||||
|
||||
/* emit GPU instructions */
|
||||
success = _slang_emit_code(n, A->vartable, A->program, GL_FALSE, A->log);
|
||||
success = _slang_emit_code(n, A->vartable, A->program, A->pragmas, GL_FALSE, A->log);
|
||||
|
||||
_slang_free_ir_tree(n);
|
||||
}
|
||||
@@ -4580,7 +4616,7 @@ _slang_codegen_function(slang_assemble_ctx * A, slang_function * fun)
|
||||
#endif
|
||||
|
||||
/* Emit program instructions */
|
||||
success = _slang_emit_code(n, A->vartable, A->program, GL_TRUE, A->log);
|
||||
success = _slang_emit_code(n, A->vartable, A->program, A->pragmas, GL_TRUE, A->log);
|
||||
_slang_free_ir_tree(n);
|
||||
|
||||
/* free codegen context */
|
||||
|
@@ -36,6 +36,7 @@ typedef struct slang_assemble_ctx_
|
||||
slang_atom_pool *atoms;
|
||||
slang_name_space space;
|
||||
struct gl_program *program;
|
||||
struct gl_sl_pragmas *pragmas;
|
||||
slang_var_table *vartable;
|
||||
slang_info_log *log;
|
||||
struct slang_label_ *curFuncEndLabel;
|
||||
|
@@ -144,6 +144,7 @@ typedef struct slang_output_ctx_
|
||||
slang_function_scope *funs;
|
||||
slang_struct_scope *structs;
|
||||
struct gl_program *program;
|
||||
struct gl_sl_pragmas *pragmas;
|
||||
slang_var_table *vartable;
|
||||
GLuint default_precision[TYPE_SPECIFIER_COUNT];
|
||||
GLboolean allow_precision;
|
||||
@@ -1138,26 +1139,8 @@ parse_statement(slang_parse_ctx * C, slang_output_ctx * O,
|
||||
RETURN0;
|
||||
if (!parse_child_operation(C, &o, oper, GL_FALSE))
|
||||
RETURN0;
|
||||
#if 0
|
||||
if (!parse_child_operation(C, &o, oper, GL_TRUE))
|
||||
RETURN0;
|
||||
#else
|
||||
/* force creation of new scope for loop body */
|
||||
{
|
||||
slang_operation *ch;
|
||||
slang_output_ctx oo = o;
|
||||
|
||||
/* grow child array */
|
||||
ch = slang_operation_grow(&oper->num_children, &oper->children);
|
||||
ch->type = SLANG_OPER_BLOCK_NEW_SCOPE;
|
||||
|
||||
ch->locals->outer_scope = o.vars;
|
||||
oo.vars = ch->locals;
|
||||
|
||||
if (!parse_child_operation(C, &oo, ch, GL_TRUE))
|
||||
RETURN0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case OP_PRECISION:
|
||||
@@ -1488,9 +1471,9 @@ parse_expression(slang_parse_ctx * C, slang_output_ctx * O,
|
||||
RETURN0;
|
||||
}
|
||||
else {
|
||||
array_constructor = GL_TRUE;
|
||||
/* parse the array constructor size */
|
||||
slang_operation array_size;
|
||||
array_constructor = GL_TRUE;
|
||||
slang_operation_construct(&array_size);
|
||||
if (!parse_expression(C, O, &array_size)) {
|
||||
slang_operation_destruct(&array_size);
|
||||
@@ -2077,6 +2060,7 @@ parse_init_declarator(slang_parse_ctx * C, slang_output_ctx * O,
|
||||
A.space.structs = O->structs;
|
||||
A.space.vars = O->vars;
|
||||
A.program = O->program;
|
||||
A.pragmas = O->pragmas;
|
||||
A.vartable = O->vartable;
|
||||
A.log = C->L;
|
||||
A.curFuncEndLabel = NULL;
|
||||
@@ -2367,6 +2351,7 @@ parse_code_unit(slang_parse_ctx * C, slang_code_unit * unit,
|
||||
o.structs = &unit->structs;
|
||||
o.vars = &unit->vars;
|
||||
o.program = shader ? shader->Program : NULL;
|
||||
o.pragmas = shader ? &shader->Pragmas : NULL;
|
||||
o.vartable = _slang_new_var_table(maxRegs);
|
||||
_slang_push_var_table(o.vartable);
|
||||
|
||||
@@ -2435,6 +2420,7 @@ parse_code_unit(slang_parse_ctx * C, slang_code_unit * unit,
|
||||
A.space.structs = o.structs;
|
||||
A.space.vars = o.vars;
|
||||
A.program = o.program;
|
||||
A.pragmas = &shader->Pragmas;
|
||||
A.vartable = o.vartable;
|
||||
A.log = C->L;
|
||||
|
||||
@@ -2493,7 +2479,8 @@ compile_with_grammar(grammar id, const char *source, slang_code_unit * unit,
|
||||
slang_unit_type type, slang_info_log * infolog,
|
||||
slang_code_unit * builtin,
|
||||
struct gl_shader *shader,
|
||||
const struct gl_extensions *extensions)
|
||||
const struct gl_extensions *extensions,
|
||||
struct gl_sl_pragmas *pragmas)
|
||||
{
|
||||
byte *prod;
|
||||
GLuint size, start, version;
|
||||
@@ -2522,7 +2509,7 @@ compile_with_grammar(grammar id, const char *source, slang_code_unit * unit,
|
||||
/* Now preprocess the source string. */
|
||||
slang_string_init(&preprocessed);
|
||||
if (!_slang_preprocess_directives(&preprocessed, &source[start],
|
||||
infolog, extensions)) {
|
||||
infolog, extensions, pragmas)) {
|
||||
slang_string_free(&preprocessed);
|
||||
slang_info_log_error(infolog, "failed to preprocess the source.");
|
||||
return GL_FALSE;
|
||||
@@ -2596,7 +2583,8 @@ static GLboolean
|
||||
compile_object(grammar * id, const char *source, slang_code_object * object,
|
||||
slang_unit_type type, slang_info_log * infolog,
|
||||
struct gl_shader *shader,
|
||||
const struct gl_extensions *extensions)
|
||||
const struct gl_extensions *extensions,
|
||||
struct gl_sl_pragmas *pragmas)
|
||||
{
|
||||
slang_code_unit *builtins = NULL;
|
||||
GLuint base_version = 110;
|
||||
@@ -2695,7 +2683,7 @@ compile_object(grammar * id, const char *source, slang_code_object * object,
|
||||
|
||||
/* compile the actual shader - pass-in built-in library for external shader */
|
||||
return compile_with_grammar(*id, source, &object->unit, type, infolog,
|
||||
builtins, shader, extensions);
|
||||
builtins, shader, extensions, pragmas);
|
||||
}
|
||||
|
||||
|
||||
@@ -2719,7 +2707,7 @@ compile_shader(GLcontext *ctx, slang_code_object * object,
|
||||
_slang_code_object_ctr(object);
|
||||
|
||||
success = compile_object(&id, shader->Source, object, type, infolog, shader,
|
||||
&ctx->Extensions);
|
||||
&ctx->Extensions, &shader->Pragmas);
|
||||
if (id != 0)
|
||||
grammar_destroy(id);
|
||||
if (!success)
|
||||
|
@@ -1271,6 +1271,20 @@ emit_tex(slang_emit_info *emitInfo, slang_ir_node *n)
|
||||
opcode = OPCODE_TXP;
|
||||
}
|
||||
|
||||
if (n->Children[0]->Opcode == IR_ELEMENT) {
|
||||
/* array is the sampler (a uniform which'll indicate the texture unit) */
|
||||
assert(n->Children[0]->Children[0]->Store);
|
||||
assert(n->Children[0]->Children[0]->Store->File == PROGRAM_SAMPLER);
|
||||
|
||||
emit(emitInfo, n->Children[0]);
|
||||
|
||||
n->Children[0]->Var = n->Children[0]->Children[0]->Var;
|
||||
} else {
|
||||
/* this is the sampler (a uniform which'll indicate the texture unit) */
|
||||
assert(n->Children[0]->Store);
|
||||
assert(n->Children[0]->Store->File == PROGRAM_SAMPLER);
|
||||
}
|
||||
|
||||
/* emit code for the texcoord operand */
|
||||
(void) emit(emitInfo, n->Children[1]);
|
||||
|
||||
@@ -1286,17 +1300,10 @@ emit_tex(slang_emit_info *emitInfo, slang_ir_node *n)
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
/* Child[0] is the sampler (a uniform which'll indicate the texture unit) */
|
||||
assert(n->Children[0]->Store);
|
||||
assert(n->Children[0]->Store->File == PROGRAM_SAMPLER);
|
||||
/* Store->Index is the sampler index */
|
||||
/* Store->Index is the uniform/sampler index */
|
||||
assert(n->Children[0]->Store->Index >= 0);
|
||||
/* Store->Size is the texture target */
|
||||
assert(n->Children[0]->Store->Size >= TEXTURE_1D_INDEX);
|
||||
assert(n->Children[0]->Store->Size <= TEXTURE_RECT_INDEX);
|
||||
|
||||
inst->TexSrcTarget = n->Children[0]->Store->Size;
|
||||
inst->TexSrcUnit = n->Children[0]->Store->Index; /* i.e. uniform's index */
|
||||
inst->TexSrcUnit = n->Children[0]->Store->Index;
|
||||
inst->TexSrcTarget = n->Children[0]->Store->TexTarget;
|
||||
|
||||
/* mark the sampler as being used */
|
||||
_mesa_use_uniform(emitInfo->prog->Parameters,
|
||||
@@ -1342,9 +1349,10 @@ emit_copy(slang_emit_info *emitInfo, slang_ir_node *n)
|
||||
|
||||
if (n->Store->File == PROGRAM_SAMPLER) {
|
||||
/* no code generated for sampler assignments,
|
||||
* just copy the sampler index at compile time.
|
||||
* just copy the sampler index/target at compile time.
|
||||
*/
|
||||
n->Store->Index = n->Children[1]->Store->Index;
|
||||
n->Store->TexTarget = n->Children[1]->Store->TexTarget;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -2370,10 +2378,20 @@ _slang_resolve_subroutines(slang_emit_info *emitInfo)
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Convert the IR tree into GPU instructions.
|
||||
* \param n root of IR tree
|
||||
* \param vt variable table
|
||||
* \param prog program to put GPU instructions into
|
||||
* \param pragmas controls codegen options
|
||||
* \param withEnd if true, emit END opcode at end
|
||||
* \param log log for emitting errors/warnings/info
|
||||
*/
|
||||
GLboolean
|
||||
_slang_emit_code(slang_ir_node *n, slang_var_table *vt,
|
||||
struct gl_program *prog, GLboolean withEnd,
|
||||
struct gl_program *prog,
|
||||
const struct gl_sl_pragmas *pragmas,
|
||||
GLboolean withEnd,
|
||||
slang_info_log *log)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
@@ -2390,7 +2408,7 @@ _slang_emit_code(slang_ir_node *n, slang_var_table *vt,
|
||||
|
||||
emitInfo.EmitHighLevelInstructions = ctx->Shader.EmitHighLevelInstructions;
|
||||
emitInfo.EmitCondCodes = ctx->Shader.EmitCondCodes;
|
||||
emitInfo.EmitComments = ctx->Shader.EmitComments;
|
||||
emitInfo.EmitComments = ctx->Shader.EmitComments || pragmas->Debug;
|
||||
emitInfo.EmitBeginEndSub = GL_TRUE;
|
||||
|
||||
if (!emitInfo.EmitCondCodes) {
|
||||
|
@@ -46,7 +46,9 @@ _slang_var_swizzle(GLint size, GLint comp);
|
||||
|
||||
extern GLboolean
|
||||
_slang_emit_code(slang_ir_node *n, slang_var_table *vartable,
|
||||
struct gl_program *prog, GLboolean withEnd,
|
||||
struct gl_program *prog,
|
||||
const struct gl_sl_pragmas *pragmas,
|
||||
GLboolean withEnd,
|
||||
slang_info_log *log);
|
||||
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 7.1
|
||||
*
|
||||
* Copyright (C) 2005-2008 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 2009 VMware, Inc. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -216,6 +216,26 @@ _slang_new_ir_storage_indirect(enum register_file file,
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Allocate IR storage for a texture sampler.
|
||||
* \param sampNum the sampler number/index
|
||||
* \param texTarget one of TEXTURE_x_INDEX values
|
||||
* \param size number of samplers (in case of sampler array)
|
||||
*/
|
||||
slang_ir_storage *
|
||||
_slang_new_ir_storage_sampler(GLint sampNum, GLuint texTarget, GLint size)
|
||||
{
|
||||
slang_ir_storage *st;
|
||||
assert(texTarget < NUM_TEXTURE_TARGETS);
|
||||
st = _slang_new_ir_storage(PROGRAM_SAMPLER, sampNum, size);
|
||||
if (st) {
|
||||
st->TexTarget = texTarget;
|
||||
}
|
||||
return st;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* XXX temporary function */
|
||||
void
|
||||
_slang_copy_ir_storage(slang_ir_storage *dst, const slang_ir_storage *src)
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5.3
|
||||
*
|
||||
* Copyright (C) 2005-2007 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 2005-2008 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 2009 VMware, Inc. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -168,8 +168,8 @@ typedef enum
|
||||
struct slang_ir_storage_
|
||||
{
|
||||
enum register_file File; /**< PROGRAM_TEMPORARY, PROGRAM_INPUT, etc */
|
||||
GLint Index; /**< -1 means unallocated */
|
||||
GLint Size; /**< number of floats */
|
||||
GLint Index; /**< -1 means unallocated */
|
||||
GLint Size; /**< number of floats or ints */
|
||||
GLuint Swizzle; /**< Swizzle AND writemask info */
|
||||
GLint RefCount; /**< Used during IR tree delete */
|
||||
|
||||
@@ -179,6 +179,7 @@ struct slang_ir_storage_
|
||||
enum register_file IndirectFile;
|
||||
GLint IndirectIndex;
|
||||
GLuint IndirectSwizzle;
|
||||
GLuint TexTarget; /**< If File==PROGRAM_SAMPLER, one of TEXTURE_x_INDEX */
|
||||
|
||||
/** If Parent is non-null, Index is relative to parent.
|
||||
* The other fields are ignored.
|
||||
@@ -254,6 +255,10 @@ _slang_new_ir_storage_indirect(enum register_file file,
|
||||
GLint indirectIndex,
|
||||
GLuint indirectSwizzle);
|
||||
|
||||
extern slang_ir_storage *
|
||||
_slang_new_ir_storage_sampler(GLint sampNum, GLuint texTarget, GLint size);
|
||||
|
||||
|
||||
extern void
|
||||
_slang_copy_ir_storage(slang_ir_storage *dst, const slang_ir_storage *src);
|
||||
|
||||
|
@@ -260,8 +260,8 @@ link_uniform_vars(GLcontext *ctx,
|
||||
GLuint newSampNum = *numSamplers;
|
||||
if (newSampNum >= ctx->Const.MaxTextureImageUnits) {
|
||||
char s[100];
|
||||
sprintf(s, "Too many texture samplers (%u, max is %u)",
|
||||
newSampNum, ctx->Const.MaxTextureImageUnits);
|
||||
_mesa_sprintf(s, "Too many texture samplers (%u, max is %u)",
|
||||
newSampNum, ctx->Const.MaxTextureImageUnits);
|
||||
link_error(shProg, s);
|
||||
return GL_FALSE;
|
||||
}
|
||||
@@ -282,12 +282,14 @@ link_uniform_vars(GLcontext *ctx,
|
||||
for (i = 0; i < prog->NumInstructions; i++) {
|
||||
struct prog_instruction *inst = prog->Instructions + i;
|
||||
if (_mesa_is_tex_instruction(inst->Opcode)) {
|
||||
/*
|
||||
printf("====== remap sampler from %d to %d\n",
|
||||
inst->Sampler, map[ inst->Sampler ]);
|
||||
*/
|
||||
/* here, texUnit is really samplerUnit */
|
||||
const GLint oldSampNum = inst->TexSrcUnit;
|
||||
|
||||
#if 0
|
||||
printf("====== remap sampler from %d to %d\n",
|
||||
inst->TexSrcUnit, samplerMap[ inst->TexSrcUnit ]);
|
||||
#endif
|
||||
|
||||
/* here, texUnit is really samplerUnit */
|
||||
if (oldSampNum < Elements(samplerMap)) {
|
||||
const GLuint newSampNum = samplerMap[oldSampNum];
|
||||
inst->TexSrcUnit = newSampNum;
|
||||
|
@@ -184,6 +184,7 @@ _slang_realloc(void *oldBuffer, GLuint oldSize, GLuint newSize)
|
||||
#else
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
slang_mempool *pool = (slang_mempool *) ctx->Shader.MemPool;
|
||||
(void) pool;
|
||||
|
||||
if (newSize < oldSize) {
|
||||
return oldBuffer;
|
||||
@@ -235,6 +236,7 @@ _slang_free(void *addr)
|
||||
if (addr) {
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
slang_mempool *pool = (slang_mempool *) ctx->Shader.MemPool;
|
||||
(void) pool;
|
||||
ASSERT(is_valid_address(pool, addr));
|
||||
}
|
||||
#endif
|
||||
|
@@ -51,6 +51,9 @@ grammar_error_to_log (slang_info_log *log)
|
||||
GLint pos;
|
||||
|
||||
grammar_get_last_error ((byte *) (buf), sizeof (buf), &pos);
|
||||
if (buf[0] == 0) {
|
||||
_mesa_snprintf(buf, sizeof(buf), "Preprocessor error");
|
||||
}
|
||||
slang_info_log_error (log, buf);
|
||||
}
|
||||
|
||||
@@ -528,6 +531,56 @@ pp_ext_set(pp_ext *self, const char *name, GLboolean enable)
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
pp_pragmas_init(struct gl_sl_pragmas *pragmas)
|
||||
{
|
||||
pragmas->Optimize = GL_TRUE;
|
||||
pragmas->Debug = GL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called in response to #pragma. For example, "#pragma debug(on)" would
|
||||
* call this function as pp_pragma("debug", "on").
|
||||
* \return GL_TRUE if pragma is valid, GL_FALSE if invalid
|
||||
*/
|
||||
static GLboolean
|
||||
pp_pragma(struct gl_sl_pragmas *pragmas, const char *pragma, const char *param)
|
||||
{
|
||||
#if 0
|
||||
printf("#pragma %s %s\n", pragma, param);
|
||||
#endif
|
||||
if (_mesa_strcmp(pragma, "optimize") == 0) {
|
||||
if (!param)
|
||||
return GL_FALSE; /* missing required param */
|
||||
if (_mesa_strcmp(param, "on") == 0) {
|
||||
pragmas->Optimize = GL_TRUE;
|
||||
}
|
||||
else if (_mesa_strcmp(param, "off") == 0) {
|
||||
pragmas->Optimize = GL_FALSE;
|
||||
}
|
||||
else {
|
||||
return GL_FALSE; /* invalid param */
|
||||
}
|
||||
}
|
||||
else if (_mesa_strcmp(pragma, "debug") == 0) {
|
||||
if (!param)
|
||||
return GL_FALSE; /* missing required param */
|
||||
if (_mesa_strcmp(param, "on") == 0) {
|
||||
pragmas->Debug = GL_TRUE;
|
||||
}
|
||||
else if (_mesa_strcmp(param, "off") == 0) {
|
||||
pragmas->Debug = GL_FALSE;
|
||||
}
|
||||
else {
|
||||
return GL_FALSE; /* invalid param */
|
||||
}
|
||||
}
|
||||
/* all other pragmas are silently ignored */
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The state of preprocessor: current line, file and version number, list
|
||||
* of all defined macros and the #if/#endif context.
|
||||
@@ -862,11 +915,16 @@ parse_if (slang_string *output, const byte *prod, GLuint *pi, GLint *result, pp_
|
||||
#define BEHAVIOR_WARN 3
|
||||
#define BEHAVIOR_DISABLE 4
|
||||
|
||||
#define PRAGMA_NO_PARAM 0
|
||||
#define PRAGMA_PARAM 1
|
||||
|
||||
|
||||
static GLboolean
|
||||
preprocess_source (slang_string *output, const char *source,
|
||||
grammar pid, grammar eid,
|
||||
slang_info_log *elog,
|
||||
const struct gl_extensions *extensions)
|
||||
const struct gl_extensions *extensions,
|
||||
struct gl_sl_pragmas *pragmas)
|
||||
{
|
||||
static const char *predefined[] = {
|
||||
"__FILE__",
|
||||
@@ -888,6 +946,7 @@ preprocess_source (slang_string *output, const char *source,
|
||||
}
|
||||
|
||||
pp_state_init (&state, elog, extensions);
|
||||
pp_pragmas_init (pragmas);
|
||||
|
||||
/* add the predefined symbols to the symbol table */
|
||||
for (i = 0; predefined[i]; i++) {
|
||||
@@ -940,9 +999,11 @@ preprocess_source (slang_string *output, const char *source,
|
||||
else {
|
||||
const char *id;
|
||||
GLuint idlen;
|
||||
GLubyte token;
|
||||
|
||||
i++;
|
||||
switch (prod[i++]) {
|
||||
token = prod[i++];
|
||||
switch (token) {
|
||||
|
||||
case TOKEN_END:
|
||||
/* End of source string.
|
||||
@@ -1159,6 +1220,25 @@ preprocess_source (slang_string *output, const char *source,
|
||||
}
|
||||
break;
|
||||
|
||||
case TOKEN_PRAGMA:
|
||||
{
|
||||
GLint have_param;
|
||||
const char *pragma, *param;
|
||||
|
||||
pragma = (const char *) (&prod[i]);
|
||||
i += _mesa_strlen(pragma) + 1;
|
||||
have_param = (prod[i++] == PRAGMA_PARAM);
|
||||
if (have_param) {
|
||||
param = (const char *) (&prod[i]);
|
||||
i += _mesa_strlen(param) + 1;
|
||||
}
|
||||
else {
|
||||
param = NULL;
|
||||
}
|
||||
pp_pragma(pragmas, pragma, param);
|
||||
}
|
||||
break;
|
||||
|
||||
case TOKEN_LINE:
|
||||
id = (const char *) (&prod[i]);
|
||||
i += _mesa_strlen (id) + 1;
|
||||
@@ -1223,7 +1303,8 @@ GLboolean
|
||||
_slang_preprocess_directives(slang_string *output,
|
||||
const char *input,
|
||||
slang_info_log *elog,
|
||||
const struct gl_extensions *extensions)
|
||||
const struct gl_extensions *extensions,
|
||||
struct gl_sl_pragmas *pragmas)
|
||||
{
|
||||
grammar pid, eid;
|
||||
GLboolean success;
|
||||
@@ -1239,7 +1320,7 @@ _slang_preprocess_directives(slang_string *output,
|
||||
grammar_destroy (pid);
|
||||
return GL_FALSE;
|
||||
}
|
||||
success = preprocess_source (output, input, pid, eid, elog, extensions);
|
||||
success = preprocess_source (output, input, pid, eid, elog, extensions, pragmas);
|
||||
grammar_destroy (eid);
|
||||
grammar_destroy (pid);
|
||||
return success;
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5.3
|
||||
*
|
||||
* Copyright (C) 2005-2007 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 2005-2008 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 2009 VMware, Inc. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -35,6 +35,7 @@ _slang_preprocess_version (const char *, GLuint *, GLuint *, slang_info_log *);
|
||||
extern GLboolean
|
||||
_slang_preprocess_directives(slang_string *output, const char *input,
|
||||
slang_info_log *,
|
||||
const struct gl_extensions *extensions);
|
||||
const struct gl_extensions *extensions,
|
||||
struct gl_sl_pragmas *pragmas);
|
||||
|
||||
#endif /* SLANG_PREPROCESS_H */
|
||||
|
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file slang_assemble_typeinfo.c
|
||||
* \file slang_typeinfo.c
|
||||
* slang type info
|
||||
* \author Michal Krol
|
||||
*/
|
||||
|
@@ -1032,6 +1032,7 @@ add_specular(GLcontext *ctx, SWspan *span)
|
||||
ASSERT(!ctx->FragmentProgram._Current);
|
||||
ASSERT(span->arrayMask & SPAN_RGBA);
|
||||
ASSERT(swrast->_ActiveAttribMask & FRAG_BIT_COL1);
|
||||
(void) swrast; /* silence warning */
|
||||
|
||||
if (span->array->ChanType == GL_FLOAT) {
|
||||
if ((span->arrayAttribs & FRAG_BIT_COL0) == 0) {
|
||||
|
@@ -2064,6 +2064,7 @@ clamp_rect_coord_linear(GLenum wrapMode, GLfloat coord, GLint max,
|
||||
default:
|
||||
_mesa_problem(NULL, "bad wrapMode in clamp_rect_coord_linear");
|
||||
i0 = i1 = 0;
|
||||
fcol = 0.0F;
|
||||
}
|
||||
*i0out = i0;
|
||||
*i1out = i1;
|
||||
@@ -2872,6 +2873,8 @@ sample_depth_texture( GLcontext *ctx,
|
||||
texcoords[i][1]);
|
||||
slice = clamp_rect_coord_nearest(tObj->WrapR, texcoords[i][2], depth);
|
||||
break;
|
||||
default:
|
||||
col = row = slice = 0;
|
||||
}
|
||||
|
||||
if (col >= 0 && row >= 0 && col < width && row < height &&
|
||||
@@ -2982,6 +2985,8 @@ sample_depth_texture( GLcontext *ctx,
|
||||
texcoords[i][1], &j0, &j1, &b);
|
||||
slice = clamp_rect_coord_nearest(tObj->WrapR, texcoords[i][2], depth);
|
||||
break;
|
||||
default:
|
||||
slice = 0;
|
||||
}
|
||||
|
||||
useBorderTexel = 0;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5.3
|
||||
* Version: 7.3
|
||||
*
|
||||
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
*
|
||||
@@ -263,6 +263,10 @@ affine_span(GLcontext *ctx, SWspan *span,
|
||||
struct affine_info *info)
|
||||
{
|
||||
GLchan sample[4]; /* the filtered texture sample */
|
||||
const GLuint texEnableSave = ctx->Texture._EnabledUnits;
|
||||
|
||||
/* Disable tex units so they're not re-applied in swrast_write_rgba_span */
|
||||
ctx->Texture._EnabledUnits = 0x0;
|
||||
|
||||
/* Instead of defining a function for each mode, a test is done
|
||||
* between the outer and inner loops. This is to reduce code size
|
||||
@@ -493,8 +497,12 @@ affine_span(GLcontext *ctx, SWspan *span,
|
||||
}
|
||||
span->interpMask &= ~SPAN_RGBA;
|
||||
ASSERT(span->arrayMask & SPAN_RGBA);
|
||||
|
||||
_swrast_write_rgba_span(ctx, span);
|
||||
|
||||
/* re-enable texture units */
|
||||
ctx->Texture._EnabledUnits = texEnableSave;
|
||||
|
||||
#undef SPAN_NEAREST
|
||||
#undef SPAN_LINEAR
|
||||
}
|
||||
|
@@ -376,6 +376,22 @@ void _tnl_notify_pipeline_output_change( GLcontext *ctx )
|
||||
invalidate_funcs(vtx);
|
||||
}
|
||||
|
||||
|
||||
static void adjust_input_ptrs( GLcontext *ctx, GLint diff)
|
||||
{
|
||||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx);
|
||||
struct tnl_clipspace_attr *a = vtx->attr;
|
||||
const GLuint count = vtx->attr_count;
|
||||
int j;
|
||||
|
||||
diff -= 1;
|
||||
for (j=0; j<count; ++j) {
|
||||
register GLvector4f *vptr = VB->AttribPtr[a->attrib];
|
||||
(a++)->inputptr += diff*vptr->stride;
|
||||
}
|
||||
}
|
||||
|
||||
static void update_input_ptrs( GLcontext *ctx, GLuint start )
|
||||
{
|
||||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
@@ -431,13 +447,40 @@ void *_tnl_emit_vertices_to_buffer( GLcontext *ctx,
|
||||
struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx);
|
||||
|
||||
update_input_ptrs(ctx, start);
|
||||
|
||||
/* Note: dest should not be adjusted for non-zero 'start' values:
|
||||
*/
|
||||
vtx->emit( ctx, end - start, (GLubyte*) dest );
|
||||
return (void *)((GLubyte *)dest + vtx->vertex_size * (end - start));
|
||||
}
|
||||
|
||||
/* Emit indexed VB vertices start..end to dest. Note that VB vertex at
|
||||
* postion start will be emitted to dest at position zero.
|
||||
*/
|
||||
|
||||
void *_tnl_emit_indexed_vertices_to_buffer( GLcontext *ctx,
|
||||
const GLuint *elts,
|
||||
GLuint start,
|
||||
GLuint end,
|
||||
void *dest )
|
||||
{
|
||||
struct tnl_clipspace *vtx = GET_VERTEX_STATE(ctx);
|
||||
GLuint oldIndex;
|
||||
GLubyte *cdest = dest;
|
||||
|
||||
update_input_ptrs(ctx, oldIndex = elts[start++]);
|
||||
vtx->emit( ctx, 1, cdest );
|
||||
cdest += vtx->vertex_size;
|
||||
|
||||
for (; start < end; ++start) {
|
||||
adjust_input_ptrs(ctx, elts[start] - oldIndex);
|
||||
oldIndex = elts[start];
|
||||
vtx->emit( ctx, 1, cdest);
|
||||
cdest += vtx->vertex_size;
|
||||
}
|
||||
|
||||
return (void *) cdest;
|
||||
}
|
||||
|
||||
|
||||
void _tnl_init_vertices( GLcontext *ctx,
|
||||
GLuint vb_size,
|
||||
|
@@ -119,6 +119,18 @@ extern void *_tnl_emit_vertices_to_buffer( GLcontext *ctx,
|
||||
GLuint end,
|
||||
void *dest );
|
||||
|
||||
/* This function isn't optimal. Check out
|
||||
* gallium/auxilary/translate for a more comprehensive implementation of
|
||||
* the same functionality.
|
||||
*/
|
||||
|
||||
extern void *_tnl_emit_indexed_vertices_to_buffer( GLcontext *ctx,
|
||||
const GLuint *elts,
|
||||
GLuint start,
|
||||
GLuint end,
|
||||
void *dest );
|
||||
|
||||
|
||||
extern void _tnl_build_vertices( GLcontext *ctx,
|
||||
GLuint start,
|
||||
GLuint end,
|
||||
|
@@ -4,6 +4,7 @@
|
||||
Version="8.00"
|
||||
Name="gdi"
|
||||
ProjectGUID="{A1B24907-E196-4826-B6AF-26723629B633}"
|
||||
RootNamespace="gdi"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
@@ -15,8 +16,8 @@
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -49,11 +50,7 @@
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_USRDLL;GDI_EXPORTS;_DLL;BUILD_GL32;MESA_MINWARN"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\Debug/gdi.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
RuntimeLibrary="3"
|
||||
BrowseInformation="1"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -74,16 +71,14 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="mesa.lib msvcrtd.lib gdi32.lib user32.lib winmm.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="Debug/OPENGL32.DLL"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OPENGL32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../mesa/Debug"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\windows\gdi\mesa.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/OPENGL32.pdb"
|
||||
ImportLibrary=".\Debug/OPENGL32.lib"
|
||||
ProgramDatabaseFile="$(TargetDir)OPENGL32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -108,13 +103,13 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Debug\OPENGL32.LIB ..\..\..\..\lib
copy Debug\OPENGL32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Debug\OPENGL32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -147,12 +142,9 @@
|
||||
AdditionalIncludeDirectories="../../main,../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_USRDLL;GDI_EXPORTS;_DLL;BUILD_GL32;MESA_MINWARN"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\Release/gdi.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
@@ -171,15 +163,13 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="mesa.lib winmm.lib gdi32.lib user32.lib msvcrt.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="Release/OPENGL32.DLL"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OPENGL32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../mesa/Release"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\windows\gdi\mesa.def"
|
||||
ProgramDatabaseFile=".\Release/OPENGL32.pdb"
|
||||
ImportLibrary=".\Release/OPENGL32.lib"
|
||||
ProgramDatabaseFile="$(TargetDir)OPENGL32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -204,7 +194,190 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Release\OPENGL32.LIB ..\..\..\..\lib
copy Release\OPENGL32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Release\OPENGL32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/gdi.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_USRDLL;GDI_EXPORTS;BUILD_GL32;MESA_MINWARN"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
BrowseInformation="1"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OPENGL32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\windows\gdi\mesa.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(TargetDir)OPENGL32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/gdi.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../main,../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_USRDLL;GDI_EXPORTS;BUILD_GL32;MESA_MINWARN"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\Release/gdi.pch"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OPENGL32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\windows\gdi\mesa.def"
|
||||
ProgramDatabaseFile="$(TargetDir)OPENGL32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OPENGL32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
|
@@ -4,6 +4,7 @@
|
||||
Version="8.00"
|
||||
Name="glu"
|
||||
ProjectGUID="{2E50FDAF-430B-475B-AE6B-60B68F2875BA}"
|
||||
RootNamespace="glu"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
@@ -15,8 +16,8 @@
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -47,14 +48,10 @@
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include;../../../../src/glu/sgi/include;../../../../src/glu/sgi/libnurbs/interface;../../../../src/glu/sgi/libnurbs/internals;../../../../src/glu/sgi/libnurbs/nurbtess"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GLU_EXPORTS;BUILD_GL32;LIBRARYBUILD;_CRT_SECURE_NO_DEPRECATE"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GLU_EXPORTS;BUILD_GLU32;LIBRARYBUILD;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\Release/glu.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
@@ -72,15 +69,12 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="msvcrt.lib winmm.lib odbc32.lib odbccp32.lib opengl32.lib"
|
||||
OutputFile="Release/GLU32.DLL"
|
||||
OutputFile="$(OutDir)\GLU32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../gdi/Release"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glu\sgi\glu.def"
|
||||
ProgramDatabaseFile=".\Release/GLU32.pdb"
|
||||
ImportLibrary=".\Release/GLU32.lib"
|
||||
ProgramDatabaseFile="$(TargetDir)GLU32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -105,13 +99,13 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Release\GLU32.LIB ..\..\..\..\lib
copy Release\GLU32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Release\GLU32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLU32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLU32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLU32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -142,13 +136,9 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include;../../../../src/glu/sgi/include;../../../../src/glu/sgi/libnurbs/interface;../../../../src/glu/sgi/libnurbs/internals;../../../../src/glu/sgi/libnurbs/nurbtess"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GLU_EXPORTS;BUILD_GL32;LIBRARYBUILD;_CRT_SECURE_NO_DEPRECATE"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GLU_EXPORTS;BUILD_GLU32;LIBRARYBUILD;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\Debug/glu.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
RuntimeLibrary="3"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
@@ -167,16 +157,13 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="msvcrtd.lib winmm.lib odbc32.lib odbccp32.lib opengl32.lib"
|
||||
OutputFile="Debug/GLU32.DLL"
|
||||
OutputFile="$(OutDir)\GLU32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../gdi/Debug"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glu\sgi\glu.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/GLU32.pdb"
|
||||
ImportLibrary=".\Debug/GLU32.lib"
|
||||
ProgramDatabaseFile="$(TargetDir)GLU32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -201,7 +188,184 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Debug\GLU32.LIB ..\..\..\..\lib
copy Debug\GLU32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Debug\GLU32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLU32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLU32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLU32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/glu.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include;../../../../src/glu/sgi/include;../../../../src/glu/sgi/libnurbs/interface;../../../../src/glu/sgi/libnurbs/internals;../../../../src/glu/sgi/libnurbs/nurbtess"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;GLU_EXPORTS;BUILD_GLU32;LIBRARYBUILD;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
OutputFile="$(OutDir)\GLU32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glu\sgi\glu.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(TargetDir)GLU32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLU32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLU32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLU32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/glu.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include;../../../../src/glu/sgi/include;../../../../src/glu/sgi/libnurbs/interface;../../../../src/glu/sgi/libnurbs/internals;../../../../src/glu/sgi/libnurbs/nurbtess"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;GLU_EXPORTS;BUILD_GLU32;LIBRARYBUILD;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
OutputFile="$(OutDir)\GLU32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glu\sgi\glu.def"
|
||||
ProgramDatabaseFile="$(TargetDir)GLU32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLU32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLU32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLU32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
@@ -267,6 +431,22 @@
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libtess\priorityq.c"
|
||||
@@ -418,11 +598,11 @@
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\interface\glimports.h"
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\nurbtess\glimports.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\nurbtess\glimports.h"
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\interface\glimports.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
@@ -517,22 +697,22 @@
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\internals\mysetjmp.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\interface\mystdio.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\nurbtess\mystdio.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\interface\mystdlib.h"
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\interface\mystdio.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\nurbtess\mystdlib.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\interface\mystdlib.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glu\sgi\libnurbs\internals\mystring.h"
|
||||
>
|
||||
|
@@ -19,24 +19,42 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "osmesa", "osmesa\osmesa.vcp
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug Static CRT|Win32 = Debug Static CRT|Win32
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release Static CRT|Win32 = Release Static CRT|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Debug Static CRT|Win32.ActiveCfg = Debug Static CRT|Win32
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Debug Static CRT|Win32.Build.0 = Debug Static CRT|Win32
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Release Static CRT|Win32.ActiveCfg = Release Static CRT|Win32
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Release Static CRT|Win32.Build.0 = Release Static CRT|Win32
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A1B24907-E196-4826-B6AF-26723629B633}.Release|Win32.Build.0 = Release|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Debug Static CRT|Win32.ActiveCfg = Debug Static CRT|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Debug Static CRT|Win32.Build.0 = Debug Static CRT|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Release Static CRT|Win32.ActiveCfg = Release Static CRT|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Release Static CRT|Win32.Build.0 = Release Static CRT|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2E50FDAF-430B-475B-AE6B-60B68F2875BA}.Release|Win32.Build.0 = Release|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Debug Static CRT|Win32.ActiveCfg = Debug Static CRT|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Debug Static CRT|Win32.Build.0 = Debug Static CRT|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Release Static CRT|Win32.ActiveCfg = Release Static CRT|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Release Static CRT|Win32.Build.0 = Release Static CRT|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2120C974-2717-4709-B44F-D6E6D0A56448}.Release|Win32.Build.0 = Release|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Debug Static CRT|Win32.ActiveCfg = Debug Static CRT|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Debug Static CRT|Win32.Build.0 = Debug Static CRT|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Release Static CRT|Win32.ActiveCfg = Release Static CRT|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Release Static CRT|Win32.Build.0 = Release Static CRT|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8D6CD423-383B-49E7-81BC-D20C70B07DF5}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
|
@@ -4,6 +4,7 @@
|
||||
Version="8.00"
|
||||
Name="mesa"
|
||||
ProjectGUID="{2120C974-2717-4709-B44F-D6E6D0A56448}"
|
||||
RootNamespace="mesa"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
@@ -15,8 +16,8 @@
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -43,15 +44,11 @@
|
||||
AdditionalOptions="/Zm1000 "
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/glapi,../../../../src/mesa/main,../../../../src/mesa/shader,../../../../src/mesa/shader/slang,../../../../src/mesa/shader/grammar"
|
||||
PreprocessorDefinitions="NDEBUG,WIN32,_LIB,_DLL,BUILD_GL32,MESA_MINWARN"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;_DLL;BUILD_GL32;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderFile=".\Release/mesa.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
@@ -69,7 +66,6 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
OutputFile=".\Release\mesa.lib"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
@@ -90,8 +86,8 @@
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -118,13 +114,9 @@
|
||||
AdditionalOptions="/Zm1000 "
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/glapi,../../../../src/mesa/main,../../../../src/mesa/shader,../../../../src/mesa/shader/slang,../../../../src/mesa/shader/grammar"
|
||||
PreprocessorDefinitions="_DEBUG,WIN32,_LIB,_DLL,BUILD_GL32,MESA_MINWARN"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;_DLL;BUILD_GL32;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\Debug/mesa.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
RuntimeLibrary="3"
|
||||
BrowseInformation="1"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
@@ -144,7 +136,146 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
OutputFile=".\Debug\mesa.lib"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/Zm1000 "
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/glapi,../../../../src/mesa/main,../../../../src/mesa/shader,../../../../src/mesa/shader/slang,../../../../src/mesa/shader/grammar"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;BUILD_GL32;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
BrowseInformation="1"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/Zm1000 "
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/glapi,../../../../src/mesa/main,../../../../src/mesa/shader,../../../../src/mesa/shader/slang,../../../../src/mesa/shader/grammar"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;BUILD_GL32;MESA_MINWARN;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
@@ -179,6 +310,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\api_arrayelt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\api_exec.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\api_loopback.c"
|
||||
>
|
||||
@@ -223,6 +358,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\buffers.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\clear.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\clip.c"
|
||||
>
|
||||
@@ -259,6 +398,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\dlist.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\dlopen.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\drawpix.c"
|
||||
>
|
||||
@@ -291,6 +434,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\feedback.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\ffvertex_prog.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\fog.c"
|
||||
>
|
||||
@@ -310,22 +457,10 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\glapi\glapi.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\glapi\glapi_getproc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\glapi\glthread.c"
|
||||
@@ -350,6 +485,22 @@
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\grammar\grammar_crt.c"
|
||||
@@ -360,7 +511,6 @@
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
@@ -369,7 +519,22 @@
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
@@ -396,22 +561,6 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\imports.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\light.c"
|
||||
@@ -465,6 +614,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\mm.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\multisample.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\nvfragparse.c"
|
||||
>
|
||||
@@ -481,6 +634,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\pixel.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\pixelstore.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\points.c"
|
||||
>
|
||||
@@ -489,6 +646,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\polygon.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\prog_cache.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\prog_debug.c"
|
||||
>
|
||||
@@ -512,22 +673,6 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\prog_print.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\prog_statevars.c"
|
||||
@@ -557,6 +702,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\rbadaptors.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\readpix.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\renderbuffer.c"
|
||||
>
|
||||
@@ -677,6 +826,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\swrast\s_zoom.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\scissor.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\shader_api.c"
|
||||
>
|
||||
@@ -692,22 +845,6 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\slang\slang_codegen.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\slang\slang_compile.c"
|
||||
@@ -732,42 +869,10 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\slang\slang_emit.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\slang\slang_ir.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\slang\slang_label.c"
|
||||
@@ -792,22 +897,6 @@
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\slang\slang_print.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\slang\slang_simplify.c"
|
||||
@@ -857,6 +946,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\tnl\t_pipeline.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\tnl\t_rasterpos.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\tnl\t_vb_cull.c"
|
||||
>
|
||||
@@ -921,6 +1014,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\texcompress_s3tc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texenv.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texenvprogram.c"
|
||||
>
|
||||
@@ -929,6 +1026,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\texformat.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texgen.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\teximage.c"
|
||||
>
|
||||
@@ -937,6 +1038,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\texobj.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texparam.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texrender.c"
|
||||
>
|
||||
@@ -1028,6 +1133,22 @@
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release Static CRT|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\vtxfmt.c"
|
||||
@@ -1050,6 +1171,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\api_eval.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\api_exec.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\api_loopback.h"
|
||||
>
|
||||
@@ -1074,6 +1199,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\shader\arbprogram_syn.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\arrayobj.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\atifragshader.h"
|
||||
>
|
||||
@@ -1082,6 +1211,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\attrib.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\bitset.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\blend.h"
|
||||
>
|
||||
@@ -1094,6 +1227,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\buffers.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\clear.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\clip.h"
|
||||
>
|
||||
@@ -1138,6 +1275,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\dlist.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\dlopen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\drawpix.h"
|
||||
>
|
||||
@@ -1166,6 +1307,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\feedback.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\ffvertex_prog.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\fog.h"
|
||||
>
|
||||
@@ -1314,6 +1459,18 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\matrix.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\mcompiler.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\mfeatures.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\mipmap.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\mm.h"
|
||||
>
|
||||
@@ -1322,6 +1479,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\mtypes.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\multisample.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\nvfragparse.h"
|
||||
>
|
||||
@@ -1338,6 +1499,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\pixel.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\pixelstore.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\points.h"
|
||||
>
|
||||
@@ -1398,6 +1563,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\rbadaptors.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\readpix.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\renderbuffer.h"
|
||||
>
|
||||
@@ -1518,6 +1687,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\swrast\s_zoom.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\scissor.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\shader\shader_api.h"
|
||||
>
|
||||
@@ -1674,6 +1847,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\texcompress.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texenv.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texenvprogram.h"
|
||||
>
|
||||
@@ -1686,6 +1863,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\texformat_tmp.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texgen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\teximage.h"
|
||||
>
|
||||
@@ -1694,6 +1875,10 @@
|
||||
RelativePath="..\..\..\..\src\mesa\main\texobj.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texparam.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\main\texrender.h"
|
||||
>
|
||||
|
@@ -4,6 +4,7 @@
|
||||
Version="8.00"
|
||||
Name="osmesa"
|
||||
ProjectGUID="{8D6CD423-383B-49E7-81BC-D20C70B07DF5}"
|
||||
RootNamespace="osmesa"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
@@ -15,8 +16,8 @@
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -47,14 +48,10 @@
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OSMESA_EXPORTS"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OSMESA_EXPORTS;BUILD_GL32"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\Release/osmesa.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
@@ -73,15 +70,13 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="opengl32.lib winmm.lib msvcrt.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="Release/OSMESA32.DLL"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OSMESA32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../gdi/Release"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\osmesa\osmesa.def"
|
||||
ProgramDatabaseFile=".\Release/OSMESA32.pdb"
|
||||
ImportLibrary=".\Release/OSMESA32.lib"
|
||||
ProgramDatabaseFile="$(TargetDir)OSMESA32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -106,13 +101,13 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Release\OSMESA32.LIB ..\..\..\..\lib
copy Release\OSMESA32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Release\OSMESA32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -143,13 +138,9 @@
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OSMESA_EXPORTS"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OSMESA_EXPORTS;BUILD_GL32"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\Debug/osmesa.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
RuntimeLibrary="3"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
@@ -169,16 +160,14 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="opengl32.lib winmm.lib msvcrtd.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="Debug/OSMESA32.DLL"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OSMESA32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../gdi/Debug"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\osmesa\osmesa.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/OSMESA32.pdb"
|
||||
ImportLibrary=".\Debug/OSMESA32.lib"
|
||||
ProgramDatabaseFile="$(TargetDir)OSMESA32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -203,7 +192,188 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Debug\OSMESA32.LIB ..\..\..\..\lib
copy Debug\OSMESA32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Debug\OSMESA32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/osmesa.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;OSMESA_EXPORTS;BUILD_GL32"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OSMESA32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\osmesa\osmesa.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(TargetDir)OSMESA32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/osmesa.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include,../../../../src/mesa,../../../../src/mesa/main,../../../../src/mesa/glapi,../../../../src/mesa/swrast,../../../../src/mesa/shader"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;OSMESA_EXPORTS;BUILD_GL32"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\OSMESA32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\mesa\drivers\osmesa\osmesa.def"
|
||||
ProgramDatabaseFile="$(TargetDir)OSMESA32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.LIB" ..\..\..\..\lib
copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)OSMESA32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
@@ -214,10 +384,6 @@
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\drivers\common\driverfuncs.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\mesa\drivers\osmesa\osmesa.c"
|
||||
>
|
||||
|
@@ -4,6 +4,7 @@
|
||||
Version="8.00"
|
||||
Name="gears"
|
||||
ProjectGUID="{3A7B0671-10F8-45D1-B012-F6D650F817CE}"
|
||||
RootNamespace="gears"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
@@ -15,8 +16,175 @@
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Debug/gears.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include"
|
||||
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy "$(TargetDir)gears.exe" ..\..\..\..\progs\demos"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Release/gears.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include"
|
||||
PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
SubSystem="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy "$(TargetDir)gears.exe" ..\..\..\..\progs\demos"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -46,10 +214,6 @@
|
||||
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\Debug/gears.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
@@ -69,13 +233,10 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="glut32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\Debug/gears.exe"
|
||||
LinkIncremental="2"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../glut/Debug"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/gears.pdb"
|
||||
SubSystem="1"
|
||||
/>
|
||||
<Tool
|
||||
@@ -101,13 +262,13 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy Debug\gears.exe ..\..\..\..\progs\demos"
|
||||
CommandLine="copy "$(TargetDir)gears.exe" ..\..\..\..\progs\demos"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
Name="Release Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -138,10 +299,6 @@
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\Release/gears.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
@@ -160,12 +317,9 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="glut32.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\Release/gears.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../glut/Release"
|
||||
ProgramDatabaseFile=".\Release/gears.pdb"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
SubSystem="1"
|
||||
/>
|
||||
<Tool
|
||||
@@ -191,7 +345,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy Release\gears.exe ..\..\..\..\progs\demos"
|
||||
CommandLine="copy "$(TargetDir)gears.exe" ..\..\..\..\progs\demos"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
@@ -221,6 +375,22 @@
|
||||
AdditionalIncludeDirectories=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug Static CRT|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release Static CRT|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
|
@@ -4,6 +4,7 @@
|
||||
Version="8.00"
|
||||
Name="glut"
|
||||
ProjectGUID="{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}"
|
||||
RootNamespace="glut"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
@@ -15,8 +16,8 @@
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -49,11 +50,7 @@
|
||||
AdditionalIncludeDirectories="../../../../include"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_DLL;_USRDLL;GLUT_EXPORTS;MESA;BUILD_GL32;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
PrecompiledHeaderFile=".\Debug/glut.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
RuntimeLibrary="3"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
@@ -73,15 +70,14 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="winmm.lib msvcrtd.lib gdi32.lib user32.lib oldnames.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib"
|
||||
OutputFile="Debug/GLUT32.DLL"
|
||||
AdditionalDependencies="winmm.lib opengl32.lib glu32.lib gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\GLUT32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../mesa/Debug"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glut\glx\glut.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile=".\Debug/GLUT32.pdb"
|
||||
ImportLibrary=".\Debug/GLUT32.lib"
|
||||
ProgramDatabaseFile="$(TargetDir)GLUT32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -106,13 +102,13 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Debug\GLUT32.LIB ..\..\..\..\lib
copy Debug\GLUT32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Debug\GLUT32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLUT32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
@@ -145,12 +141,9 @@
|
||||
AdditionalIncludeDirectories="../../../../include"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_DLL;_USRDLL;GLUT_EXPORTS;MESA;BUILD_GL32;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\Release/glut.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
@@ -169,14 +162,12 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="opengl32.lib glu32.lib user32.lib winmm.lib gdi32.lib msvcrt.lib oldnames.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="Release/GLUT32.DLL"
|
||||
AdditionalDependencies="winmm.lib opengl32.lib glu32.lib gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\GLUT32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="../../mesa/Release"
|
||||
IgnoreAllDefaultLibraries="true"
|
||||
ProgramDatabaseFile=".\Release/GLUT32.pdb"
|
||||
ImportLibrary=".\Release/GLUT32.lib"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glut\glx\glut.def"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
@@ -201,7 +192,188 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy Release\GLUT32.LIB ..\..\..\..\lib
copy Release\GLUT32.DLL ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy Release\GLUT32.DLL ..\..\..\..\progs\demos
"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLUT32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug/glut.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../../../include"
|
||||
PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_USRDLL;GLUT_EXPORTS;MESA;BUILD_GL32;_CRT_SECURE_NO_DEPRECATE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="winmm.lib opengl32.lib glu32.lib gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\GLUT32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glut\glx\glut.def"
|
||||
GenerateDebugInformation="true"
|
||||
ProgramDatabaseFile="$(TargetDir)GLUT32.pdb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLUT32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release Static CRT|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC70.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release/glut.tlb"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="../../../../include"
|
||||
PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_USRDLL;GLUT_EXPORTS;MESA;BUILD_GL32;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
RuntimeLibrary="0"
|
||||
EnableFunctionLevelLinking="true"
|
||||
PrecompiledHeaderFile=".\Release/glut.pch"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="winmm.lib opengl32.lib glu32.lib gdi32.lib user32.lib"
|
||||
OutputFile="$(OutDir)\GLUT32.dll"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories="$(TargetDir)"
|
||||
ModuleDefinitionFile="..\..\..\..\src\glut\glx\glut.def"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="if not exist ..\..\..\..\lib md ..\..\..\..\lib
copy "$(TargetDir)GLUT32.LIB" ..\..\..\..\lib
copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\lib
if exist ..\..\..\..\progs\demos copy "$(TargetDir)GLUT32.DLL" ..\..\..\..\progs\demos
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
@@ -324,6 +496,10 @@
|
||||
RelativePath="..\..\..\..\src\glut\glx\glut_overlay.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glut\glx\glut_ppm.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\glut\glx\glut_roman.c"
|
||||
>
|
||||
|
@@ -9,16 +9,26 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glut", "glut\glut.vcproj",
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug Static CRT|Win32 = Debug Static CRT|Win32
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release Static CRT|Win32 = Release Static CRT|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Debug Static CRT|Win32.ActiveCfg = Debug Static CRT|Win32
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Debug Static CRT|Win32.Build.0 = Debug Static CRT|Win32
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Release Static CRT|Win32.ActiveCfg = Release Static CRT|Win32
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Release Static CRT|Win32.Build.0 = Release Static CRT|Win32
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{3A7B0671-10F8-45D1-B012-F6D650F817CE}.Release|Win32.Build.0 = Release|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Debug Static CRT|Win32.ActiveCfg = Debug Static CRT|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Debug Static CRT|Win32.Build.0 = Debug Static CRT|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Release Static CRT|Win32.ActiveCfg = Release Static CRT|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Release Static CRT|Win32.Build.0 = Release Static CRT|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0234F0D2-C8A6-4C4D-93E7-0E2248049C67}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
|
Reference in New Issue
Block a user