work
This commit is contained in:
@@ -112,6 +112,8 @@ override USE_FIFO = 1
|
|||||||
ifeq ($(USE_X86),1)
|
ifeq ($(USE_X86),1)
|
||||||
CDEFS += -DGLIDE_DISPATCH_SETUP=1 -DGLIDE_DISPATCH_DOWNLOAD=1
|
CDEFS += -DGLIDE_DISPATCH_SETUP=1 -DGLIDE_DISPATCH_DOWNLOAD=1
|
||||||
override USE_FIFO = 1
|
override USE_FIFO = 1
|
||||||
|
CDEFS += -DHAVE_XDRAWTRI_ASM=1
|
||||||
|
override USE_DRAWTRI_ASM = 1
|
||||||
else
|
else
|
||||||
CDEFS += -DGLIDE_USE_C_TRISETUP=1
|
CDEFS += -DGLIDE_USE_C_TRISETUP=1
|
||||||
endif
|
endif
|
||||||
@@ -192,14 +194,15 @@ GLIDE_OBJECTS = \
|
|||||||
cpuid.o \
|
cpuid.o \
|
||||||
xtexdl_def.o
|
xtexdl_def.o
|
||||||
|
|
||||||
|
ifeq ($(USE_DRAWTRI_ASM),1)
|
||||||
|
GLIDE_OBJECTS += xdrawtri.o
|
||||||
|
endif
|
||||||
ifeq ($(USE_X86),1)
|
ifeq ($(USE_X86),1)
|
||||||
GLIDE_OBJECTS += \
|
GLIDE_OBJECTS += \
|
||||||
xdraw2_def.o \
|
xdraw2_def.o
|
||||||
xdraw3_def.o
|
|
||||||
ifeq ($(USE_3DNOW),1)
|
ifeq ($(USE_3DNOW),1)
|
||||||
GLIDE_OBJECTS += \
|
GLIDE_OBJECTS += \
|
||||||
xdraw2_3dnow.o \
|
xdraw2_3dnow.o \
|
||||||
xdraw3_3dnow.o \
|
|
||||||
xtexdl_3dnow.o
|
xtexdl_3dnow.o
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
@@ -267,14 +270,12 @@ cpuid.o: cpudtect.asm
|
|||||||
$(AS) -o $@ $(ASFLAGS) $<
|
$(AS) -o $@ $(ASFLAGS) $<
|
||||||
xdraw2_def.o: xdraw2.asm
|
xdraw2_def.o: xdraw2.asm
|
||||||
$(AS) -o $@ $(ASFLAGS) $<
|
$(AS) -o $@ $(ASFLAGS) $<
|
||||||
xdraw3_def.o: xdraw3.asm
|
|
||||||
$(AS) -o $@ $(ASFLAGS) $<
|
|
||||||
xdraw2_3dnow.o: xdraw2.asm
|
xdraw2_3dnow.o: xdraw2.asm
|
||||||
$(AS) -o $@ $(ASFLAGS) -DGL_AMD3D=1 $<
|
$(AS) -o $@ $(ASFLAGS) -DGL_AMD3D=1 $<
|
||||||
xdraw3_3dnow.o: xdraw3.asm
|
|
||||||
$(AS) -o $@ $(ASFLAGS) -DGL_AMD3D=1 $<
|
|
||||||
xtexdl_3dnow.o: xtexdl.asm
|
xtexdl_3dnow.o: xtexdl.asm
|
||||||
$(AS) -o $@ $(ASFLAGS) -DGL_AMD3D=1 $<
|
$(AS) -o $@ $(ASFLAGS) -DGL_AMD3D=1 $<
|
||||||
|
xdrawtri.o: xdrawtri.asm
|
||||||
|
$(AS) -o $@ $(ASFLAGS) $<
|
||||||
|
|
||||||
cpuid.lo: cpuid.o
|
cpuid.lo: cpuid.o
|
||||||
$(CP) $< $@
|
$(CP) $< $@
|
||||||
@@ -288,6 +289,8 @@ xdraw3_3dnow.lo: xdraw3_3dnow.o
|
|||||||
$(CP) $< $@
|
$(CP) $< $@
|
||||||
xtexdl_3dnow.lo: xtexdl_3dnow.o
|
xtexdl_3dnow.lo: xtexdl_3dnow.o
|
||||||
$(CP) $< $@
|
$(CP) $< $@
|
||||||
|
xdrawtri.lo: xdrawtri.o
|
||||||
|
$(CP) $< $@
|
||||||
|
|
||||||
$(GLIDE_OBJECTS): fxinline.h fxgasm.h
|
$(GLIDE_OBJECTS): fxinline.h fxgasm.h
|
||||||
|
|
||||||
|
|||||||
38
glide2x/h3/glide/src/xdrawtri.S
Normal file
38
glide2x/h3/glide/src/xdrawtri.S
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||||
|
* PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||||
|
* TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||||
|
* INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||||
|
* DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||||
|
* THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||||
|
* EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||||
|
* FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||||
|
*
|
||||||
|
* USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||||
|
* RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||||
|
* TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||||
|
* AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||||
|
* SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||||
|
* THE UNITED STATES.
|
||||||
|
*
|
||||||
|
* COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Adapted from gdraw.c:grDrawTriangle() for gas */
|
||||||
|
|
||||||
|
#include "fxgasm.h"
|
||||||
|
|
||||||
|
.extern _GlideRoot
|
||||||
|
|
||||||
|
.text
|
||||||
|
|
||||||
|
.p2align 4,,15
|
||||||
|
.globl grDrawTriangle
|
||||||
|
.type grDrawTriangle,@function
|
||||||
|
grDrawTriangle:
|
||||||
|
/*movl (_GlideRoot+curGC),%edx
|
||||||
|
movl kTriProcOffset(%edx),%eax*/
|
||||||
|
movl (_GlideRoot + curGC),%eax
|
||||||
|
jmp *kTriProcOffset(%eax)
|
||||||
|
|
||||||
|
.p2align 4,,15
|
||||||
46
glide2x/h3/glide/src/xdrawtri.asm
Normal file
46
glide2x/h3/glide/src/xdrawtri.asm
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
;; THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY
|
||||||
|
;; PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT
|
||||||
|
;; TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX
|
||||||
|
;; INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE
|
||||||
|
;; DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com).
|
||||||
|
;; THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||||
|
;; EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A
|
||||||
|
;; FULL TEXT OF THE NON-WARRANTY PROVISIONS.
|
||||||
|
;;
|
||||||
|
;; USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO
|
||||||
|
;; RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN
|
||||||
|
;; TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013,
|
||||||
|
;; AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR
|
||||||
|
;; SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
|
||||||
|
;; THE UNITED STATES.
|
||||||
|
;;
|
||||||
|
;; COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED
|
||||||
|
|
||||||
|
;; Adapted from gdraw.c:grDrawTriangle() for nasm
|
||||||
|
|
||||||
|
%include "xos.inc"
|
||||||
|
|
||||||
|
%include "fxgasm.h"
|
||||||
|
|
||||||
|
extrn _GlideRoot
|
||||||
|
|
||||||
|
segment SEG_TEXT
|
||||||
|
|
||||||
|
align 16
|
||||||
|
proc grDrawTriangle, 12
|
||||||
|
|
||||||
|
;;mov edx, dword [_GlideRoot+curGC]
|
||||||
|
;;mov eax, dword [edx+kTriProcOffset]
|
||||||
|
mov eax, dword [_GlideRoot+curGC]
|
||||||
|
jmp [eax + kTriProcOffset]
|
||||||
|
endp
|
||||||
|
align 16
|
||||||
|
|
||||||
|
%if XOS == XOS_WIN32
|
||||||
|
%ifdef __MINGW32__
|
||||||
|
; GNU LD fails with '_' prefix
|
||||||
|
export grDrawTriangle@12
|
||||||
|
%else
|
||||||
|
export _grDrawTriangle@12
|
||||||
|
%endif
|
||||||
|
%endif ; _WIN32
|
||||||
Reference in New Issue
Block a user