Faits:
A. G._ a travaillé en qualité de chauffeur poids lourds. Le 5 mai 1984, il a été victime d'un accident de motocyclette qui a entraîné, notamment, une luxation de l'épaule droite. La CNA, qui a pris le cas en charge, lui a alloué une rente d'invalidité de 15 % jusqu'en avril 1992. Le 4 mars 1998, l'assuré a annoncé une rechute. A l'issue de l'instruction de la demande, la CNA l'a mis au bénéfice d'une rente d'invalidité de 42 % à compter du 1er juin 2005, par décision sur opposition du 18 septembre 2006.
Le 13 juillet 2000, G._ a déposé une demande de prestations de l'assurance-invalidité (orientation professionnelle, reclassement dans une nouvelle profession, rééducation dans la même profession). Par décision du 21 janvier 2010, consécutive à un projet du 19 juin 2009, l'Office de l'assurance-invalidité pour le canton de Vaud (l'office AI) a nié le droit de l'assuré à une rente d'invalidité, après avoir arrêté le degré d'invalidité à 36 %.
B. G._ a déféré cette décision au Tribunal cantonal du canton de Vaud, Chambre des assurances sociales, en concluant au versement d'une rente d'invalidité fixée à dire de justice, mais de 40 % au moins.
Par jugement du 26 avril 2012, le Tribunal cantonal a admis le recours et reformé la décision du 21 janvier 2010 en ce sens qu'il a alloué à l'assuré un quart de rente d'invalidité à compter du 1er février 2003, sur la base du degré d'invalidité de 42 % calculé par la CNA.
C. L'office AI interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation en concluant à la confirmation de sa décision du 21 janvier 2010.
L'intimé a conclu au rejet du recours avec suite de frais et dépens. L'Office fédéral des assurances sociales a renoncé à se déterminer.
Considérant en droit:
1. Le recours en matière de droit public (art. 82 ss LTF) peut être formé pour violation du droit au sens des art. 95 et 96 LTF. Le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF), n'examine en principe que les griefs invoqués (art. 42 al. 2 LTF) et fonde son raisonnement sur les faits retenus par la juridiction de première instance (art. 105 al. 1 LTF), sous réserve des cas prévus à l'art. 105 al. 2 LTF. Le recourant ne peut critiquer la constatation de faits importants pour le jugement de la cause que si ceux-ci ont été établis en violation du droit au sens de l'art. 95 LTF ou de manière manifestement inexacte (art. 97 al. 1 LTF), c'est-à-dire de manière arbitraire, et si la correction du vice est susceptible d'influer sur le sort de la cause (ATF 134 V 53 consid. 4.3 p. 62 et les références).
2. 2.1 L'office recourant fait grief à la juridiction de première instance d'avoir alloué une rente d'invalidité sans examen préalable de la possibilité de réduire le préjudice économique par la mise en oeuvre de mesures professionnelles.
Selon l'intimé, le recourant reconnaît ainsi que son instruction de la demande était déficiente. A son avis, il est inacceptable que le recourant profite de la procédure de recours pour tenter de remédier à cette carence.
2.2 Dans sa décision du 21 janvier 2010, le recourant a retenu que des mesures professionnelles auraient pu être envisagées. Il a toutefois renoncé à les mettre en oeuvre, car il ressortait du dossier que l'intimé s'estimait incapable de travailler à un taux supérieur à 50 %. Dès lors que l'intimé ne remplissait manifestement pas la condition de la capacité subjective de réadaptation, le droit à de telles mesures n'était pas ouvert.
Ainsi que cela ressort de la motivation de la décision du 21 janvier 2010, le recourant a bien abordé la question des mesures professionnelles, conformément à la loi (art. 28 al. 1 let. a LAI et 16 LGPA), avant de statuer sur le droit à la rente. De telles mesures n'étaient au demeurant plus sujettes à discussion ni litigieuses en procédure cantonale de recours, si bien que cette question est close.
3. Le litige porte sur le taux d'invalidité de l'intimé.
3.1 Les premiers juges ont constaté que l'intimé ne disposait plus, à compter du 1er février 2002, de capacité de travail dans la profession de chauffeur poids lourds qu'il exerçait auprès de X._, mais qu'il conservait en revanche depuis cette date une capacité de travail entière dans une activité adaptée à ses limitations fonctionnelles. En ce qui concerne le degré d'invalidité, la juridiction cantonale s'est référée à l'évaluation à laquelle la CNA avait procédé, avant de conclure qu'il n'existait aucune raison de s'en détacher dans le cadre de l'AI.
3.2 L'office recourant reproche à la juridiction cantonale de n'avoir pas suivi sa propre évaluation de l'invalidité au motif qu'elle différait de celle de la CNA. Il estime que les premiers juges ont violé le droit fédéral en réformant sa décision au seul motif qu'elle ne respectait pas le principe de l'uniformité de la notion d'invalidité dans l'assurance- invalidité et l'assurance-accidents, ce qui serait contraire à la relativisation du principe de l'uniformité de la notion d'invalidité opérée par la jurisprudence du Tribunal fédéral. De l'avis du recourant, les juges cantonaux auraient plutôt dû déterminer si sa propre évaluation de l'invalidité était ou non conforme au droit fédéral, d'autant que les deux assureurs s'étaient fondés sur les données d'années différentes.
3.3 Quant à l'intimé, il estime que la jurisprudence relativisant le principe de l'uniformité de la notion d'invalidité ne signifie pas que les assureurs sociaux puissent procéder à leurs évaluations sans prendre en compte les conclusions d'autres assureurs.
3.4 A propos du principe d'uniformité de la notion d'invalidité, le Tribunal fédéral des assurances avait précisé sa jurisprudence, en considérant que l'évaluation de l'invalidité par les organes de l'assurance-invalidité n'a pas de force contraignante pour l'assureur-accidents (ATF 131 V 362 consid. 2.3 p. 368). Dans un arrêt publié aux ATF 133 V 549, le Tribunal fédéral a précisé sa jurisprudence relative au principe d'uniformité de la notion d'invalidité dans l'assurance sociale en ce sens que l'évaluation de l'invalidité par les organes de l'assurance-accidents n'a pas de force contraignante pour l'assurance-invalidité au sens de l'ATF 126 V 288. Indépendamment de cette précision, le Tribunal fédéral des assurances avait déjà jugé que les organes de l'assurance-invalidité et ceux de l'assurance-accidents étaient tenus de procéder dans chaque cas et de manière indépendante à l'évaluation de l'invalidité, les uns ou les autres ne pouvant se contenter de reprendre simplement et sans avoir effectué leur propre examen le degré d'invalidité fixé par l'autre assureur (ATF 126 V 288 consid. 3d p. 293).
Vu ce qui précède, l'office recourant était fondé à procéder à sa propre évaluation de l'invalidité de l'intimé. Saisie par ce dernier, la juridiction cantonale de recours aurait dû examiner la légalité de la décision administrative du 21 janvier 2010, objet de la contestation, afin de déterminer si l'évaluation de l'invalidité par les organes de l'AI avait été réalisée de façon conforme au droit. Cet examen n'a toutefois pas eu lieu, car les premiers juges n'ont en définitive examiné que l'évaluation de la CNA. Pour ce motif, il sied d'annuler le jugement attaqué et de renvoyer la cause au tribunal cantonal afin qu'il tranche (et motive) le point de savoir si le degré d'invalidité de 36 %, arrêté par l'AI, résiste ou non à l'examen.
4. L'intimé, qui succombe, supportera les frais de la procédure (art. 66 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est partiellement admis. Le jugement du Tribunal cantonal du canton de Vaud, Chambre des assurances sociales, du 26 avril 2012, est annulé, la cause lui étant renvoyée pour qu'il procède conformément aux considérants. Le recours est rejeté pour le surplus.
2. Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de l'intimé.
3. Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Vaud, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 18 mars 2013
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président: Kernen
Le Greffier: Berthoud