Module: wine Branch: master Commit: ef074cdde13a1c467e22188dc33b1a517973679d URL: http://source.winehq.org/git/wine.git/?a=commit;h=ef074cdde13a1c467e22188dc3...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue May 5 09:38:03 2009 +0200
wined3d: Introduce a stubbed SM4 shader frontend.
---
dlls/wined3d/Makefile.in | 1 + dlls/wined3d/baseshader.c | 8 ++++ dlls/wined3d/shader_sm4.c | 72 ++++++++++++++++++++++++++++++++++++++++ dlls/wined3d/wined3d_private.h | 1 + 4 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/Makefile.in b/dlls/wined3d/Makefile.in index c35e8b5..2fcb4ec 100644 --- a/dlls/wined3d/Makefile.in +++ b/dlls/wined3d/Makefile.in @@ -26,6 +26,7 @@ C_SRCS = \ query.c \ resource.c \ shader_sm1.c \ + shader_sm4.c \ state.c \ stateblock.c \ surface_base.c \ diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index e3f6311..9c466fc 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -121,6 +121,9 @@ static const char *shader_opcode_names[] =
#define WINED3D_SM1_VS 0xfffe #define WINED3D_SM1_PS 0xffff +#define WINED3D_SM4_PS 0x0000 +#define WINED3D_SM4_VS 0x0001 +#define WINED3D_SM4_GS 0x0002
const struct wined3d_shader_frontend *shader_select_frontend(DWORD version_token) { @@ -130,6 +133,11 @@ const struct wined3d_shader_frontend *shader_select_frontend(DWORD version_token case WINED3D_SM1_PS: return &sm1_shader_frontend;
+ case WINED3D_SM4_PS: + case WINED3D_SM4_VS: + case WINED3D_SM4_GS: + return &sm4_shader_frontend; + default: FIXME("Unrecognised version token %#x\n", version_token); return NULL; diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c new file mode 100644 index 0000000..ba66123 --- /dev/null +++ b/dlls/wined3d/shader_sm4.c @@ -0,0 +1,72 @@ +/* + * Copyright 2009 Henri Verbeet for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" +#include "wine/port.h" + +#include "wined3d_private.h" + +WINE_DEFAULT_DEBUG_CHANNEL(d3d_shader); + +static void shader_sm4_read_opcode(const DWORD **ptr, struct wined3d_shader_instruction *ins, + UINT *param_size, const SHADER_OPCODE *opcode_table, DWORD shader_version) +{ + FIXME("ptr %p, ins %p, param_size %p, opcode_table %p, shader_version %#x stub!\n", + ptr, ins, param_size, opcode_table, shader_version); +} + +static void shader_sm4_read_src_param(const DWORD **ptr, struct wined3d_shader_src_param *src_param, + struct wined3d_shader_src_param *src_rel_addr, DWORD shader_version) +{ + FIXME("ptr %p, src_param %p, src_rel_addr %p, shader_version %#x stub!\n", + ptr, src_param, src_rel_addr, shader_version); +} + +static void shader_sm4_read_dst_param(const DWORD **ptr, struct wined3d_shader_dst_param *dst_param, + struct wined3d_shader_src_param *dst_rel_addr, DWORD shader_version) +{ + FIXME("ptr %p, dst_param %p, dst_rel_addr %p, shader_version %#x stub!\n", + ptr, dst_param, dst_rel_addr, shader_version); +} + +static void shader_sm4_read_semantic(const DWORD **ptr, struct wined3d_shader_semantic *semantic) +{ + FIXME("ptr %p, semantic %p stub!\n", ptr, semantic); +} + +static void shader_sm4_read_comment(const DWORD **ptr, const char **comment) +{ + FIXME("ptr %p, comment %p stub!\n", ptr, comment); + *comment = NULL; +} + +static BOOL shader_sm4_is_end(const DWORD **ptr) +{ + FIXME("ptr %p stub!\n", ptr); + return TRUE; +} + +const struct wined3d_shader_frontend sm4_shader_frontend = +{ + shader_sm4_read_opcode, + shader_sm4_read_src_param, + shader_sm4_read_dst_param, + shader_sm4_read_semantic, + shader_sm4_read_comment, + shader_sm4_is_end, +}; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 09d8f9d..c08e4d7 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -686,6 +686,7 @@ struct wined3d_shader_frontend };
extern const struct wined3d_shader_frontend sm1_shader_frontend; +extern const struct wined3d_shader_frontend sm4_shader_frontend;
typedef void (*SHADER_HANDLER)(const struct wined3d_shader_instruction *);