On 4 July 2014 00:40, Andrei Slăvoiu <andrei.slavoiu(a)gmail.com> wrote:
+/* See http://developer.amd.com/drivers/pc_vendor_id/Pages/default.aspx + *· Trailing space.
+cards_vmware[]= { Space between ']' and '=', '{' placement.
static const struct gl_vendor_selection { enum wined3d_gl_vendor gl_vendor; const char *description; /* Description of the card selector i.e. Apple OS/X Intel */ - enum wined3d_pci_device (*select_card)(const char *gl_renderer); + const struct + { + const char *renderer; + enum wined3d_pci_device id; + } *cards; /* To be used as cards[], pointer to the first member in an array */ This doesn't work: directx.c:2124:5: warning: initialization from incompatible pointer type [enabled by default] directx.c:2124:5: warning: (near initialization for ‘amd_gl_vendor_table[0].cards’) [enabled by default] etc.
+ size_t nr_cards; /* Number of entries in the array above */ We'd generally name that "card_count", or perhaps "cards_size".
+ {GL_VENDOR_APPLE, "Apple OSX AMD/ATI binary driver", cards_amd_binary, sizeof(cards_amd_binary) / sizeof(*cards_amd_binary)}, + {GL_VENDOR_FGLRX, "AMD/ATI binary driver", cards_amd_binary, sizeof(cards_amd_binary) / sizeof(*cards_amd_binary)}, + {GL_VENDOR_MESA, "Mesa AMD/ATI driver", cards_amd_mesa, sizeof(cards_amd_mesa) / sizeof(*cards_amd_mesa)}, Those lines are a bit long. Generally speaking, in wined3d, 100 characters is safe, 120 is the limit.
Note that as a potential follow-up patch it wouldn't be very hard to merge these tables with card_vendor_table[].
+ for (j = 0; j < table[i].nr_cards; ++j) + { + if (strstr(gl_renderer, table[i].cards[j].renderer)) + return table[i].cards[j].id; + } Four space indentation, please.